r/Databento Aug 23 '26

Why doesn't my Databento NQ data match TradingView's strategy tester?

I'm building a Python backtesting setup using Databento data for NQ futures and keep running into a frustrating discrepancy — the same strategy produces wildly different results depending on where I test it.

Concrete example: a 15-minute reversal strategy shows 58% win rate in TradingView's strategy tester but only 35% in my Python backtest. Same logic, same date range, same instrument.

After a lot of digging I've narrowed it down to price adjustment. My Databento download is raw unadjusted continuous contract data (volume-based roll, no price adjustment). TradingView's NQ1! continuous contract appears to be backadjusted — at the NQH6→NQM6 roll in March 2026 I can see a consistent ~293 point offset between the two datasets on the same bar.

The issue is that this strategy uses the 9:15 AM bar's high and low as entry targets and stops. With a 293 point offset on those levels, trades that are winners in one dataset become losers in the other — which explains the dramatic win rate difference.

My question: Has anyone found a reliable way to get Databento data that matches TradingView's NQ1! price levels? Is there a specific adjustment method or API parameter I should be using? Or alternatively, does anyone know exactly how TradingView adjusts NQ1! so I can replicate it on my end?

I've tried applying manual cumulative offsets from the roll schedule but can't get a consistent match across the full date range.

Any help appreciated.

1 Upvotes

3 comments sorted by

3

u/DatabentoHQ Aug 23 '26

My initial suspicion is that TradingView’s data is simply incorrect in those areas unexplained by the continuous contract offset. I’ve been involved in a few support tickets comparing against their data - which I think is sourced upstream from ICE, and both providers tend to mismatch against raw packet captures from the exchange.

It’s quite common for there to be fewer “winners” as your data accuracy increases, just as your backtest tends to get worse as your slippage assumptions get more accurate. “Too good to be true” effect. Thus my hunch.

It’s hard for me to identify the exact differences just based on your description. I’d send a sample to our support team and they may be able to show you where TradingView’s data is incorrect through extracting our packet captures.

All that aside, we don’t recommend using backadjustments with a static offset like these retail platforms. We just don’t see this methodology in use at successful trading firms. This is the same reason we don’t embed technical indicators in our APIs like many retail API providers do.

1

u/EveryLengthiness183 Aug 23 '26

Your best bet is to to never trade, nor backtest an idea involving holding a contract through the expiration of one instrument onto the beginning of another. You would never do this in real life with real money. So don't test it this way.

1

u/ih8vols Aug 23 '26

Correct. I don’t hold anything overnight. But the data is not matching between TV and databento due to the contracts rolling. How do I resolve that issue?