Methodology
Data and backtesting methodology
A backtest is only useful if it is honest about what was knowable and what a fill would have cost. These are the rules Strategy Calculator enforces.
Deterministic calculations
Every feature, signal, trade, PnL value, and metric is calculated by deterministic code. No AI model is involved in any calculation. A result is reproducible from versioned raw data, feature definitions, the strategy definition, the execution model, and the backtest parameters — all of which are recorded with the result.
Data sources
Market data comes from Binance's published historical raw-trade archives for USDⓈ-M perpetual futures, verified against the published checksums. BTCUSDT is currently supported. Individual trades are the source of truth: candles and features at every timeframe are derived from them, not from a third-party candle feed.
When source trades have an audited gap, affected bars are marked as reconstructed and that marking carries through to higher timeframes. A strategy that depends on a degraded feature fails rather than silently treating it as exact.
UTC market boundaries
Crypto markets trade continuously, so bars use fixed UTC boundaries: a daily bar covers 00:00 to 24:00 UTC. A bar is complete only once its full interval has ended and its data has been published.
How features are calculated
Each feature is registered with a formula, unit, supported timeframes, the history it needs, and a known-at rule stating the earliest moment its value may be used. Features include OHLC prices and returns, base and quote volume, buy/sell volume and trade counts, trade size, delta, VWAP, and cumulative volume delta. Rolling statistics such as percentile rank use only prior bars — the current bar is excluded — and return no value, rather than a guessed one, when there is too little history or a zero denominator.
No look-ahead
Every strategy decision has a decision timestamp — the close of the bar that produced the signal — and may only read values whose known-at time is at or before it. A rule using a full day's volume cannot buy that same day's open; the earliest possible fill is after the day closes. No bar after the decision is read when evaluating it.
Execution timing
- Scheduled daily (default). A signal decided on a completed daily bar fills at the next 9:00 AM New York time checkpoint, at the first available one-minute open between 9:00 and 9:05. If no price exists in that window the trade is skipped, and the actual fill minute is recorded.
- Next UTC bar open (research only). An idealized model that fills at the next bar's open. It is useful for research but cannot be activated.
Fill prices include the configured slippage, and entry and exit fees are charged on each trade. If a take profit and stop loss are both touched within the same one-minute bar, the order of events cannot be known, so the signal is skipped and marked ambiguous rather than assuming the favorable outcome.
Limitations of historical simulation
- Past performance does not predict future results.
- Fills are simulated from historical prices with a fixed slippage assumption; real order book depth, latency, and market impact can differ.
- Funding payments are not included in standard backtests.
- Repeatedly tuning a strategy against the same history can overfit it. Small trade counts are flagged in results for this reason.
Backtested signals vs. live notifications
A backtest evaluates history in one pass. An Active Strategy evaluates the same rules, with the same scheduled daily execution model, once each new UTC day is published — typically during the following day, after the exchange's daily archive is available. Its signals are recorded as research output; optional SMS alerts are informational and never mean an order was placed. Monitoring is end-of-day, not intraday. See the SMS terms and Privacy Policy.