I am relatively new to Algo trading. I currently have one strategy trading futures I have developed that is working successfully but find Ninjatrader to have some limitations that are holding me back:
1. The coding language and logic isn't the easiest thing. I find the way their strategy analyser and market replay handle multiple data series algorithms to be less than ideal. They require me to change the logic of my code to use each one.
2. Limited data availability - Market Replay = 3 months full market depth, Historical Data/Strategy Analyser = 1 year Tick data (no market depth).
I have a small amount of programming experience from my Engineering studies as well as from tweaking add ons/bots for some games. I find it easy to understand the logic I want to implement but I am still quite inexperienced with C# so I do spend a lot of time learning how to actually implement it as desired. Something that uses a higher level language would make life a lot easier but I am a relatively quick learner so dont mind using C#, C++ if the platform has better backtest and more data available.
Any suggestions would be greatly appreciated!
The following user says Thank You to BJU90 for this post:
Market Replay - 3 Months of Market Depth data. Plays it back in a "replay" like fashion. Can be sped up but still is very slow to process data and has no optimisation functions avaiable. Uses a function "OnFirstTickofBar" to make calculations on the close of a bar however the indexing has to be changed as it is occuring on the open of the next bar and not the close of the bar the calculations are run on. Can't seem to see how it chooses the time frame when viewing the results on a chart as each trade I open seems to be different.
Strategy Analyser - 1 year of Tick data available. However it does not allow calculations to be made on each tick, it allows on bar close only. The work around is that you have to add a tick data series to the strategy and call on the close of each bar of the tick series. When analysing the results this puts all of the charts as the primary data series (1 tick) making it very slow and difficult to analyse specific trades on a chart.
If an indicator is loaded in the strategy analyser and set to draw on the chart it then has to be manually added when viewing results.
Whatever is loaded as the primary data sets drives all of the bar update state changes, it becomes unnecessarily complex if you want to carry out calculations on the bar close of multiple different time frames.
Overall I get the feeling that Ninja traders Algorithm functionality was an afterthought at best and is really not optimal in the way it handles and queries data.
The following user says Thank You to BJU90 for this post:
Thanks for this request. I too am looking for an alternative with what you are asking. I normally use Tradovate for its simplicity(including its API). Since ninjatrader bought Tradovate las year, the platform had suffered greatly.
For complete automation I use MetaTrader 5 since they now offer CME data from some brokers.
The layout is a bit crude and will differ a lot if you're used to NinjaTrader, but for automation its simple and based on C++ Backtesting is tickbased but lowest timeframe is 1 minute. (if you don't program your own tick charts)
MetaQuotes own forum mql5 has all the help you need to get started, but since MetaTrader is mostly used by forex traders the topics are oriented around non working indicators (according to me). But there are some more advanced topics if you know what to search for.
It has some drawbacks and more advanced indicators either cost money to buy or you need to program them yourself.
I base all my bots on delta volume which I have made myself.
The following user says Thank You to TheSwede for this post: