Validation
Good backtests are necessary but not sufficient. Every surviving strategy passed multiple independent tests for overfitting, cost accuracy, and out-of-sample stability.
| Test | What it checks |
|---|---|
| Walk-forward | Select parameters on past data only, test on the next unseen month. Repeated for 101 months. |
| Signal-shift placebo | Randomly time-shift each signal 200 times. If timing doesn't matter, shifted versions perform similarly. |
| Trend ablation | Split history into low, medium, and high trend periods. Check the edge doesn't depend on a single regime. |
| Leave-one-year-out | Remove each year in turn and re-evaluate. No single year should be load-bearing. |
| Out-of-sample sieve | Hold back post-2020 data entirely. Recompute weights on unseen data only. |
| Tick-level simulation | Replay every trade on 5-second bid/ask data. Confirms bar-level cost estimates are accurate. |
| Live vs backtest | Compare real broker fills against what the simulator predicted for the same trades. |
Walk-Forward Results
101-month expanding window. Parameters chosen on past data, tested on the next unseen month.
OOS Degradation
14%
Only 14% worse out-of-sample vs in-sample
Parameter Stability
100%
Identical parameters selected every single month
Simulator Audit
An independent simulator was built from the live trading system and audited line-by-line against the research backtests. The audit covered signal generation, execution model, financing costs, look-ahead bias, currency conversion, and PnL aggregation.
| Area | Result |
|---|---|
| Signal generation | Clean Simulator imports actual live strategy code. All component weights match. |
| Look-ahead bias | None found Signal lag, forward-fill, fill timing, and margin checks all verified causal. |
| Execution model | Clean Position sizing, spread gating, limit order handling all match live system. |
| Financing costs | Correct Rates verified against Oanda's published swap rates (Feb 2026), which reflect central bank rate differentials (ECB 2.00%, Fed 3.625%, BoJ 0.75%, SNB 0.00%) plus broker markup. |
| Currency conversion | Clean CHF and JPY profit paths use correct triangulation with side-of-market rates. |
Full audit report available on request.