I have enable the intar-bar order generation in Signal's format properties.
Here is my test code:
Code: Select all
using System;
using System.Drawing;
using System.Linq;
using PowerLanguage.Function;
using ATCenterProxy.interop;
namespace PowerLanguage.Strategy {
public class RealTimeTest : SignalObject {
public RealTimeTest(object _ctx):base(_ctx){}
private int order_status, count1, count2;
private IOrderMarket buy_order;
private IOrderMarket close_long_order;
protected override void Create() {
// create variable objects, function objects, order objects etc.
buy_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy));
close_long_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.SellShort));
}
protected override void StartCalc() {
// assign inputs
order_status = 0;
count1 = 0;
count2 = 0;
}
protected override void CalcBar(){
// strategy logic
if (order_status == 1)
{
//close_long_order.Send();
buy_order.Send(); // this order always no respond in IB
order_status = 0;
}
if (Bars.Status == EBarState.Close)
{
//buy_order.Send();
close_long_order.Send(); //this order can be generated in IB
order_status = 1;
}
}
}
}