I've added a couple print statements to my Unmanaged strat so I can see what's going on "under the hood"...
protected override void OnOrderUpdate(IOrder o) { zoneCounter++; if (1==1){ Print("******************* OnOrderUpdate"); Print("******************* OnPosition: "+Position.MarketPosition.ToString()); Print("******************* zoneCounter: "+zoneCounter.ToString()); } ...
protected override void OnExecution(IExecution e) { if (1==1){ Print("******************* OnExecution"); Print("******************* OnPosition: "+Position.MarketPosition.ToString()); Print("******************* zoneCounter: "+zoneCounter.ToString()); } zoneCounter = 0; ...
CalculateOnBarClose = true; Unmanaged = true; TraceOrders = true;
itPrice=44.65 StopPrice=0 OcoId='' Name='SE'
******************* OnOrderUpdate
******************* OnPosition: Flat
******************* zoneCounter: 1
v03 Short OnOrderUpdate
******************* OnOrderUpdate
******************* OnPosition: Flat
******************* zoneCounter: 2
v03 Short OnOrderUpdate
******************* OnOrderUpdate
******************* OnPosition: Flat
******************* zoneCounter: 3
v03 Short OnOrderUpdate
******************* OnOrderUpdate
******************* OnPosition: Short
******************* zoneCounter: 4
v03 Short OnOrderUpdate
******************* OnExecution
******************* OnPosition: Short
******************* zoneCounter: 4
11/4/2016 07:43:15 Entered internal SubmitOrder() method at 11/4/2016 07:43:15: Action=BuyToCover OrderType=Stop Quantity=1 L
imitPrice=0 StopPrice=44.80 OcoId='' Name='SS'
11/4/2016 07:43:15 Entered internal SubmitOrder() method at 11/4/2016 07:43:15: Action=BuyToCover OrderType=Limit Quantity=1 L
imitPrice=44.50 StopPrice=0 OcoId='' Name='ST'
******************* OnOrderUpdate
******************* OnPosition: Short
******************* zoneCounter: 1
Stop Short OnOrderUpdate
******************* OnOrderUpdate
******************* OnPosition: Short
******************* zoneCounter: 2
Target Short OnOrderUpdate
******************* OnOrderUpdate
******************* OnPosition: Short
******************* zoneCounter: 3
Stop Short OnOrderUpdate
******************* OnOrderUpdate
******************* OnPosition: Short
******************* zoneCounter: 4
Target Short OnOrderUpdate
******************* OnOrderUpdate
******************* OnPosition: Short
******************* zoneCounter: 5
Target Short OnOrderUpdate
Can you explain why it appears to run through OnOrderUpdate 4 times and remaining flat before the switch to OnExecution? Then, when it gets to OnExecution to place stop and target, why does it have two runs for the stop and two+ for the target?
Comment