Inconsistencies in Order Flow Cumulative Delta on 100 Volumetric Bars (NQ 09-25)


Hi,

I’m analyzing Order Flow Cumulative Delta on the NASDAQ E-mini September 2025 contract (NQ 09-25) using 100 volumetric bars. I’m using the native NinjaTrader Order Flow Cumulative Delta indicator alongside the footprint chart for reference.

Note:

For the volumetric bars, the delta profile appears to the right of each bar, not within it. Adjusting spacing hasn’t resolved the overlap issue, but that’s a separate concern I’m not too focused on for now.

Core issue:

In the attached picture, which shows two examples marked in yellow, the total delta displayed by the Order Flow Cumulative Delta indicator appears inconsistent with what the footprint shows:

Example 1: The first bar shows strong buy aggression in the footprint, yet the cumulative delta at the close of that bar is slightly negative, which contradicts the visual data.

Example 2: The second bar should reflect a more neutral delta based on the footprint, yet the cumulative delta indicates strong bullish aggression, which isn’t clearly visible in the bar-level delta.

Question:

Is this a known limitation or behavior of the Order Flow Cumulative Delta indicator?

Does it calculate based on a different session context, or is it referencing data from a different bar than expected?

Or is there possibly an issue with how it aligns with the delta values shown in the footprint chart?

The attached screenshot shows both examples clearly.

Thanks in advance for any insights.

Great observation. I’ve noticed this too and I believe I know the reason why, but I’m not 100% sure about the inner workings of NT so I won’t comment. But I have seen this.

I built my own Footprint and have spent countless hours watching and analyzing ticks of data (price/bid/ask/volume/etc) to understand Ordeflow. Based on my analysis, the NT Footprint (volumetric) bars are correct and CumDelta is the one that is slightly off.

I would use the values that Volumetric gives you.

Did you look at the delta, min and max delta for that bar? I’m assuming the profile is a delta type. The first one does look odd. I would think it’ll be more positive considering the small red that’s showing. However, that’s just the final painting we see. What if there were a lot of selling there and by the end the buying overcame it? The second one makes more sense. It looks buyers were absorbed.

You’re absolutely right that initial selling is definitely possible and can represent significant sell-side aggression early in the bar. However, once the bar is closed, the cumulative delta gives us the full picture as you said, the final print.

Just to clarify, this is a standard delta profile, simply showing net delta, meaning aggressive buying minus selling, at each price level. What stands out is that despite the overall negative cumulative delta, the delta profile displays significant buying activity at nearly every tick, particularly in the latter half of the bar’s formation.

Also worth noting is that this is a 100-contract bar. The blue nodes, which indicate positive delta, are not only more numerous but also substantially larger than the red ones. While I agree there may have been moments of strong sell aggression, the dominant footprint across the bar indicates sustained aggressive buying.

From a logical standpoint, if over 90 percent of the tick levels show strong positive delta, it’s difficult to reconcile that with a final negative cumulative delta unless the early sell-off was extreme. And even in that case, buyers would have had to fully recover that initial negative delta, bring it back to zero, and then push further into positive territory. That would still imply significant buyer aggression, not just a weak reversal.

I’ll definitely take a closer look at the minimum and maximum delta for that bar. That was a good observation on your part. I’ll plot that on a separate chart to cross-reference and verify.

At the close, both the profile and the cumulative delta should reflect the same basic net delta. Theoretically, if you sum all delta values across the profile, you should arrive at the same figure displayed in the side panel’s total cumulative delta reading. If not, then either the profile data is skewed or there’s a platform-related inconsistency.

Thanks again for your input. Do you know if I could verify this with a NinjaTrader support representative?

Is there any way to confirm this with certainty you know of? We pay/payed enough for this platform in order to have the indicaters be 100% accurate imo

Thanks for your response

