It runs fine in backtest, but it doesn't seem to process an order for anything live. You can't get a simpler strat than this really. It worked in NT 6.5 but doesn't seem to work in NT 7.
Finally salient code in question:
protected override void Initialize() { CalculateOnBarClose = true; ExitOnClose = false; TraceOrders = true; } /// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { // Condition set 1 if (DefaultInput[0] > ChandelierSAR(6, 4).Chandelier[0]) { EnterShortStop(DefaultQuantity, ChandelierSAR(6, 4).Chandelier[0], ""); DrawDot("My dot" + CurrentBar, false, 0, ChandelierSAR(6, 4).Chandelier[0], Color.Blue); } // Condition set 2 if (DefaultInput[0] < ChandelierSAR(6, 4).Chandelier[0]) { ExitShortStop(ChandelierSAR(6, 4).Chandelier[0], "", ""); DrawDot("My dot" + CurrentBar, false, 0, ChandelierSAR(6, 4).Chandelier[0], Color.Blue); }
**NT** Enabling NinjaScript strategy 'FX6short4/ad1f88ddf4dd44998f1ba939ebc01405' : On starting a real-time strategy - StrategySync=WaitUntilFlat SyncAccountPosition=False EntryHandling=AllEntries EntriesPerDirection=1 StopTargetHandling=PerEntryExecution ErrorHandling=StopStrategyCancelOrdersClosePositio ns ExitOnClose=False Set order quantity by=Strategy ConnectionLossHandling=KeepRunning DisconnectDelaySeconds=10 CancelEntryOrdersOnDisable=False CancelExitOrdersOnDisable=True MaxRestarts=4 in 5 minutes
12/1/2010 11:10:28 AM Entered internal PlaceOrder() method at 12/1/2010 11:10:28 AM: BarsInProgress=0 Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3130 SignalName='' FromEntrySignal=''
12/1/2010 11:10:28 AM Ignore order amendment: Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3130 SignalName=Sell short' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/1/2010 11:14:05 AM Entered internal PlaceOrder() method at 12/1/2010 11:14:05 AM: BarsInProgress=0 Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3130 SignalName='' FromEntrySignal=''
12/1/2010 11:14:05 AM Ignore order amendment: Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3130 SignalName=Sell short' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/1/2010 11:17:15 AM Entered internal PlaceOrder() method at 12/1/2010 11:17:15 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3180 SignalName='' FromEntrySignal=''
12/1/2010 11:19:17 AM Entered internal PlaceOrder() method at 12/1/2010 11:19:17 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName='' FromEntrySignal=''
12/1/2010 11:19:17 AM Amended open order: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName=Buy to cover' FromEntrySignal=''
12/1/2010 11:24:12 AM Entered internal PlaceOrder() method at 12/1/2010 11:24:12 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName='' FromEntrySignal=''
12/1/2010 11:24:12 AM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/1/2010 11:25:50 AM Entered internal PlaceOrder() method at 12/1/2010 11:25:50 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName='' FromEntrySignal=''
12/1/2010 11:25:50 AM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/1/2010 11:30:07 AM Entered internal PlaceOrder() method at 12/1/2010 11:30:07 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName='' FromEntrySignal=''
12/1/2010 11:30:07 AM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/1/2010 11:30:41 AM Entered internal PlaceOrder() method at 12/1/2010 11:30:41 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3172 SignalName='' FromEntrySignal=''
...clipped....
12/1/2010 10:58:38 PM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/1/2010 11:54:27 PM Entered internal PlaceOrder() method at 12/1/2010 11:54:27 PM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName='' FromEntrySignal=''
12/1/2010 11:54:27 PM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/1/2010 11:57:22 PM Entered internal PlaceOrder() method at 12/1/2010 11:57:22 PM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName='' FromEntrySignal=''
12/1/2010 11:57:22 PM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/2/2010 12:04:39 AM Entered internal PlaceOrder() method at 12/2/2010 12:04:39 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName='' FromEntrySignal=''
12/2/2010 12:04:39 AM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/2/2010 12:31:36 AM Entered internal PlaceOrder() method at 12/2/2010 12:31:36 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName='' FromEntrySignal=''
12/2/2010 12:31:36 AM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/2/2010 12:43:17 AM Entered internal PlaceOrder() method at 12/2/2010 12:43:17 AM: BarsInProgress=0 Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName='' FromEntrySignal=''
12/2/2010 12:43:17 AM Ignore order amendment: Action=BuyToCover OrderType=Stop Quantity=0 LimitPrice=0 StopPrice=1.3138 SignalName=Buy to cover' FromEntrySignal='' Reason='Order already has this stop price/limit price/quantity'
12/2/2010 12:43:39 AM Entered internal PlaceOrder() method at 12/2/2010 12:43:39 AM: BarsInProgress=0 Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3095 SignalName='' FromEntrySignal=''
12/2/2010 12:43:39 AM Ignored PlaceOrder() method at 12/2/2010 12:43:39 AM: Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3095 SignalName='Sell short' FromEntrySignal='' Reason='Exceeded entry signals limit based on EntryHandling and EntriesPerDirection properties'
12/2/2010 12:43:39 AM Cancelled expired order: BarsInProgress=0: Order='NT-00027/Sim101' Name='Buy to cover' State=Working Instrument='M6E 12-10' Action=BuyToCover Limit price=0 Stop price=1.3138 Quantity=0 Strategy='FX6short4' Type=Stop Tif=Gtc Oco='' Filled=0 Fill price=0 Token='8e534fc3d25c40918bacf2194c850f00' Gtd='12/1/2099 12:00:00 AM'
12/2/2010 12:49:09 AM Entered internal PlaceOrder() method at 12/2/2010 12:49:09 AM: BarsInProgress=0 Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3096 SignalName='' FromEntrySignal=''
12/2/2010 12:49:09 AM Ignored PlaceOrder() method at 12/2/2010 12:49:09 AM: Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3096 SignalName='Sell short' FromEntrySignal='' Reason='Exceeded entry signals limit based on EntryHandling and EntriesPerDirection properties'
12/2/2010 1:12:13 AM Entered internal PlaceOrder() method at 12/2/2010 1:12:13 AM: BarsInProgress=0 Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3096 SignalName='' FromEntrySignal=''
12/2/2010 1:12:13 AM Ignored PlaceOrder() method at 12/2/2010 1:12:13 AM: Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3096 SignalName='Sell short' FromEntrySignal='' Reason='Exceeded entry signals limit based on EntryHandling and EntriesPerDirection properties'
12/2/2010 1:14:47 AM Entered internal PlaceOrder() method at 12/2/2010 1:14:47 AM: BarsInProgress=0 Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3102 SignalName='' FromEntrySignal=''
12/2/2010 1:14:47 AM Ignored PlaceOrder() method at 12/2/2010 1:14:47 AM: Action=SellShort OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=1.3102 SignalName='Sell short' FromEntrySignal='' Reason='Exceeded entry signals limit based on EntryHandling and EntriesPerDirection properties'
Do I have to disable calculate on bar close?
My new theory is that NT was improperly programmed to use RANGE charts because of the bar close cancelation property.
Maybe I am the only person in the world using range charts in NT....
Comment