NinjaTrader Performance Has Become Slow, Clunky, and Frustrating

Hello,

I’m really disappointed with how NinjaTrader has been performing lately. With each update, it seems to be getting slower, heavier, and more clunky instead of improving.

For reference, I’m running it on a fairly capable laptop:

  • Processor: 12th Gen Intel® Core™ i5-12450H
  • Memory: 24 GB DDR4-3200 MHz RAM (1 x 8 GB)
  • Graphics: NVIDIA® GeForce RTX™ 3050 Laptop GPU (4 GB GDDR6 dedicated)

Despite these specs, resizing charts has become painfully sluggish — especially when the bars are being redrawn. The interface feels sticky and unresponsive.

I’ve already configured NinjaTrader to use my NVIDIA GPU (instead of integrated graphics) to take advantage of the additional memory, but it hasn’t made any difference.

It’s frustrating to see performance decline over time, and I’m honestly starting to consider moving away from NinjaTrader if things don’t improve soon.

Any help or advice on improving performance would be greatly appreciated.

Thank you,
Ed

1 Like

Yes… get a better CPU. NinjaTrader is mostly CPU bound.

1 Like

Intel 12450 is a very good CPU for NT. Something else is going on.

3 Likes

OP asked advice on improving performance… I suggested get a better CPU. :slight_smile: Not saying it’s not good for mid-range around it’s class. Just saying, if you want to improve your performance then you should go with a stronger chip in the i7 or i9 series. If OP has a heavy workload with many custom indicators and high-tick charts then OP should probably consider upgrading.

1 Like

#ecerejo - from the info you have provided there is absolutely no reason whatsoever to conclude you should upgrade your pc/cpu. You have not said you have changed anything and were able to run your workspace on your pc prior to the latest Ninja update. Your pc meets Ninja’s ‘minimum requirement’. The only thing that has changed is Ninja, which history shows sadly is typical. Updates/added platform functionality should not affect performance if you do not use them…. What we should expect is that updates only ever improve performance ‘like-for-like’. As an example, I can use .15 on an AMD FX Series (>10 yrs old) cpu pc, but the same workspace runs slower under .16 on an Intel Core i7. Ignore any suggestions to upgrade your pc, it’s flawed thinking, bad advice with nothing whatsoever to indicate doing so will make any significant difference. Wait for Ninja to resolve their BS. ‘Twas ever thus. #Ninjagarbage. Just my 2c FWIW. From the quantity of posts on .16 performance issues I expect you’ve already reached this conclusion :wink:
Kind regards,

4 Likes

I wish this was true “What we should expect is that updates only ever improve performance ‘like-for-like’”. However, reality is that every update potentially introduces new bugs and possibly decreases performance depending on the update. You wouldn’t know until the users starts to complain about issues. Even then, it could be difficult to track down what exactly is causing the issue because the environments all different.

I have seen improvements to memory handling, memory usage, and overall responsiveness.
Your NVIDIA® GeForce RTX™ 3050 is carrying much of the load.
Ninja will utilize a graphics processor when trading.

I have three machines I use for trading and strategy building.

AMD Ryzen 9 7950X3D 16-Core Processor 4.20 GHz
128 GB RAM
Intel Video

Intel(R) Core™ i7-8700 CPU @ 3.20GHz (3.19 GHz)
64 GM RAM
Two NVIDIA® GeForce RTX™ 5070 TI’s

Intel(R) Core™ i9-10980HK CPU @ 2.4GHz (3.10 GHz)
32GB RAM
NVIDIA GeForce RTX 3070 Laptop GPU

All of these are aging but perform well.

Ninja will perform better trading with Intel. The AMD works better with the strategy optimization. Trading is single-threading; optimization is multi-threading.

The I-7 outperforms the others with its video cards. If I pull them, it’s very slow.

I would suggest reinstalling Ninja. Occasionally, reset all SIM accounts. Disconnect your live or prop firm accounts, reboot, and reinstall the accounts. Make your main live account connect automatically on startup. Watch how many indicators you have on a chart.

All of those suggestions came from Ninja support and have helped.

Not sure about the GPU “carrying much of the load”. If you look more into the code itself, NinjaTrader is built on .NET/C# which is fundamentally CPU bound. The tick processing, strategy execution, indicator calculations, historical bar loading, backtesting logic all runs in the C#/.NET CLR which doesn’t offload to the GPU. The heavy tasks are inherently CPU tasks. The GPU doesn’t “carry the load”. It might help render pixels but all the actual work happens on the CPU through .NET runtime.

ecerejo, not much help, just what comes to mind. This sounds similar to a problem that went on for a long time (years), there are extensive posts on the old forum regarding this. I don’t know how the problem was resolved, NT seemed to guard stuff they did better than Mossad. brucerobinson was involved and had a lot of posts, a lot of them trying to convince NT they had a problem, but a lot of investigating efficiencies, too. Any comments Mr. brucerobinson ?

Regarding computer resources, they vary greatly depending on what your doing, for example, how many instruments (threads), drawings (not sure what, but not GPU), so what works for one will be different than someone else. I don’t think you’ve provided enough information for any one to know the sufficiency of your resources.

For myself, I’m all the way up to 6 instruments now (sarc), and about 20 windows. I have a i5-4460S, GeForce GT 710 with a whopping (more sarc) 12 GB. I have a lot of my own code, and make 95% of drawings with OnRender. FWIW, it’s a lot easier to start out with OnRender, rather than changing to it. I changed to OnRender, in case the afore mentioned problem ever arose, once that was resolved, I think all was running fine without OnRender. All is running fine now, but I haven’t touched the latest version, either. I wait for the #Ninjagarbage to clear before upgrading.

