Make the fill assumption visible
A quote-based backtest is only as credible as its timing, side selection, and execution model.
Time eligibility
window_start_ts <= quote.ts < window_end_ts
quote.ts + decision_delay <= simulated_action_ts
Filter by market window first. Then apply decision delay and feature-construction delay. Never use a post-resolution field in an active-market simulation.
Quote-side rule
Buying
Cross the ASK for an immediate-buy baseline.
Selling
Cross the BID for an immediate-sell baseline.
Passive
Model queue position and fill probability.
Stress tests
- Decision and transport delay.
- Queue discount and visible-depth cap.
- Partial fills, cancellations, and expiry.
- Fees and slippage, stressed upward.
- Market close and unmatched inventory.
What it cannot prove
Displayed order-book states do not guarantee executable size and do not reconstruct a complete trade tape. A profitable quote-only backtest still needs execution validation.