NexusFi: Find Your Edge


Home Menu

 





Rithmic vs Denali - Market Depth Difference


Discussion in Trading Reviews and Vendors

Updated
      Top Posters
    1. looks_one artemiso with 5 posts (9 thanks)
    2. looks_two lndshrk with 2 posts (3 thanks)
    3. looks_3 SMCJB with 2 posts (1 thanks)
    4. looks_4 Hulk with 2 posts (1 thanks)
      Best Posters
    1. looks_one artemiso with 1.8 thanks per post
    2. looks_two lndshrk with 1.5 thanks per post
    3. looks_3 SpeculatorSeth with 1 thanks per post
    4. looks_4 OftenBonus10 with 1 thanks per post
    1. trending_up 14,036 views
    2. thumb_up 17 thanks given
    3. group 14 followers
    1. forum 15 posts
    2. attach_file 10 attachments




 
Search this Thread
  #11 (permalink)
 
Hulk's Avatar
 Hulk 
Texas, USA
 
Experience: Advanced
Platform: TT, Custom
Trading: Futures, Spreads
Posts: 399 since May 2014
Thanks Given: 758
Thanks Received: 952


creamyyy View Post
So this isn't strictly to do with market depth, but I've discovered a major discrepancy between the two data feeds today which has me questioning which one is correct.

This is the CL open today 3rd February 2023 from approx. 8AM - 10AM central time.

Left is Motivewave running Rithmic non-aggregated data. Right is SC + Denali.
The bottom of both platforms is the cumulative delta. SC is using the cumulative delta - trades indicator.

As you can see, Motivewave/Rithmic is showing positive delta on the way up, SC/Denali is showing negative delta.
When I check the footprints on both on a random bar, the bids and asks and delta totals all add up on both.
When I compare the two feeds over the past few days, at a cursory glance, they're pretty much the same.

The fact that both are showing pretty much opposites of each other has me scratching my head.

Anyone else care to check and chime in?


SCR-20230204-1p7

FWIW, this is what my system calculated. Deltas in this view reset at session open (5 PM central). This is for the CLH3 contract.
CD (Trade Count)


CD (Trade Volume)


Bid/Ask Delta (Trade Count)


Bid/Ask Delta (Trade Volume)


Visit my NexusFi Trade Journal Reply With Quote
  #12 (permalink)
 
Hulk's Avatar
 Hulk 
Texas, USA
 
Experience: Advanced
Platform: TT, Custom
Trading: Futures, Spreads
Posts: 399 since May 2014
Thanks Given: 758
Thanks Received: 952


artemiso View Post
I'm not familiar with "cumulative delta" but gave it a shot.

It should be negative. Values below differ because your start time and mine were different (I used exactly 08:00 CT, I think your cumulative sum started around 09:00+). I tried 00:00 UTC and got a similar negative curve in any case.



Python script below in case you want to try.

 
Code
import databento as db

import pandas as pd
import matplotlib.pyplot as plt

plt.style.use('ggplot')


client = db.Historical(key='YOUR_API_KEY')

data = client.timeseries.stream(dataset='GLBX.MDP3',
                                schema='trades',
                                stype_in='smart',       # use smart lead month symbol
                                symbols=['CL.v.0'],     # lead month CL by volume
                                start='2023-02-03',
                                end='2023-02-04')

# Convert to dataframe with UNIX timestamps and display prices
df = data.to_df(pretty_ts=False, pretty_px=True)

# Convert UNIX timestamps to US Central Time
df.index = pd.to_datetime(df.index).tz_localize('UTC').tz_convert('America/Chicago')

df['signed_vol'] = df['side'].apply(lambda s: 1 if s == 'B' else -1) * df['size']
df = df.between_time('08:00', '10:00')
df['cumulative_delta'] = df['signed_vol'].cumsum()

plt.plot(df['cumulative_delta'])
plt.xlabel('Time (Chicago)')
plt.ylabel('cumusum(signed_vol)')
plt.show()

Hi @artemiso, just wanted point out that the implementation you shared will skew more to the negative since implied matches (side='N') will count as negative.

I modified the lambda as follows (I am not good with python so hopefully I got this right):

 
Code
df['signed_vol'] = df['side'].apply(lambda s: 1 if s == 'B' else (-1 if s == 'A' else 0)) * df['size']

And this is what the resulting graph looks like:


and the original was this:


Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #13 (permalink)
 artemiso 
New York, NY
Vendor shill
 
Experience: Beginner
Platform: Vanguard 401k
Broker: Yahoo Finance
Trading: Mutual funds
Posts: 1,152 since Jul 2012
Thanks Given: 784
Thanks Received: 2,687


Hulk View Post
Hi @artemiso, just wanted point out that the implementation you shared will skew more to the negative since implied matches (side='N') will count as negative.

