Well, this is not new news. The problem is the underlying Ninja architecture, which was never designed to deal with multiple threads. At first thought, you would think that each chart could use its own thread, but generally that does not fly, because normally the entire GUI is handled in a single thread. There is a lot of other work that could be handled in parallel though, but the software has to be designed correctly, and I suspect Ninja would need a major overhaul (much bigger than the NT7 changes).
For backtesting, they are able to partition each scenario, and run each in parallel with a different thread, then they collate the results and present the info back on the main thread.
The following 3 users say Thank You to aslan for this post:
so what does this mean i fact of choosing a CPU for a pure trading-machine ?
in my understanding of this now i better invest in a big sized core2 + good+fast mainboard + parts than in a big 4core if i dont need power for backtesting.
is that right ?
as said - talking about a pure trading-PC. No backtesting, no frills.
what do you think is the point with running some strategys ?
lets say i run 6 of them on the same instrument - not loaded in charts, only in the strategy-tab - will their action be calculated on other cores then my manual action in the charttrader ?
or is it meant that basicly ALL real tradingfunctions use 1 core +
only backtesting-function is enabled to use multiple cores ?
Not positive on the strategies, but I suspect they all run in the same thread just like charts. Try it and find out.
In terms of a trading PC, the answer is still it depends. Are you only running Ninja? Do you run other trading related items (i.e. your data feed may be another process depending what you use, or another charting program...). Do you run some non-trading items? While Ninja may only use one core for the most part, other programs may be able to make use of the other cores.
I have not looked at benchmarks recently, but 2 core CPUs may have better bang for your buck.
Personally, I use 4 core CPUs, but I have a lot running on there at the moment (and Ninja is the only program I have seen stall out when it gets busy).
Yeah its only multi core for the number crunching part of the backtesting, even when its organising the backtest data its still single core. I have an 8 Core machine (2 x Quad Xeons) and it still take 10 - 15 minutes to organise 2 years of tick data during the start of the back test, its painfully slow and shows 13% CPU usage at that time. And the same thing happens again when changing from one equity curve to another in backtesting. Once its starts the number crunching its multicore, which is great.
Your best bet is to get the quickest clock speed machine you can get, and maybe overclock it a little. Or you could split your charts onto a couple of boxes or maybe break your box up into a few VPSs
The following 2 users say Thank You to webart for this post:
Yes and no - as someone currently writing a Ninja Competitor.
Processing power for algos is not a problem. Seriously. Unless you run crazy stuff there the requirements are minimal. Problem is pretty much the UI - especially in Ninja. UI + drawing are single threaqded, per design in Winforms, dual threaded in WPF (actual drawing is done on a second thread by the OS).
Getting the architecture right is a problem - I am fighting with it for 2 months now, but I think I am there now. NInja does everything in one thread, which - maxes it out. I hope to be able to run one thread per window (though my window is a work area that can have multiple charts on it etc.), plus decpple strategies / order handling into background threads. But this is a SIGNFICANT impact on architecture, and NInja simply is not done like that (and given the tremendous other amount of idiocies there, it does not wonder me). It is quite a lot of work to get it right
I have been doing tests with a time and sales window, and I must say - the problem really is the drawing. Plus, in case of Ninja the non-wpf-approach which basically does the drawing in the single CPU thread. My WPF appraoch pretty much killed the time and sales without tricks - thanks to WPF offloading drawing to a second thread AND using the graphics card to do the rendering. But this is a lot newer. Maybe NinjaTrader 8 is a total rewrite in 3-4 years I would not bet on it
The following 4 users say Thank You to NetTecture for this post: