I have purchased historical tick data to run in NT for some risk strategy building. I know that in MT4 one can back test on on tick data to get 99% for intra bar accuracy; can the same be said of NT when utilizing back testing on tick data?
Yes, the capability is there to backtest on tick data.
Due to time constraints, please do not PM me if your question can be resolved or answered on the forum.
Need help? 1) Stop changing things. No new indicators, charts, or methods. Be consistent with what is in front of you first. 2) Start a journal and post to it daily with the trades you made to show your strengths and weaknesses. 3) Set goals for yourself to reach daily. Make them about how you trade, not how much money you make. 4) Accept responsibility for your actions. Stop looking elsewhere to explain away poor performance. 5) Where to start as a trader? Watch this webinar and read this thread for hundreds of questions and answers. 6) Help using the forum? Watch this video to learn general tips on using the site.
If you want to support our community, become an Elite Member.
As of today (NT v7) strategies can not be backtested intra-bar. Backtesting historical data can only be performed on the close of the bar. Backtesting historical data defaults to a "fixed" CalculateOnBarClose = true. OnMarketData or OnMarketDepth can not be used on historical data.
You can only use Market Replay to "backtest" against intra-bar, OnMarketData, or OnMarketDepth.
Also there are "intra-bar granularity" issues when backtesting multi-timeframe strategies.
I've been trying to get the following issue addressed in NT forum but no luck.
I have looked at their reference code and all the docs.
I appreciate if you could shed some light.
Unexpected behavior of OnOrderUpdate() calls with Intrabar data
Although I am using Intrabar data (1Min), the OnOrderUpdate() was always called on the main time frame (60Min)
Here are the specifics:
Instrument: ES ##-##
Main Time Frame = 60 Min
Secondary Time Frame = 1 Min
Bar in question was on 11/16/2012 at 11:30 AM
The Buy order was filled at 1350.75 at time 11:30AM
The Profit target was filled at 1354.75 at time 11:30AM
Looking at the 1Min Chart, I see that the 1354.75 level was not touched until 12:16PM
So, it looks like the OnOrderUpdate() is called only on the 60Min time frame. I expect
OnOrderUpdate() to be called around time 12:16PM based on the 1Min data.
I printed 'Time' at the beginning of OnOrderUpdate(). Here are the fills of the Buy and the Profit Target:
OnOrderUpdate Time: 11/16/2012 11:30:00 AM
IOrder Order='NT-00081/Sim101' Name='Buy' State=Filled Instrument='ES ##-##' Action=Buy Limit price=0 Stop price=0 Quantity=1 Strategy='RKMTest' Type=Market Tif=Gtc Oco='' Filled=1 Fill price\
=1350.75 Token='27ebb46b1e1f48589cfab756b19f1d66' Gtd='12/1/2099 12:00:00 AM'