Don’t be surprised by NinjaTrader anymore given how unstable and laggy their platform is. A few days ago I ran into a issue. Right at entry, I got a price that was 80 points lower on Nasdaq. Luckily I recorded it, otherwise no one would believe it. I’m watching the chart move in my favor, yet the PnL shows -70, which made no sense. Later, when I reviewed the recording, I saw that the price in Chart Trader didn’t match the price on the chart at all. How can that even happen?
Naturally, I reached out to support. As usual, the response was absurd: “the problem is your charts.” So somehow it’s on me. The head of support, Luis, replied, clearly not someone suited for that position. I asked why there’s no warning if there’s a delay between the chart data and Chart Trader. He said they’re aware of the mismatch but don’t want to display any in platform notice because it would lead to too many support requests. I asked him if he was serious, what kind of logic is that? You’d rather users lose money than fix the issue or at least inform them properly? Then he tried to blame it on me, saying I must have installed something. I asked how that could possibly be related to price discrepancies and the lack of any warning, and after that, he just stopped responding.
And this has already happened to me three times this year. Don’t even start with explanations about internet issues, indicators, or anything like that. Also, I’ve never experienced anything like this on Lightspeed or eSignal, not once. The only reason I’m still stuck with this platform is because I’ve built a lot of custom code around it.
2 Likes
OMG I am so happy to know it’s not just me!
I haven’t been able to trade for a a few weeks now due to this issue with the Ninjatrader platform. I made an appointment with Technical Support for a call back, for which I had to wait a full week! When you do get a live agent, you will only get 30 minutes, regardless if your issue is fixed or not. Mine was not, and I had to make another appointment - for which I have to wait yet another week!
I made a screen recording, too - and I showed the error to the live tech (Rogelio)
2 Likes
I’ve discovered that my SIm account shows trades properly - but the live account places those executions on the chart way far away from the actual entries every time showing under-water P&L right from the moment an entry is taken.
2 Likes
Where else could they take your money if not from a real account? A demo account always works perfectly. That’s the whole point. You relax, everything is going smoothly, and then problems arise with real money, and you get blamed for everything. Classic.
1 Like
I have been there, done that. Your data comes in slower, which gives those weird numbers. It is not NT, it is your computer or internet that just cannot apply all the data properly. I personally use an AWS server, so I am sure my internet is OK, but I ran into a CPU issue. (too many charts and indicators running at the same time, you can check for this as well).
But once I upgraded my server to a higher one, all issues were gone. I have MC and NT running on the same server, with 30 charts, my indicators, and more and my CPU does not even reach 40% at the high times…it is worth the money to have a big machine…
3 Likes
Support is correct. It’s your indicators (one or more) causing it. I’ve been fighting that for years. Whenever I see it, I don’t blame the platform, I look at what’s causing it. It could be way too many draw objects - render them instead. A lot happens during the render cycle and if you aren’t guarding every little thing, that could cause it. I’ve even created a nested class for my dx resources that keeps them from being created and destroyed repeatedly during every render cycle.
These nice fast computers have made us lazy. We used to have to consider how our code interacts with memory, disk space.. all that. With NT, old school isn’t so old school after all.
1 Like
Thanks for the advice, But you didn’t read my post carefully. — no indicators, 6 charts, strong machine. It happens maybe 3 times a year on live only, never on demo. Weak hardware would be constant, not random.
And the support is a joke — the head of support, Luis, personally told me he knows about the issue but they don’t want to add any kind of warning. Here is his exact response:
‘If your query is that there is no warning to tell users that data is not in sync, then we encourage you to submit a feature request. This hasn’t been done before due to the tailwind that comes with it when users that are not as savvy then write in about the issue immediately demanding remote support — this is not scalable and instead we have created self serving documentation so that users can learn.’
So they know about it, won’t fix it, and their solution is to hide behind documentation so they don’t get too many support calls. Just let that sink in
2 Likes
I do blame the platform. I can trade almost identical setups on NinjaTrader and the Interactive Brokers Trader Workstation. Ninja will lag often. Especially when trading MNQ. It’s their design: they decide to route everything to one thread per equity. They state in their documentation that they do not multithread and do not check memory limits on the trading side. You get what you get. On the Strategy analyzer side, they do check memory and allow multithreading.
So, yes, you are correct, it is the indicators causing a significant load. The problem still rests on Ninja’s lap due to poor design. Open up multi-threading and let the system use the processors as designed.
1 Like
They make liberal, if not gratuitous use of multiple threads. To understand the problem, you have to understand how we got here.
Programmers were notorious for allocating memory but weren’t very good at deallocating memory when they were done with it. You might be old enough to remember the days of Windows 98 and Windows 2000 where you had to restart your computer every three days so it runs properly again. That was almost certainly caused by memory leaks in applications, which you get because programmers didn’t deallocate memory when they were supposed to.
Enter .NET. Garbage Collection (GC) was supposed to be the cure-all for programmers who were weak on memory management, and it was. NT is a .NET application, which means it runs on the garbage collector. During a busy market open, indicators are allocating objects constantly — strings, event args, list nodes, draw objects, all kinds of things. The GC is designed to clean that up, but when tick rate is very high it can’t keep up. Objects that should be short-lived start surviving into older GC generations, heap fragmentation builds up, and eventually the GC has to do a full collection — which stops all managed threads while it runs. That’s a “GC pause” and it can last hundreds of milliseconds.
I have a lag indicator coded into my tick host it went off like a loaded gun today. Usually it goes away in the blink of an eye but today it didn’t. I had to restart Ninja to clear the buffers and the registers and everything else including memory fragmentation from GC pressure. That was about an hour after the open and while I could have let it settle down, I didn’t. I have my workspace such that I can do a full Ninja restart in 45 seconds, far less time than it would have taken the GC to regain control. If I see my lag indicator going off I know not to enter a trade.
I don’t know what other trading platforms use and I’m sure you might be able to find some programming enhancements that could be made with Ninja, but it will always be a .NET application and .NET gets the majority of the blame.
PS. Support told me to look at my DOM and compare chart prices with DOM prices to detect lag. Well, that didn’t work today. The DOM was entirely in sync with the charts but my lag output showed 2,300 ms lag, or so and the DOM’s prices kept up with chart’s. Now I know that’s wrong information.
2 Likes