I have no clue. However, that doesn’t look right for being a 100 volume chart on NQ. The standard volumetric profile doesn’t look like that. The only way I can think of where you can create something like that is with the order flow volume profile per bar. Even with that the profile should look different considering the 100 volume chart. That profile looks like its more than a 100 volume chart per bar. Forexample, this is a 100 volume volumetric chart. The profile is more accurate based on the 100 volume.

Can you share the time and price scales of the chart so I can accurately match the same bars with some other OrderFlow indicators I have?
I have a suspicion about where the issue might be, but I’d need a specific bar scenario to compare.

I’m not entirely sure what you mean by standard. It is a NT8 native ‘standard’ 100 volume bar. Whats not standard is the look of the profile as it’s a custom indicator that plots this delta profile.

Thanks for responding

That’s what I meant. It’s not the standard profile. You are using a third party one and it appears that there is more volume than the 100 that you should have per bar. Did you compare that indicator’s profile to what Ninja has?

What I’m seeing is different from what you originally posted. I’m using the live connection from NinjaTrader.

Personally, I’m pretty convinced this is the case based on the number of hours I’ve spent analyzing orderflow data to ensure my own tools are accurate. But it should be fairly easy to confirm if you are so inclined. I do have to post one disclaimer. I haven’t had time to upgrade to a newer version of NT on my dev system yet, and I’m still on 8.0.28 (I know, I know). The results below are from this system. It is very possible NT might have caught and fixed this in newer releases (although I doubt it), but it should be fairly easy to confirm that.

Below, I’m posting 2 charts with NT 1-min Volumetric bars on top panel, and my footprint on the bottom panel (also on 1-min) and NT Delta indicator on the bottom attached to the 1-min data series. You should be able to confirm from the images that bid/ask volumes from volumetric match mine exactly. I let this run for a few minutes. Historical data is accurate, but after a few minutes, Delta values start to deviate. I’m posting two screenshots: one from the last bar where Delta matched and the next bar where it started to deviate. Every subsequent bar has a Delta value that doesn’t match what the two footprints report.

Having said all this, I don’t think the discrepancy is detrimental and I believe it might have to do with how the last tick of bar is accounted for. Since NT has to abide by their own guidelines to make the Delta indicator synchronize with the primary data series (so that it can be used in an upstream indicator or strategy), the last tick (which would be based on a secondary 1-tick data series internally to the indicator, ie; BarsInProgress=1) cannot be assigned to the primary series that it aligns with since this would cause synchronization issues with the upstream script. So in case of NT Delta, the result of the last tick gets saved and added to the next/new bar because the indicator plot can only be updated in BarsInProgress=0 if synchronization is a requirement. I’m pretty sure this was a tradeoff NT engineering had to make to make the Delta indicator work in an upstream script with proper synchronization.

In case of the footprint, there is no such requirement and everything is graphical. So the last tick of bar can be assigned to the appropriate bar without causing any upstream synchronization issues. Hopefully this makes sense and isn’t super confusing.

And I’ll repeat again, that historical data is accurate because of how historical ticks are processed. This discrepancy only happens in real time. You’ll have to let it run in real time for a few minutes before you start seeing this discrepancy.


I did

Indeed custom but I checked it and its the same on NT8 native footprint… data feed is payed for data from NT8
but in simulation

My indicators also match Ninja’s, both on intrabar and cumulative delta levels.
The left half of the chart shows historical data (TickReplay), and the far right is real-time. The data matches 100%.


On the other hand, with volume bars, small differences can occur if prints are not split.
NinjaTrader splits prints to fit the volume requirements.
For example, with 100-volume bars, if the current bar has 99 volume and a 10-contract print comes in, Ninja splits the print into 1 + 9: the 1 contract is assigned to the 99-volume bar to close it at 100, and the remaining 9 go to the next new bar.
If your code doesn’t split the prints, you’ll notice differences.

1 Like

I don’t understand it. Your picture shows the same date and time but is entirely different it’s not even funny. I’m going to check if there is an update needed or anything. besides the volumetric bar CVD discrepancies, the data on its own is completely off… I have no clue. I contacted support for this

btw, did you customise the data box because it’s different then mine.