Id like to add some comments to this thread regarding ninjatrader.
I have been running it for 2 years live trading system now with money on the table and now i have decided to port away from ninja.
This is frustrating too say the least as i will have to port to another platform and rewrite the strategies.
With Ninja the more you use it the more you see the flaws which are not fully apparent until you look under the hood.
Here are some.
Performance metrics are in dollars even if im trading a euro / sterling position which means if your performing some sort of statistical arbitrage you have to manually calculate it out.
The initialize not been allowed to dynamically load instruments (again if your doing some sort of arbitrage this doesnt make sense as if the connection drops you need to auto reload. ) There is a workaround but the bug / feature should not be there.
A major issue is the resynchronisation of positions to active positions that are open. In the case whereby Ninja attempts to syncrhonise the position to the running strategy it uses the number of contracts. So say i have 10K position on a stock that trades at 4.10 i have 2439 shares open. Now as Ninja appears to messup on a reload of historical data (which causes the charts to all appear squidged together it may think you went long at a price of 4.15 not find the current order and relaunch another order into the market to syncrhonise it (2409 shares opened).
Sometimes market data doesnt stream into the chart so you have a case whereby the chart ticks / minutes are not updated which is an epic failure with statistical arbitrage.
Ninja broker support is distinctly lightweight and badly built. A case in question is the Ninja TWS API Interface does not support CFD's. CFD's are just a marker position where to route the trade yet they do not support it. Effectivly they do not fully support the broker they support the majors and thats it. I cannot understand this and it must mean its not quite thought out enough.
The constant crashes and disconnects (especially if 1 IB server is down) are unreal and cause the charting to not work correctly on incoming data.
They claim reload data which doesnt help if your in positions etc.
When you save a workspace and chart it doesnt save the from / to date so you have to manually set these everytime a reload / crash of ninjatrader happens.
Its been quite a ride with ninjatrader but now im off to port away from ninja and most probably into Panda. Panda is what is used significantly by hedge funds / quants etc so if in doubt follow them!
Favorite Futures: Futures - bonds, currencies, index
Posts: 288 since Oct 2010
Thanks: 70 given,
Excellent post leinster.
I became pretty disillusioned with NT years ago. I've been using it for maybe six years now. Your comment hit home about the more you use it the more you realise all the little things you need to cope with to try and make things work properly. I coudn't really trade with version 6. I waited ages for 7 to come out, then helped to beta test it for what seemed like years. But despite all that, the only real thing 7 gave me was it crashed much less - there was nothing for the professional trader to really get hold of. Various things I asked for years ago - really useful stuff like consolidated results for multi instrument tests, or simple stuff like fixing the date format on my graphs so it uses my locale, to massive things like sorting out multi currency (or at least reporting in the right currency - is it ever right to subtract 90 pounds from 100 dollars and say you made a profit?)
All asked for many years ago, along with loads of other really important stuff, and never done. Then it *all* went on hold and now I have to go through the whole process again with NT8?? I'm sorry but this is years of my trading career. And when NT8 is released, all of the marketing, advertising, features etc will concentrate on the new trader, or the occasional discretionary trader who might like pretty charts. There'll be nothing really great for the professional algorithmic traders...
The following user says Thank You to Xeno for this post:
I cannot believe I have not come across this anywhere until now (and from a 1+ yr old post! While I am not completely up to date on current programming techniques and do not have full Ninjascript knowledge, I can make changes to indicators, and add code, that modifies and/or enhances existing programming code in an indicator. I am only writing this because I have really gotten into the weeds on many things NT7-ish over the 3yrs I have been using it, and I can't believe I have never ever come across this documented anywhere. It is (another) major shortcoming of NT7, if true. It would appear that launching the editor - while I can grasp it is a separate program/module that needs resources - it is shocking that it does not release the memory and resources it usurped, after I exit it.
And to not have it noted anywhere (I have spent a lot of time in the NT7 forums too), is disenchanting. Partially, because I have been dumbfounded why my ninjatrader.exe will grow from ~500M to ~800M+ at times; it's at least every few days that I will launch the editor. As a matter of principle, I religiously do not want to exit NT7, since it would interrupt the writing of GOM data. BUT, since I have had intermittent issues where NT7 slows down significantly almost once a session, I do have to exit it, upon which relaunching it, then returns the normal speed. (Yes, this may be some indicator, but, I can't tell which one [due to NT7's lack of troubleshooting tools], and I have minimized my charts down to the 35 that I feel I need. )
I must admit i have nothing against Ninjatrader and still use it today as soon as i complete my conversion to python ill update the platform in my user details, however for now im still with it / stuck with it.
To be fair the support from Ninja is excellent and thats a credit to the team of employees and management. Truly excellent support.
However even if support is excellent there are serious issues with the product architecture that really need to be resolved / looked into closer. If im putting significant money on the line to trade and my platform cracks up due to something silly then i am not happy about it. This is much less of a concern if your not using automated trading.
Basic connection handling and infallible fallover support should be a minimum prerequiisite to a trading platform.
Even the post regarding the submit your automated strategy shows how fallible it is i have read numerous times ohh this is just the same as been live this disconnect this forgotten rollover etc etc, im sorry but im certain a hedge fund will not accept this.
For the price its okay as a product but its like taking a fiat punto to a formula 1 track and thinking ur going to win, its not going to get around the track.
@Xeno what platform are you using / looking at now ?
The following user says Thank You to leinster for this post: