Documentation Index
Fetch the complete documentation index at: https://docs.novosky.app/llms.txt
Use this file to discover all available pages before exploring further.
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 2026| Metric | Value |
|---|---|
| OOS period | 37 days (2026-03-30 to 2026-05-05) |
| Win rate | 71.7% |
| Profit factor | 5.46 |
| Max drawdown | 4.3% |
| Sharpe ratio | 59.54 |
| Return | +194.6% |
| Trades | 184 |
| Score | 18.48 |
| Config | conf=0.65, risk=2.0%, TP=1.0×ATR, SL=1.0×ATR |
Performance history
| Date | Score | WR | PF | MaxDD | Return | Trades | Config summary |
|---|---|---|---|---|---|---|---|
| 2026-05-08 | 54.47 | 71.7% | 5.46 | 4.5% | +195.7% | 99 | conf=0.65, risk=3.0%, TP=1.0×ATR — single-source + recency weighting |
| 2026-05-07 | 18.48 | 60.3% | 2.69 | 4.3% | +137.3% | 184 | conf=0.65, risk=2.0%, TP=1.0×ATR — single-source + recency weighting |
| 2026-04-29 | 35.13 | 67.6% | 2.83 | 7.3% | +394.5% | 179 | conf=0.65, risk=1.75%, TP=1.0×ATR |
| 2026-04-24 | 46.80 | 62.8% | 2.26 | 14.5% | +1154.6% | 156 | conf=0.633, risk=3.0%, TP=1.2×ATR |
| 2026-04-24 | 21.34 | 65.8% | 3.03 | 7.1% | +390.9% | 114 | Phase 16 fixes (RF weight, TP<SL) |
| 2026-04-24 | 7.77 | 50.3% | 1.71 | 3.6% | +71.5% | 344 | conf=0.633, risk=2.0%, TP=0.8×ATR |
| 2026-04-24 | 6.70 | 50.7% | 1.61 | 4.1% | +66.5% | 343 | conf=0.633, risk=2.5%, TP=0.8×ATR |
| 2026-04-20 | 21.34 | 78.5% | 2.43 | 1.8% | +50.7% | 274 | conf=0.6, risk=2.5%, TP=0.8×ATR |
| 2026-04-19 | 4.84 | 67.4% | 1.38 | 3.7% | +51.6% | 717 | conf=0.6, risk=2.5%, TP=0.8×ATR |
| 2026-04-18 | 4.82 | 71.2% | 1.87 | 7.6% | +323.0% | 483 | conf=0.6, risk=1.0%, TP=0.8×ATR |
Score formula
The optimizer maximizes a single composite score that balances return against risk:OOS validation methodology
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.
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.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.
Reading the backtest output
| Field | What it means |
|---|---|
win_rate | % of trades closed profitably |
profit_factor | Gross profit ÷ gross loss — above 1.5 is good |
max_drawdown | Largest peak-to-trough equity drop during the OOS period |
sharpe | Risk-adjusted return (annualized) |
return | Total % return over the OOS period |
score | Composite score used by the optimizer |
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)