Is there any plan for NinjaTrader to utilize multiple CPU cores?
I use the AMD Threadripper 1950X, which is a 16 core 32 thread processor, its overclocked to 4.1 GHz. I have 32 GB Ram, a Nvidia 1080ti GFX card, and use a M.2 NVME drive
All in all, in comparison to the vast majority of trader's systems, my system is pretty insane. As far as improvements to hardware that would affect trading software there's really very little improvements that I could even make.
With that being said, I have some pretty horrendous performance with NinjaTrader8, especially when it comes to initial start up load times. Now I do recognize that I use a pretty hefty amount of tick data. I look at 5 minute, Footprint (using volume bars), and 30 minute charts. On 5 mins I use 21days, Footprint 5 days, and 30 min 30 days for data series. On each of those charts I have session volume profiles and cumulative delta on the charts, on the 5 min charts I also have RVOL calculated from tick data, And I look at 2-4 instruments at a time.
This setup takes about 45 minutes of loading/tweaking time each morning. Initially I launch Ninja and it is disconnected from my data on startup because if it is connected right away it will crash, then I give it roughly 1 minute before connecting to data. If I take too long to connect to my data, lets say 5 minutes, then upon connection my charts will time-out and never actually load, or sometimes will display incorrect information. After connecting to data I need to wait about 15 minutes for the charts to load up completely. Once that load is done, I have to right click one of the charts on each instrument and select reload all historical data, because although the bars loaded, historical tick data was not loaded, so I do not have volume profile, cumulative delta, or RVOL showing up. So after selecting reload all historical data for each instrument it takes around an additional 15 minutes of load time, however during this time, I sometimes experience crashes, or data is displayed incorrectly (sometimes even unbeknownst to me). Which either prompts a restart entirely, another reload of data, or possibly trading errors due to inaccurate price information.
I have had many support tickets and calls, even remote login support on 3 different occasions. All without any real solutions, (only workarounds like not connecting to data on start-up). I am being told that my charts are intensive on my CPU, however I showed the technician via hardware monitor that my CPU is never coming under load, in fact, even when trying my hardest I cannot get NinjaTrader to utilize more than 15% of my CPU's available processing power. I was told this is because NinjaTrader will only use 1 core per instrument, so even if 16 cores are available, whilst loading the ES for example, it will utilize just 1 core. Despite that being the case I still believe Ninja is performing poorly, because 1 core at 4Ghz with this type of data should not take this long, I have been unable to recreate this poor performance with any other software, trading or non-trading related.
For reference, I have used the IRT platform with the EXACT same setup as a test. I actually loaded up IRT with the same exact indicators, chart intervals, and instead of using 5, 21, and 30 days look-back periods, I used 90 days look-back period for ALL charts with tick data. IRT loaded these charts almost instantly. I mean I would be exaggerating if I said it took longer than 30 seconds.
So in performance difference we are seeing 30 seconds with IRT under a seemingly heavier load (processing triple the amount of ticks) able to do what it takes NT8 30+ minutes to do with 1/3rd of the ticks to calculate. Pretty bad honestly.
In all reality I wanted to make the switch to IRT, and still might, the problem is I do a lot of very short term trading not necessarily scalping for ticks but I trade high volatility events like news releases etc. So the ATM strategies are quite useful to me. In IRT for some reason when using a rithmic connection you can have automated targets but when moving your stop the BE that must be done manually, which is just problematic for me to be honest at the pace in which I trade. So I made the return to NT8 based on order executions. But in reality there are so many occasions that I start my day late, or find myself still working on pre-market analysis going into the open because I just cannot get NT8 data loaded up properly, it starts my days off with a lot of frustration and I don't want to continue to do that each day, it's annoying to say the least.
I am wondering if NinjaTrader has any plan to allow the platform to utilize more cores and possibly make these issues more efficient. I am seeing other traders mention they have problems with 1 minute data and problems with their tick data indicators I think all of these issues are related to what I am experiencing. At this point it is starting to become unacceptable. I would like to know what plans development has for the future (if any) to increase efficiency? If some changes are not made soon, I am either going to move to a different software like market delta, or sierra, or switch to IRT and code an execution algo for my order management. I spent far to much money on my PC for it to perform like a toaster in NT8, and with the only explanation being "well tick data slows it down", it's 2019, other platforms can handle it, when can we expect Ninja to improve efficiency? I don't want to leave, love the platform, but the performance is going to make the decision for me.
Comment