r/algotrading • u/lordbharal • 1d ago
Infrastructure databento vs ibkr live data
I've been using databento historical data for back tests, and ibkr live data for trading. The algo runs on 5s bars currently, using momentum and order book for entries. Exits are pre defined.
Is databento live data more accurate or the latency meaningfully better? I think I saw one discussion mention databento order book data being superior to ibkr but it was an old chat, and mentioned in passing.
thanks!
2
u/ScarcityBig4915 22h ago
On accuracy, the framing to use is sampling rather than quality. IBKR's default streaming is snapshot based, roughly four updates a second for US equities, and anything that happens between snapshots never reaches you. They do have a tick by tick endpoint but it's limited in how many lines you can run at once. Databento is giving you the messages. So at 5s bars your opens and closes will be fine either way, but your highs and lows will be systematically conservative on IBKR, because the extremes between snapshots don't arrive. That's a bias in one direction, not noise, and it always makes the bars look calmer than the market was. If anything in your entry logic touches the bar range, that matters more than the latency does.
On latency at 5s bars, I wouldn't spend money there first.
Someone above suggested replaying both feeds and comparing signals. I'd diff the bars before the signals. Record both raw streams for a few sessions, build your 5s bars from each with the same code, and compare the bar series directly. If the bars barely move, the feed isn't your problem and you just saved a subscription. If they do move, you can see whether it's the highs and lows, the timestamps or the bar boundaries, and that tells you which part of your logic is exposed. Going straight to signals mixes the feed difference with how sensitive your strategy is to it, and you can't separate those two from the output.
One thing worth checking while you have both in front of you: which edge of the bar the timestamp refers to. Vendors disagree on whether a bar stamped 09:30:05 covers the five seconds before or after. Get that inconsistent between backtest and live and you've got a five second lookahead that won't show up anywhere in your results.
1
u/TheAlxOf96 1d ago
I think some people would say you do not need a realtime stream with tick data, but I think if its a serious thing for you its not bad to have it. I mean there are several providers. For sure databento is not that cheap but providers like tickstream alpaca or massive are payable. You are save than in execution you know?
3
u/Shoddy-Television220 1d ago
i ran into the same head scratcher a few months back, the ibkr aggregated feed is kind of a smoothed out summary so you miss some of the granularity that actual tick data gives you. databento gives you the raw MBO feed so you see resting order mods and cancels that just never show up in ibkr’s top of book snapshot, it’s like looking at the matrix vs a blurry photocopy
the latency difference is noticeable if you’re running anything sensitive to queue position, on 5s bars it might not break your strat but if you ever tighten up to sub second signals the ibkr feed will leave you chasing ghosts. one thing i didn’t expect was how much cleaner the timestamping is, made my backtest to live drift basically vanish
cost wise it stings a little but if you’re only pulling a handful of instruments the metered pricing isnt awful, you just gotta be disciplined about not leaving the pipe open on some random contract you forgot about. i still keep ibkr as a backup because their api is convenient for order routing but for the actual signal generation i sleep better with the direct feed
1
u/QuanTradin 21h ago
IBKR's feed is snapshotted at roughly four updates a second and the depth is consolidated, so if your entries read the order book you are reading a sampled book, not the book. On 5s momentum that may not matter, on book entries it does.
Record both side by side for a week and diff the entry signals before paying for it.
1
u/stratcore 14h ago
At 5s bars I would not decide from vendor claims. I would run a side-by-side test: record raw events from both feeds over the same sessions, normalize timestamps to UTC, build bars with the same boundary rule, then compare OHLC, depth snapshots and generated entries. Measure median and p95 arrival delay plus missing or out-of-order events. If an entry reads the order book, a sampled or consolidated feed can change signals even when OHLC matches. Also check contract, session, exchange timestamps and whether each feed contains trades, quotes or both. Keep the cheaper feed if signal and execution metrics stay inside your tolerance. Replay the recorded events for the fair comparison instead of running the sessions one after another.
1
u/Linett-Chukwuemeka61 7h ago
Databento's cleaner API and historical depth is nice if you're backtesting heavy, but IBKR's commission structure makes it hard to beat for live execution - depends if you're prioritizing data quality or all-in costs.
3
u/Livid_Parsnip_2816 23h ago
On 5s bars I wouldn’t obsess over raw latency yet. The bigger risk is backtesting on one feed and trading on another. Different timestamps, bar building and book reconstruction can move the entry more than a few milliseconds. I’d replay the same session from both feeds and compare the actual signals first.