When I find a trade entry, I am calling:
double long_limit = High[1] + (TickOffsetLong * Instrument.MasterInstrument.TickSize); EnterLongStopLimit(long_limit, long_limit - Instrument.MasterInstrument.TickSize, "GoLong");
protected override void OnOrderUpdate(Order order, double limitPrice, double stopPrice, int quantity, int filled, double averageFillPrice, OrderState orderState, DateTime time, ErrorCode error, string nativeError)
{
if (m_order != null && m_order.IsBacktestOrder && State == State.Realtime)
m_order = GetRealtimeOrder(m_order);
if(order.Name == "GoLong")
{
m_order = order;
}
if (m_order != null && m_order == order)
{
if (order.OrderState == OrderState.Cancelled && order.Filled == 0)
m_order = null;
if (order.OrderState == OrderState.Filled)
m_order = null;
}
}
CancelOrder(m_order);
// Make sure this strategy does not execute against historical data if(State != State.Realtime) return;
However, the call to CancelOrder() has to effect. The Stop Limit order remains. How can I cancel the stop limit prior to fill?

Comment