All results are out-of-sample (OOS). The OOS window is never used to fit hyperparameters — it is a blind evaluation on data the models have not seen.
Current results
Phase 17.3 — May 2026Performance history
Score formula
The optimizer maximizes a single composite score that balances return against risk:OOS validation methodology
1
Data split
The dataset is split into in-sample (IS) and out-of-sample (OOS) segments. The IS window is used for training and Optuna tuning. The OOS window is never touched during training.
2
Sweep on first 70%
The config sweep (
scripts/sweep.py) runs only on the first 70% of the OOS window. This is the “search” OOS.3
Final eval on full OOS
After the best config is identified, the full OOS window is backtested. The last 30% of OOS data — the true holdout — is never seen during the sweep.
4
Rollback check
If the full-OOS score does not beat the stored baseline by ≥ 2%, all models and configs roll back to the previous version.
Reading the backtest output
Hardware note
Backtest results shown here used:- Spread: 14.00 pts (RoboForex BTCUSD typical)
- Leverage: 500
- Starting balance: 500 USC
- Swap: enabled (RoboForex applies overnight swap)