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