I have a strategy with 2 exits options in OnBarUpdate as defined as:
1. ExitShort/Long after 10 bars from entry
2. ExitShort/Long on Friday, 2pm.
The problem is both actions can be triggered if i have 10 bars after my entry on Friday at 2pm.
NT7 will trigger 2 Exits instructions resulting on an Entry once prior exit has been filled.
So to force only 1 Exit action, shall i use OnOrderUpdate or OnExecution ?
The following logic doesnt seem to be working.
in OnBarUpdate:
if(BarsSinceEntry >= 10) { if (Position.MarketPosition == MarketPosition.Long && (myEmgSellStop == null)) { mySellStop = ExitLong("ExitLong","LongEntry"); } if (Position.MarketPosition == MarketPosition.Short && (myEmgBuyStop == null)) { myBuyStop = ExitShort("ExitShort","ShortEntry"); } } if ((ToTime(Time[0]) >= 140000) && (Time[0].DayOfWeek == DayOfWeek.Friday)) { if (Position.MarketPosition == MarketPosition.Long && (mySellStop == null)) { myEmgSellStop = ExitLong("ExitLongWE","LongEntry"); } if (Position.MarketPosition == MarketPosition.Short && (myBuyStop == null)) { myEmgBuyStop = ExitShort("ExitShortWE","ShortEntry"); } }
if ((myBuyStop != null && myBuyStop == order) || (myEmgBuyStop != null && myEmgBuyStop == order) { if (order.OrderState == OrderState.Filled) { myEmgBuyStop = null; myBuyStop = null; } } if ((mySellStop != null && mySellStop == order) || (myEmgSellStop != null && myEmgSellStop == order) { if (order.OrderState == OrderState.Filled) { myEmgSellStop = null; mySellStop = null; } }
Comment