If I may impose, again, anything Mr. brucerobinson says, listen to. Also, THANK YOU, Mr. brucerobinson.

Happy Trading to y’all

#Bruce_Wottlin Thanks for your kind words.
I think you make a strong point that we don’t know #ecerejo’s setup. But, we do know #ecerejo attributes performance deterioration to progressive Ninja Updates and most recently/specifically .16 as have many others.
So it seems reasonable to take this on face value, and presume #ecerejo was not hitting problems before, and the cause of deterioration has not been due to adding load intensive activities such as OrderFlow, TickReplay etc along the way.
Which is why imho looking to hardware upgrades, indicator coding efficiency etc doesn’t warrant priority (they haven’t changed & performance has). Sure, it may help IF they are limiting factors but nothing suggests it. Juice ain’t worth the squeeze.
A couple of suggestions for #ecerejo to try:

  • start NT in (Ninja) Safe Mode: Simple (hold Ctrl whilst starting NT). Doing so eliminates corrupt installation, problems loading 3rd-party indicators and the like
  • Use Windows Task Manager to monitor CPU & GPU whilst NT is experiencing problems, along with being mindful of which ‘activities’ seems to result in ‘sticky/unresponsive’ behaviour. Resizing charts, re-drawing bars suggests graphics/rendering not CPU data crunching and IF this is the case it likely will be apparent in Task Manager GPU performance (also will be able to see split between EGPU & IGPU load). However I’m also aware it’s not always as simple as that and not always apparent (things like Render methods, SharpDX etc above my paygrade & others far more qualified to comment in this regard). But, comes back to earlier comment - if performance has deteriorated and these things haven’t changed, what has? On many occasions history has shown it has been changes made in Ninja Updates which are subsequently rectified in .1x.1 (and to be fair to NT, on occasions an update may ‘cause problems because the user doesn’t have the latest .net or similar update NT’s update now requires. This can particularly be so with graphics drivers and rendering (it sounds most like a graphics rendering problem so I’d make sure Intel graphics are latest, and (preferably) mnftrs if available drivers (not Windows) for External card.
  • If none/any of the above doesn’t shed any light, then Utilization Resource Monitor in Ninjascript might be worth a look to see what is/are heavy resource users, although I’m not sure it has ever helped me much given that ChartStyle swamps everything by a country mile for me. It could help to identify what is using most & try removing that/those. But that really takes us full-circle- it was ok before…..
  • IF it is graphics rendering at the root, and driver updates etc don’t fix, things like Global Crosshairs can exacerbate such problems so can be worth trying without (I remember ‘back in the day’ using ‘Horizontal Line’ rather than ‘Line’ plot style made a difference because less re-rendering than a ‘stair stepped’ line :joy:).
    That’s all folks….
    Just my 2c as ever. All are welcome to disagree (I won’t enter into arguments with keyboard warriors who hold and hold onto differing views, they’re welcome to them), add to or (#ecerejo) ignore :rofl:
    Best,
1 Like

Dang calling me out! Don’t hate that I’m the best keyboard warrior here. :joy:

Thanks for the help, well the problem started when they changed NT to enforce login.

Look in your “assemblies” and note how many you have. Each of those assemblies has to be loaded and running. Most of the time you don’t need all those assemblies. Delete the ones you don’t need and if you’ve got the time, perform a fresh install, afterwards reintroduce your framework one by one, only attaching the things you use.

Over time, our ninjatrader installs builds up bloat from various indicators and add-ons.

Clean those out.

2 Likes

As someone who regularly runs a boatload of NinjaTrader indicators and strategies for various purposes all the time, I would say that your GPU only matters if you’re looking at the charts, and then, only 2D performance matters. 3D performance (which is what the RTX series is optimized for) doesn’t matter a whit.

The comments about CPU are good - single thread performance often matters more than you might think, so that i5’s single thread performance might be holding you back compared to an new i9 etc. Multithreading and more cores matters, to a point, depending on what you’re running. It’s also important to have way more RAM that you think you need. Often I’ll see situations in which a particular NT configuration will be “stable” running at 12-16GB RAM consumption but needs 60+ GB to get started before it stabilizes, so if you try to run a complex setup like that without ample resources it will start swapping or worse yet start getting locked while the threads duke it out and then your feed will disconnect because of timeouts, and then it will be all downhill from there if it recovers at all.

So, my brief advice to you would be if this is for trading only, and you’re not playing games on it, an RTX is not the best use of your money - if you want a bunch of monitors you may want to look at a multiheaded card that’s optimized for 2D performance, and bump up that CPU to get faster single thread performance (because while NT8 is multithreaded, often a single thread dominates the time trials) and you may well find that you benefit from more than 24 GB of RAM depending on what all you are loading.

2 Likes

I recently upgraded to 8.1.6 and I actually think it’s faster than previous versions. But maybe it’s because I did some cleanup. Which brings me to the point I wanted to make: it’s very possible that your performance is due to indicator/strategy/bar type/etc. This is the main reason why, for the most part, I have converted all of my indicators to draw with SharpDX.

Maybe formatting your Laptop can work?

look in the ninjatrader ecosystem for this free tool and see your metrics live within NT8 in the moment, might help you figure it out: https://ninjatraderecosystem.com/search-results/?fwp_search=xabcd%20performance

Agree 100%, when i get some tape activity, NT just bogs down, and never comes back.

It gets stuck where it lags my IB data and becomes quite unresponsive.