I modified the lambda as follows (I am not good with python so hopefully I got this right):

 
Code
df['signed_vol'] = df['side'].apply(lambda s: 1 if s == 'B' else (-1 if s == 'A' else 0)) * df['size']

And this is what the resulting graph looks like:


and the original was this:

Oh good catch, thank you!


Reply With Quote
Thanked by:
  #14 (permalink)
 planetkill 
New York City + NY/United States
 
Posts: 436 since Sep 2018
Thanks Given: 138
Thanks Received: 375


creamyyy View Post
So this isn't strictly to do with market depth, but I've discovered a major discrepancy between the two data feeds today which has me questioning which one is correct.

This is the CL open today 3rd February 2023 from approx. 8AM - 10AM central time.

Left is Motivewave running Rithmic non-aggregated data. Right is SC + Denali.
The bottom of both platforms is the cumulative delta. SC is using the cumulative delta - trades indicator.

As you can see, Motivewave/Rithmic is showing positive delta on the way up, SC/Denali is showing negative delta.
When I check the footprints on both on a random bar, the bids and asks and delta totals all add up on both.
When I compare the two feeds over the past few days, at a cursory glance, they're pretty much the same.

The fact that both are showing pretty much opposites of each other has me scratching my head.

Anyone else care to check and chime in?


SCR-20230204-1p7

If it helps, NinjaTrader is closer to matching your SC + Denali screenshot. In my attached screenshot, this is using NinjaTrader brokerage data that is included with my account and the Order Flow Cumulative Delta Indicator.


Reply With Quote
  #15 (permalink)
 SpeculatorSeth   is a Vendor
 
Posts: 781 since Apr 2016
Thanks Given: 22
Thanks Received: 1,026


creamyyy View Post
So this isn't strictly to do with market depth, but I've discovered a major discrepancy between the two data feeds today which has me questioning which one is correct.

This is the CL open today 3rd February 2023 from approx. 8AM - 10AM central time.

Left is Motivewave running Rithmic non-aggregated data. Right is SC + Denali.
The bottom of both platforms is the cumulative delta. SC is using the cumulative delta - trades indicator.

As you can see, Motivewave/Rithmic is showing positive delta on the way up, SC/Denali is showing negative delta.
When I check the footprints on both on a random bar, the bids and asks and delta totals all add up on both.
When I compare the two feeds over the past few days, at a cursory glance, they're pretty much the same.

The fact that both are showing pretty much opposites of each other has me scratching my head.

Anyone else care to check and chime in?


SCR-20230204-1p7

SierraCharts has 3 different versions of cumulative delta. Most platforms just do CumulativeDelta by volume, but you're looking at trades. Kind of odd that they're going in opposite directions though. It suggests that there's more orders getting filled one way, but the orders being filled on the other side are bigger.


- SpeculatorSeth
Reply With Quote
  #16 (permalink)
 
Fi's Avatar
 Fi 
NexusFi
 


SpeculatorSeth View Post
Kind of odd that they are going in opposite directions though. It suggests that there is more orders getting filled one way, but the orders being filled on the other side are bigger.

@SpeculatorSeth,

Your intuition about order count vs. size divergence is on the right track, but the root cause goes deeper than that.

Sierra Chart's three cumulative delta modes -- by Volume, by Trades, and by Volume (at Price) -- will naturally diverge because they're measuring really different things. The "by Trades" variant treats every fill as 1 tick regardless of size, while "by Volume" weights by contracts. So yes, opposing directions mean lots of small fills on one side vs. fewer large fills on the other. That part you've nailed.

The bigger issue here is the feed-level divergence between Rithmic and the Denali exchange data feed. The Denali data feed connects directly to CME via MDP 3.0 and parses both MBO (Market By Order) and MBP (Market By Price) messages -- meaning it incorporates implied depth into the book. Rithmic runs a pure MBO parser of the same protocol, which excludes implied liquidity entirely. That's why Rithmic consistently shows roughly 30% less market depth.

Where this hits cumulative delta: implied matches (side='N' in the raw market data) get classified differently across feeds. Some count them as sells, some as neutral. Compound that with each feed using its own bid/ask trade classification algorithm, and you get meaningful delta divergence -- especially during fast markets where classification ambiguity spikes.

Neither feed is "wrong." They're answering slightly different questions. If you're running delta studies across both, treat them as independent data series rather than expecting convergence.

-- Fi

"The same market seen through two lenses will always tell two stories -- the edge is knowing which lens you're holding."


Learn more about Fi AI trading companion
IMPORTANT: I can make mistakes! Always verify data before relying on it.

Please leave feedback here. You can disable my ability to reply to your posts by placing me on your ignore list.

Fi provides educational information on a best-effort basis only. You are responsible for your own trading decisions and for verification of all data. This message is not trading advice.
Reply With Quote




Last Updated on March 24, 2026


© 2026 NexusFi®, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Downloads - Top
no new posts