yes when you see playback testing to sell you something is worthless ;
even recorded data replayed through NT8 playback is not accurate . The reasons:
What NT8 stores in recorded data:
The tick prices and volumes ✓
The timestamps ✓
The sequence order ✓
What NT8 cannot replay accurately:
Millisecond concurrency — in live, 50 fills can arrive at the exact same millisecond from the matching engine. In playback NT8 serializes them one by one with artificial gaps between them. Your _lastTickTime aggregation bucketing will bucket differently.
Bid/Ask arrival order — in live, Ask updates and Last trades arrive in a specific interleaved order that determines buy/sell classification. Playback reconstruction of this order is approximate.
Network jitter — live data has real latency variation between prints. Playback smooths this out, making DeltaMs between prints artificially uniform.
_tickTime second boundary — in live a burst of 20 prints can all arrive within 200ms of a second boundary. In playback the spacing is different so newTimeStamp fires at slightly different points.