In the example shown on the attached image, at 10:30, when the first order (t2.ppa$ES.Buy@05/02/13-10:25:00) reach its target (1581.25), the second order (t2.ppa$ES.Buy@05/02/13-10:25:00) stop is changed to 1580.75, but NT choose to execute the original stop of 1579.75, which was set initially.
The print shows the order trace where the change calls take place:
5/2/2013 10:25:00 AM Entered internal SetStopTarget() method: Type=Stop FromEntrySignal='t3.t1.ppa$ES.Buy@05/02/13-10:25:00' Mode=Price Value=1580.75 Currency=0 Simulated=False
protected override void OnExecution(IExecution execution) { // if target has meet, update the next targets stops if ((execution.Name == targetName) && (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled)) { string eOrderName = execution.Order.FromEntrySignal; double eOrderStopPrice; if (execution.Order.OrderAction == OrderAction.Sell || execution.Order.OrderAction == OrderAction.SellShort) // its the opposit dir { if (eOrderName.Substring(0, 3) == "t1.") { eOrderStopPrice = getTargetStop(2, execution.Price, 1); SetStopLoss("t2."+eOrderName, CalculationMode.Price, eOrderStopPrice - (stopPassThrough ? priceTouch : 0), false); } if (eOrderName.Substring(0, 3) != "t3.") { eOrderStopPrice = getTargetStop(3, execution.Price, 1); SetStopLoss("t3."+eOrderName, CalculationMode.Price, eOrderStopPrice - (stopPassThrough ? priceTouch : 0), false); } } else { if (eOrderName.Substring(0, 3) == "t1.") { eOrderStopPrice = getTargetStop(2, execution.Price, -1); SetStopLoss("t2."+eOrderName, CalculationMode.Price, eOrderStopPrice + (stopPassThrough ? priceTouch : 0), false); } if (eOrderName.Substring(0, 3) != "t3.") { eOrderStopPrice = getTargetStop(3, execution.Price, -1); SetStopLoss("t3."+eOrderName, CalculationMode.Price, eOrderStopPrice + (stopPassThrough ? priceTouch : 0), false); } } orderTimeBaseCounter = Off; } }
5/2/2013 10:25:00 AM Entered internal SetStopTarget() method: Type=Target FromEntrySignal='t1.ppa$ES.Buy@05/02/13-10:25:00' Mode=Price Value=1581.2475 Currency=0 Simulated=False
5/2/2013 10:25:00 AM Entered internal PlaceOrder() method at 5/2/2013 10:25:00 AM: BarsInProgress=0 Action=Buy OrderType=Limit Quantity=1 LimitPrice=1580.50 StopPrice=0 SignalName='t1.ppa$ES.Buy@05/02/13-10:25:00' FromEntrySignal=''
5/2/2013 10:25:00 AM Entered internal SetStopTarget() method: Type=Stop FromEntrySignal='t2.ppa$ES.Buy@05/02/13-10:25:00' Mode=Price Value=1579.75 Currency=0 Simulated=False
5/2/2013 10:25:00 AM Entered internal SetStopTarget() method: Type=Target FromEntrySignal='t2.ppa$ES.Buy@05/02/13-10:25:00' Mode=Price Value=1581.9975 Currency=0 Simulated=False
5/2/2013 10:25:00 AM Entered internal PlaceOrder() method at 5/2/2013 10:25:00 AM: BarsInProgress=0 Action=Buy OrderType=Limit Quantity=1 LimitPrice=1580.50 StopPrice=0 SignalName='t2.ppa$ES.Buy@05/02/13-10:25:00' FromEntrySignal=''
5/2/2013 10:25:00 AM Cancelled pending exit order, since associated position is closed: Order='NT-00035/Backtest' Name='Stop loss' State=Working Instrument='ES 12-13' Action=Sell Limit price=0 Stop price=1579.75 Quantity=1 Strategy='bdtStrPPA' Type=Stop Tif=Gtc Oco='NT-00022-5838' Filled=0 Fill price=0 Token='1df26d4100924fa0bf8809b6b02218bb' Gtd='12/1/2099 12:00:00 AM'
Price=1581.25 Quantity=1 Market position=Short Commission=0 Order='NT-00036' Time='5/2/2013 10:30:00 AM'> $Dir=1, $Enter=1580.5, $Target=1581.25, $Stop=1579.75, $TimeBase=4
5/2/2013 10:25:00 AM Entered internal SetStopTarget() method: Type=Stop FromEntrySignal='t2.t1.ppa$ES.Buy@05/02/13-10:25:00' Mode=Price Value=1580.75 Currency=0 Simulated=False
5/2/2013 10:25:00 AM Entered internal SetStopTarget() method: Type=Stop FromEntrySignal='t3.t1.ppa$ES.Buy@05/02/13-10:25:00' Mode=Price Value=1580.75 Currency=0 Simulated=False
5/2/2013 10:25:00 AM Cancelled OCO paired order: BarsInProgress=0: Order='NT-00035/Backtest' Name='Stop loss' State=Cancelled Instrument='ES 12-13' Action=Sell Limit price=0 Stop price=1579.75 Quantity=1 Strategy='bdtStrPPA' Type=Stop Tif=Gtc Oco='NT-00022-5838' Filled=0 Fill price=0 Token='1df26d4100924fa0bf8809b6b02218bb' Gtd='12/1/2099 12:00:00 AM'
5/2/2013 10:30:00 AM Cancelled expired order: BarsInProgress=0: Order='NT-00035/Backtest' Name='Stop loss' State=Cancelled Instrument='ES 12-13' Action=Sell Limit price=0 Stop price=1579.75 Quantity=1 Strategy='bdtStrPPA' Type=Stop Tif=Gtc Oco='NT-00022-5838' Filled=0 Fill price=0 Token='1df26d4100924fa0bf8809b6b02218bb' Gtd='12/1/2099 12:00:00 AM'
5/2/2013 11:10:00 AM Cancelled pending exit order, since associated position is closed: Order='NT-00038/Backtest' Name='Profit target' State=Working Instrument='ES 12-13' Action=Sell Limit price=1582 Stop price=0 Quantity=1 Strategy='bdtStrPPA' Type=Limit Tif=Gtc Oco='NT-00023-5838' Filled=0 Fill price=0 Token='c027b0682f794146915f5ad0ff3c0366' Gtd='12/1/2099 12:00:00 AM'
5/2/2013 11:10:00 AM Cancelled OCO paired order: BarsInProgress=0: Order='NT-00038/Backtest' Name='Profit target' State=Cancelled Instrument='ES 12-13' Action=Sell Limit price=1582 Stop price=0 Quantity=1 Strategy='bdtStrPPA' Type=Limit Tif=Gtc Oco='NT-00023-5838' Filled=0 Fill price=0 Token='c027b0682f794146915f5ad0ff3c0366' Gtd='12/1/2099 12:00:00 AM'
Comment