What is really confusing is that the results of replay (live) versus backtesting are the same, minus the number of trades. The profit and consistency rates are the same, however the live trading is generating fewer trades. In fact, the live trading's overall results are better; generally it's the other way around
I'll go back to the charts and analyze each individual trades, but I was wondering if anyone has any thoughts. Here are some points on what I'm doing:
Using non-blackboxed Jurik tools (i.e. 100% ninjascript indicators) from jurikres.com - I've used them before in backtest versus live with no trouble
60 minute bars, exit on close = false
Trading the ES
Uses a leading indicator (made this week)
Completely independent from other platforms, i.e. matlab is not connected
As a final bit, I only optimized three coefficients/inputs. All but three of the combinations had positive results... very confident that the system works. I'm going to investigate if there is a discrepancy between my Ninjascript in backtest versus live. If NT developers ask for the system... the answer is no, and you'd probably blame me anyways if I did.
Does anyone know of alternative software platforms that will run C# (NOT easylanguage) with similar functionality as NT? I've heard Xtrader and T4 are pretty popular... I got into NT because of recommendations and liked the up sides of it very much, at least at the time.
"A Jedi's strength flows from the force."
Last edited by patbateman; April 28th, 2012 at 05:19 PM.
please say your used ordertypes... Without self coding, NT7 don't can backtest stop&limit orders with correct intrabar fills.
Your without more own coding, please use only marketorders and CalcBarOnClose=TRUE
-> market entry orders now filled "OnOpen"
-> please write little own code for your exit conditions and use "CloseMarket" (also filled on next Open)
With this simple OrderLogic, Backtest and Replay run nearly equal. The last difference: Replay use only TickData files from NinjaServer, BackTest use the from real DataProvider requested data's. If time bars greater than 1min used, then NT7 dont used tick data for backtest.
For the next month i hope to publish my (tickbased) history solution for the LOM project. This well realize a accurat Fill incl. IntraBar Exit/ReEntry for the BackTest mode. The concept is simple current you deglare myStrategy:Strategy, then you change only this to myStrategy:LOMtickStrategy.
Your current problem can base on NinjaServer ReplayTicks <-> MinData of your DataProvider or your strategy use OrderTypes with needed correct Intrabar handling of Hi/Lo sequence and/or IntrabarExit/ReEntry or you use partial scale In/Out.
Update... my algo is showing different values. Attached is a screen shot of backtest versus replay output for the same time period. Combined with the information that both scenarios are producing similar performance results, I'm going to look at how far the system examines past data. I already tried this once by setting the look back period for my replay data at 6 days, which should be plenty for the maximum period in my system.
Anyone run into a similar problem? Any ideas? Is JMA in fact not backtestable, despite possible similarities in the past?
When I adjust the "min bars required" field in strat analyzer, the results vary hugely. They all have similar performance data, however the trades are very different. I suppose I should of picked up on this for a leading indicator. There appears to be no correlation between the look back period and number of trades. It also appears that the lookback period in back testing does NOT produce similar results when the same lookback period is set in market replay.
To make things even more amazingly confusing, here is what happened...
I ran the system on a different contract, this time the Dow (YM). The backtest and the replay are 99.999% identical.
I don't know what to make of this, other than there is something in fact going on with the ES contract in replay or backtest. I'll have to investigate tomorrow, it's bedtime now. The NT team probably thinks I'm making this all up to sabotage them... I'm not!
Anytime you are using non-tick bars (like 60 minute bars), you need to be aware of how NinjaTrader processes orders. It knows only the OHLC of the bar, and it does not know the order of those. Did the L happen before the H, or vice versa? It does not know when you use non-tick data.
From memory, it assumes the best. Unfortunately. This means if you have a 1 tick stop and a 20 tick target, if the H of the bar has exceeded your target, it will count as a winner, even if the L of the bar has exceeded your stop.
The easiest way to see how this effects you is to look at the individual list of trades from the backtest report. Sort by number of bars in trade. All trades that show '1 bar' should be swapped from winners to losers. You can do this by exporting to Excel pretty easily.
The other option is to add a secondary dataseries to your strategy, of 1-range. Then send all orders to the secondary series, so it has a 1-range (1-tick) accuracy.
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.
The following user says Thank You to Big Mike for this post: