I use it all the time for serious programming and have traded uncountable number of contracts through it without a hitch. The problem is that Ninja's ATM is horribly broken, so for begining programmers it is somewhat limited. But if you do unmanaged, it is as strong solid program with unlimited capabilities since it sits ontop of C#. The downside is you need to work much harder and understand programming to use unmanaged. Ninja needs to do three things to make it a premier trading platform: 1) Support direct platforms like Currenex and Integral and Hotspot, CME etc etc. I trade FOREX and Futures so the rest are unimportant to me. 2) Fix the ATM. This would do nothing for me since I use unmanaged, but it will for traders that don't program. 3) Add a powerful spread trading capability to match XTrader and CQG, with order language to handle multi-leg orders. 4) The optimizer/walk forward is horribly slow
I am a big fan of Amibroker and have been using it for years, mostly for swing trading stocks. I am not very advanced, probably because I really don't need to be very advanced for my kind of trading and also because it's a software with a pretty steep learning curve, so I may never be able to find enough time to master it better. But I have noticed that NinjaTrader has made quite a bit of progress over the years and their marketing is pretty smart too. I am not exactly sure how they compare to Amibroker, but if you are a good programmer, I believe that you will find both useful. Well, just my two cents.
Hi nitro, NT's website differentiates between ATI (auto trade interface) and ATM(m for management). Could you please clarify what you said about ATM being broken yet you trade tons of contracts using NT? Does it mean you bypass that ATI/ATM system and use ninjascript to fire off your bots? I looked all over the web for a video of NT firing off orders unmanaged and don't seem to have videos of it just 3rd party vendors selling their plugins. Thanks for your opinions. I use it all the time for serious programming and have traded uncountable number of contracts through it without a hitch. The problem is that Ninja's ATM is horribly broken, so for begining programmers it is somewhat limited. But if you do unmanaged, it is as strong solid program with unlimited capabilities since it sits ontop of C#. The downside is you need to work much harder and understand programming to use unmanaged.
The one that holds your hand is broken. If you use say Unmanaged = true and then use SubmitOrder and override OnOrderUpdate and OnExecution, you are using the raw power of Ninja order management. Much harder than having your hand held, but far far more control and power. I will warn you, be extremely careful when designing trading systems using raw trading order management in any system. It is extremely easy to have a Knight Trading event where your program has an unforseen bug and the program goes crazy and buys or sells thousands of time in one second bankrupting you instantly. Make sure that you check that you cannot send more than one order at the same time (locking) or that you cannot have more than say three units in the same direction on one symbol. Perhaps do not allow more than one order a second to be sent. This sort of thing will save you from catastrophe. Test like crazy using the absolutely minimum size allowed. Use defensive code as much as possible. Be aware that this is an event based system, and your code has to handle logic coming at it from more than one direction at a time, i.e., it is likely multithreaded. Use the Output window and surround your code with if(true == DEBUG) and make DEBUG a boolean parameter, that way you can see what is going on as the program runs by saying Print(some debug code goes here). You can always turn off debugging if you want by setting the parameter to false. Learn how to run Ninja from Microsoft Visual Studio for even more powerful debugging. I have so much confidence in what I wrote I let my systems trade by themselves while I sleep. But I put in a lot of effort to get to this point. "With great power comes great responsibility" - Spiderman
Thanks nitro, maybe throw in a couple of long strangles or other cheap "explosion" positions there to really make your bots "knight " proof ..