Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
Try running your strategy real time in SIM for a month and at the end of the month back testing the strategy against that same month. Compare the results . When I tried it, I never found any correlation between the two results.
I'm just a simple man trading a simple plan.
My daddy always said, "Every day above ground is a good day!"
I mine, you have problem with your non tick based quotes...
Please switch your chrat to !seconds! (1hour = 3600sec)... now NT7 create all bars by using tickdata.
If you have continue wrong results, then juri tools have i internal worng programmed code for backtest
example: one candle = only one tick -> !FirstTickOfBar is equal lastTickOfBar! Any code If(FirstTickOfBar) { /* code */ } else {/* other code*/} well on Backtest never call the "other code".
The most parts of juri tools its give free (full source, no crack)... then you can self check this...
Attached are screenshots of the YM in replay and backtest. They are piratically identical.
However, the ES in backtest v. replay are not the same. I'm going to compare the price data of the ES in replay and backtest. Most likely the replay is the incorrect data, however I'm really not sure.
I'm going to try it on other contracts to confirm that it's working on most everything except for the ES.
Thanks for the great input everyone. I tried the 3600 seconds, with the same results in backtest.
The backtest was made with setting CalculateOnBarClose = true on historical data. The replay used intra-bar fills as opposed to fills at the bar close. The only thing that one can say is that all the differences and errors cancel out.
No I call it 'practically identical.' All but one of the trades were within the hour. The reason why one of the trades was missing was because the replay had one open position at the end of the replay session (contract rollover day). Good enough for 60min non-intraday IMO, especially since backtests are generalizations anyways. I attached the backtest v. replay results btw which I didn't share above with the trades v. trades post - only one trade off, which was the one that didn't close at the end of the replay.
I got some email going with NT to see if we can figure the problem and how I can fix it... it's looking like my ES tick data or the NT ES replay data is faulty. I'm running the system through NQ and SI, and finding so far that the results are also the same compared to backtest results, just like with YM.
Calc on bar close should be true... I was thorough with the settings (reviewed them again and again) and my code, cross referencing everything. I wouldn't of gone with putting in the effort to make the thread if I knew I could solve it myself. I'm really just wondering if anyone has had a similar experience, perhaps because a problem with Jurik tools or the ES data in particular would be something someone else already came across. Btw, you shouldn't expect me or anyone else frankly to be handing over hard work... indicators are fine, which is why Mark Jurik sells them - but systems are seldom shared, especially in public or in the non-elitecircle section (at least I've never seen it before, on this forum or other places).
I'll be sure to post if I get definitive info from NT on what happened - if there is something incorrect with ES replay data, others will know to be careful of it while it gets fixed.
If you load historical minute data, you will have one single tick per bar on that data available for a backtest. If a required condition is met, the backtest will enter a position at the open of the next bar. Historical data has no intra-bar price data available for doing otherwise.
In replay, you have set your strategy to CalculateOnBarClose = false, and the strategy will enter intra-bar. This explains why the entry of the replay is systematically earlier than the entry on the backtest.
If you want to make backtest and replay compatible, you have two options
-> either switch the replay to CalculateOnBarClose = true
-> or recode the strategy to work in CalculateOnBarClose = false for the backtest.
As historical data always contains 1 tick per bar, your only option for a real backtest is to load a secondary 1-tick bar series for the backtest and use the information from that secondary bar series to enter and exit your positions.