Read our October 2026 holdout audit: split boundaries, overlap counts and remaining evidence gaps.

METHODOLOGY · FALSIFIABLE

How We Backtest: a Falsifiable Methodology Statement

Every number on this page comes from the live engine's real configuration and latest run — not marketing copy. If anything here differs from what you actually see, that is a bug and we want to hear about it.

1. Single source of truth: backtest, listing and paper share one engine

On many platforms the backtester and the executor are two codebases, so the backtest can peek at future prices while live fills fail. We rule this out architecturally.

contract_version
t1.3.0
authoritative_engine
UnifiedBacktestAdapter/LookaheadSafeBacktestEngine
default_initial_capital
100000
default_commission_rate
0.0012
default_cost_profile
conservative
public_note
Metrics contract t1.3.0; authoritative engine UnifiedBacktestAdapter/LookaheadSafeBacktestEngine; the one-click library recalculation **aligns dataset/window/cost to this strategy's discovery record by default** (the discovery-aligned profile, whose purpose is to reproduce the published signal-theoretical return). Pass cost_profile="conservative" explicitly for the stricter honest lane. (The pipeline and honesty gates still default to conservative, which is deliberately wide and is not a broker's real fills.) Metrics are computed by a look-ahead-safe backtest and are not embellished. win_rate/profit_factor/closed_trades use per-trade FIFO pairing; profit_factor is null when there are no losing trades (the ratio is undefined); institutional fields that are absent are null=untested, not a pass.

2. Cost model: spread, commission, slippage and financing are all charged

commission_rate
0.001
min_spread_bps
5
overnight_financing_annual_rate
0.05
overnight_daily_rate
0.0001388888888888889
max_leverage
1
permanent_impact_coefficient
0.1
temporary_impact_coefficient
0.05
adaptive_costs
true
session_aware
true
fx_size_impact
true
vol_spread_mult
1
event_aware
true
event_spread_cap
3
adaptive_note
Spread = max(min_spread, ATR×0.12) × volatility regime × session multiplier × event window; events = NFP/CPI/FOMC template calendar (not an official feed); with no real volume, impact = notional/equity × volatility heuristic (not Level-2 data). Use POST .../cost_compare to compare flat vs adaptive.

3. Data coverage and cleaning: unqualified data is rejected outright

DatasetBarsStartEnd
XAUUSD_H117,5202024-08-05 10:00:002026-08-05 09:00:00
XAUUSD_M1535,0402025-08-05 09:30:002026-08-05 09:15:00
XAUUSD_M5105,1202025-09-11 08:20:002026-09-11 08:15:00
XAUUSD_M3026,3042025-02-03 09:30:002026-08-05 09:00:00
GCUSD_D15,0002007-03-27 00:00:00+00:002026-08-21 00:00:00+00:00
EURUSD_D15,8652003-12-01 00:00:002026-07-09 00:00:00
GBPUSD_D15,8772003-12-01 00:00:002026-07-09 00:00:00
USDJPY_D17,6991996-10-30 00:00:002026-07-09 00:00:00
BTCUSD_D14,3142014-09-17 00:00:002026-07-09 00:00:00
SPX500_D124,7461927-12-30 00:00:002026-07-09 00:00:00
WTIUSD_D16,4962000-08-23 00:00:002026-07-09 00:00:00
SIUSD_D16,4892000-08-30 00:00:002026-07-09 00:00:00
1000SATSUSDT_D11,0242023-12-12 00:00:002026-09-30 00:00:00
1000SATSUSDT_H123,1002023-12-12 12:00:002026-07-31 23:00:00
1000SATSUSDT_H45,7752023-12-12 12:00:002026-07-31 20:00:00
1000SATSUSDT_M1598,2562023-12-12 12:00:002026-09-30 23:45:00
1INCHUSDT_D12,1062020-12-25 00:00:002026-09-30 00:00:00
1INCHUSDT_H149,0612020-12-25 05:00:002026-07-31 23:00:00
1INCHUSDT_H412,2692020-12-25 04:00:002026-07-31 20:00:00
1INCHUSDT_M15202,0862020-12-25 05:00:002026-09-30 23:45:00
AAVEUSDT_D12,1772020-10-15 00:00:002026-09-30 00:00:00
AAVEUSDT_H150,7622020-10-15 03:00:002026-07-31 23:00:00
AAVEUSDT_H412,6962020-10-15 00:00:002026-07-31 20:00:00
AAVEUSDT_M15208,8872020-10-15 03:00:002026-09-30 23:45:00
ADAUSDT_D13,0892018-04-17 00:00:002026-09-30 00:00:00
ADAUSDT_H172,5812018-04-17 04:00:002026-07-31 23:00:00
ADAUSDT_M14,442,0362018-04-17 04:02:002026-09-30 23:59:00
ADAUSDT_M15296,1402018-04-17 04:00:002026-09-30 23:45:00
AGIXUSDT_D15012023-02-17 00:00:002024-07-01 00:00:00
AGIXUSDT_M1547,9752023-02-17 08:00:002024-07-01 02:45:00
ALGOUSDT_D12,6582019-06-22 00:00:002026-09-30 00:00:00
ALGOUSDT_H162,2852019-06-22 00:00:002026-07-31 23:00:00
ALGOUSDT_H415,5802019-06-22 00:00:002026-07-31 20:00:00
ALGOUSDT_M15254,9672019-06-22 00:00:002026-09-30 23:45:00
ANKRUSDT_D12,6272019-07-23 00:00:002026-09-30 00:00:00
ANKRUSDT_H161,5272019-07-23 14:00:002026-07-31 23:00:00
ANKRUSDT_H415,3912019-07-23 12:00:002026-07-31 20:00:00
ANKRUSDT_M15251,9352019-07-23 14:00:002026-09-30 23:45:00
APTUSDT_D11,4432022-10-19 00:00:002026-09-30 00:00:00
APTUSDT_M15138,5192022-10-19 01:00:002026-09-30 23:45:00

4. Execution assumptions: fills on the NEXT bar, never on the current close

  • Execution price
    Buys fill at the ask and sells at the bid; bid/ask are synthesized from the close ± half a spread. Spread = max(min_spread_bps, ATR/price×10000), widening automatically in high volatility.
  • Slippage and market impact
    Almgren-Chriss square-root model: permanent impact ∝ √(order/daily volume), temporary impact ∝ (order/daily volume). The larger the order and the thinner the relative liquidity, the worse the fill.
  • Liquidity cap
    An order exceeding 10% of daily volume fills only about 30%, with the rest honestly rejected—we never pretend to take the full amount.
  • Capital and leverage constraints
    Buys are capped by both equity×leverage and available cash; unaffordable orders are honestly rejected and not counted as trades. Sells are limited to holdings held (no naked shorting), eliminating negative-cash / unbounded-position return distortion at the root.
  • Overnight financing (swap)
    Positions held across a calendar day accrue overnight interest on notional value, with triple overnight interest on Wednesday (covering the weekend, per industry convention). Charges apply only to positions held overnight, not to bars newly opened in the same bar.
  • Commission
    Charged on actual filled volume rather than requested size, so partial fills are not over-costed.
  • Look-ahead bias protection
    All indicators/signals use only historical data up to the current bar (causal operators); orders fill on the bar after the signal, preventing trading on future information.

5. Real market conditions: halts, gaps and low-liquidity sessions

available
true
default_crypto
binance
default_metal_oil
mt5
stale_policy
Frontend: a bar that has not updated past the timeframe-related threshold shows a STALE yellow badge; the LIVE connection is retried when the tab becomes visible again.
failover_policy
When the auto/mt5 upstream is unavailable, it may fall back to a binance·BTCUSDT view and show a 'degraded' notice.
instruments_note
Contract type follows its source; MT5 gold/oil are mostly CFDs that differ from the COMEX/CME continuous contract, so backtest LIVE_* and the built-in CSV lanes may differ in scope.
honesty
Live quotes and backtest history need not share the same data scope. Do not equate a LIVE chart's performance directly with the built-in XAUUSD_H1 backtest conclusion.

6. Alignment with GIPS / industry standards

  • Time-weighted return (TWR): computed from the per-bar equity curve, undistorted by deposits/withdrawals.
  • Net of fees: all performance is net of commission, spread, slippage, market impact, and overnight financing.
  • No cherry-picking: the strategy library shows every strategy under a logged-in user's account, including those flagged as overfit or marked red; the transparency page discloses the 'admitted-trustworthy vs total' ratio rather than only showing the best-looking results.
  • A single execution standard: all strategies and all backtests use the same engine and cost model, making them comparable across the board.

7. Known limitations (where it could still be wrong)

  • Single symbol, single timeframehighCurrently only XAUUSD at H1/M15/M30. Single-symbol research carries selection bias that DSR/PSR overfit tests cannot fix. More symbols and longer history are a clear roadmap item.
  • XAUUSD has no real volumehighXAUUSD is an OTC CFD; MT5 only provides a bid/ask quote stream with no real volume or order book. Backtest volume is a broker tick-count approximation, so market-impact/liquidity estimates are inferred from it rather than from exchange volume. A true footprint would require CME futures data, which is a longer-term goal.
  • Overnight financing rate is an estimatemediumThe swap annual rate is a conservative neutral estimate (engine default, see cost_model), not an exact broker quote. Real swap rates vary by broker, direction, and timing.
  • Leverage path is not stress-testedmediumBuilt-in strategies trade very small lot sizes, so equity rarely approaches the leverage cap; the leverage-constraint path is therefore 'logically correct but not truly stress-tested.' Only heavily-sized strategies would exercise the difference; this is pending validation.
  • Backtest ≠ future returnshighPassing an honest validation means no overfit was detected on historical data with statistical significance—it does not equal future profitability. There is no sure-win in quant; any platform claiming guaranteed returns is misleading you. We only guarantee: every number we show is true.
  • Discovery-phase metrics may ≠ authoritative recalculationhighDiscovery workers (GA/RL) embed evaluations that may not share the LookaheadSafe methodology. The product treats one-click library recalculation as authoritative; a divergent discovery_recalc status must alert, and a discovery-archived Sharpe must never be treated as deployable proof. See backtest_single_source.entry_coverage.

METHODOLOGY PROTECTION MAP · 报告数据驱动

这些技术分别在保护你避开什么问题?

点击任一节点查看当前报告中的真实披露。它不是收益承诺,而是一张“研究时有没有把问题摊开”的地图。

4 层透明防护
FOCUS · 数据范围

这批数据告诉你研究从哪里开始、到哪里结束

XAUUSD_H1

XAUUSD_M15

XAUUSD_M5

XAUUSD_M30

GCUSD_D1

EURUSD_D1

数据覆盖不等于未来覆盖;它让你能先核对研究样本。