Summary
The Polygon live data adapter delivers opening-bar Trade ticks with non-standard trade conditions (opening-auction prints, FINRA/ATS off-exchange ticks) that are not filtered in the real-time pipeline, causing live consolidated bars to differ significantly from the historical (AlgoSeek-based) bars for the same period.
This produces incorrect opening-range readings in live algorithms — the live bar's High/Low reflect off-exchange or auction prints that the offline bar builder excludes via the Excluded/Suspicious Ticks filter.
Behaviour observed
- Symbol: SNDK
- Date: 2026-07-31
- Resolution: 1-minute / 5-minute bars
- 09:30–09:35 bar received live: Low 1321.25, High 1354.40
- Actual regular-session range: ~1365–1405
- Data provider:
PolygonDataProvider (Business license), streamed via WebSocket (FMV.SNDK topic)
- Polygon license: Business (confirmed in syslog:
Using license type = 'Business')
The gap between the live bar's High (1354.40) and the regular-session Low (1365) indicates the live bar incorporated prints from before or outside the regular-session open — most likely opening-auction fills or FINRA/dark-pool prints without a valid primary-exchange code.
The historical bar for this period shows the correct range (backtest re-run is clean), confirming the discrepancy is a live filtering gap, not a vendor data error.
Related
Intercom conversation ID: 215475307209088
This is a specific instance of the known gap documented in the US Equities Suspicious Ticks section:
https://www.quantconnect.com/docs/v2/cloud-platform/datasets/quantconnect/us-equities#05-Suspicious-Ticks
The offline bar builder applies the Excluded Ticks and Suspicious Ticks filters; the Polygon real-time adapter's PolygonDataProvider does not yet apply the equivalent filter for the T (trade) WebSocket channel — so auction/FINRA prints pass through to the live consolidator.
Proposed fix
Apply the same trade-condition exclusion logic used by the offline AlgoSeek bar builder to the Polygon WebSocket trade message handler. Specifically, exclude ticks whose c (conditions) array contains codes mapped to off-exchange or auction-only trade conditions before passing them to the consolidator.
Reference: Polygon trade-conditions dictionary — https://polygon.io/docs/stocks/get_v3_reference_conditions
Summary
The Polygon live data adapter delivers opening-bar Trade ticks with non-standard trade conditions (opening-auction prints, FINRA/ATS off-exchange ticks) that are not filtered in the real-time pipeline, causing live consolidated bars to differ significantly from the historical (AlgoSeek-based) bars for the same period.
This produces incorrect opening-range readings in live algorithms — the live bar's High/Low reflect off-exchange or auction prints that the offline bar builder excludes via the Excluded/Suspicious Ticks filter.
Behaviour observed
PolygonDataProvider(Business license), streamed via WebSocket (FMV.SNDKtopic)Using license type = 'Business')The gap between the live bar's High (1354.40) and the regular-session Low (1365) indicates the live bar incorporated prints from before or outside the regular-session open — most likely opening-auction fills or FINRA/dark-pool prints without a valid primary-exchange code.
The historical bar for this period shows the correct range (backtest re-run is clean), confirming the discrepancy is a live filtering gap, not a vendor data error.
Related
Intercom conversation ID: 215475307209088
This is a specific instance of the known gap documented in the US Equities Suspicious Ticks section:
https://www.quantconnect.com/docs/v2/cloud-platform/datasets/quantconnect/us-equities#05-Suspicious-Ticks
The offline bar builder applies the
Excluded TicksandSuspicious Ticksfilters; the Polygon real-time adapter'sPolygonDataProviderdoes not yet apply the equivalent filter for theT(trade) WebSocket channel — so auction/FINRA prints pass through to the live consolidator.Proposed fix
Apply the same trade-condition exclusion logic used by the offline AlgoSeek bar builder to the Polygon WebSocket trade message handler. Specifically, exclude ticks whose
c(conditions) array contains codes mapped to off-exchange or auction-only trade conditions before passing them to the consolidator.Reference: Polygon trade-conditions dictionary — https://polygon.io/docs/stocks/get_v3_reference_conditions