Do you have any idea what is wrong with the Iorders below??
private IOrder stopLongOrder = null; private IOrder stopShortOrder = null; private IOrder entryLongOrder = null; private IOrder entryShortOrder = null; public int contracts; protected override void Initialize() { CalculateOnBarClose = true; ExitOnClose = false; RealtimeErrorHandling = RealtimeErrorHandling.TakeNoAction; } private void Bracket() { Stop = 50; contracts = (int)(10000 * (0.02 * 10000) / Stop); } private void LongEntry() { Bracket(); barNumberOfOrder = CurrentBar; entryLongOrder = EnterLongStop(contracts, Close[0] + 1 * TickSize, "LongEntry"); } private void ShortEntry() { Bracket(); barNumberOfOrder = CurrentBar; entryShortOrder = EnterShortStop(contracts, Close[0] - 1 * TickSize, "ShortEntry"); } private void ExitPosition() { int NbBars = CurrentBar - barNumberOfOrder; if (NbBars >= 20) { if (stopLongOrder == null && stopShortOrder == null && Position.MarketPosition == MarketPosition.Long) { stopLongOrder = ExitLongStop(Close[0] - 1 * TickSize, "LongEntry"); } if (stopShortOrder == null && stopLongOrder == null && Position.MarketPosition == MarketPosition.Short) { stopShortOrder = ExitShortStop(Close[0] + 1 * TickSize, "ShortEntry"); } } } protected override void OnBarUpdate() { ExitPosition(); if (entryLongOrder == null && entryShortOrder == null && Position.MarketPosition == MarketPosition.Flat && Close[0] < Close[1]) { LongEntry(); } if (entryShortOrder == null && entryShortOrder == null && Position.MarketPosition == MarketPosition.Flat ` && Close[0] > Close[1]) { ShortEntry(); } } protected override void OnOrderUpdate(IOrder order) { if (entryLongOrder != null && entryLongOrder == order) { if (order.OrderState == OrderState.Rejected) { entryLongOrder = EnterLong(contracts, "LongEntry"); } if (order.OrderState == OrderState.Filled) { entryLongOrder = null; } } if (entryShortOrder != null && entryShortOrder == order) { if (order.OrderState == OrderState.Rejected) { entryShortOrder = EnterShort(contracts, "ShortEntry"); } if (order.OrderState == OrderState.Filled) { entryShortOrder = null; } } if (stopLongOrder != null && stopLongOrder == order) { if (order.OrderState == OrderState.Rejected) { stopLongOrder = ExitLong("LongEntry"); } if (order.OrderState == OrderState.Filled) { stopLongOrder = null; } } if (stopShortOrder != null && stopShortOrder == order) { if (order.OrderState == OrderState.Rejected) { stopShortOrder = ExitShort("ShortEntry"); } if (order.OrderState == OrderState.Filled) { stopShortOrder = null; } } }
Comment