F+ Backtest — the proof
The engine running the paper account, tested two ways: across the 2021–2026 bull run and through the 2018–2020 stress era (the COVID crash). No-lookahead walk-forward plus a ₹10,00,000 capital simulation against the Nifty 500 Total-Return Index.
The headline
F+ is the only config that cleared its pre-registered drawdown bar — declared before the COVID window was run, scored against the un-improved Config F base.
Walk-forward — beat the index 4 / 4
Every window cleared the Nifty 500 TRI on return, with positive alpha and a Sharpe above 1.0 in the two strongest windows.
| Window | F+ return | CAGR | Sharpe | Max DD | Trades | Nifty 500 | Alpha | Beat? |
|---|---|---|---|---|---|---|---|---|
| W1 2021–2023 | +22.36% | +10.63% | 0.41 | 8.80% | 87 | +21.95% | +0.41% | ✓ |
| W2 2022–2024 | +64.44% | +28.21% | 1.56 | 9.85% | 167 | +52.78% | +11.66% | ✓ |
| W3 2023–2025 | +54.89% | +24.44% | 1.11 | 17.44% | 181 | +47.42% | +7.47% | ✓ |
| W4 2024–2026 | +22.75% | +8.92% | 0.20 | 16.93% | 155 | +20.46% | +2.29% | ✓ |
₹10,00,000 simulated — 2021-06-01 → 2026-05-26
On raw return F+ effectively matched the index (+81.6% vs +82.2%) — but with lower drawdown and 275 trades vs Config C's 460. F+ is a risk-managed engine, not a return-maximiser. Config C posts higher raw returns at higher drawdown and with no downside protection.
| Strategy | ₹10L grew to | Return | Max DD | Sharpe | Trades |
|---|---|---|---|---|---|
| Nifty 500 TRI | ₹18,21,735 | +82.17% | 18.59% | — | — |
| Config C (momentum) | ₹32,09,716 | +220.97% | 20.61% | 0.92 | 460 |
| Config F+ ✓ | ₹18,15,996 | +81.60% | 18.95% | 0.51 | 275 |
Walk-forward — 4 overlapping windows
The market itself was brutal here: every window includes or borders the COVID crash. F+ trailed the index on raw return (it was sitting in cash through the worst of it) — but look at what it did to drawdown.
| Window | F+ return | CAGR | Sharpe | Max DD | Trades | Nifty 500 | Alpha | Beat? |
|---|---|---|---|---|---|---|---|---|
| W1 Jan'17–Dec'18 | +2.28% | +1.16% | -0.49 | 19.02% | 154 | +29.79% | -27.51% | ✗ |
| W2 Jun'17–Jun'19 | +2.77% | +1.38% | -0.51 | 18.78% | 159 | +20.02% | -17.25% | ✗ |
| W3 Jan'18–Jun'20 ⚠ COVID | -21.14% | -9.08% | -1.63 | 26.93% | 202 | -7.46% | -13.68% | ✗ |
| W4 Jun'18–Dec'20 | +13.29% | +4.95% | -0.14 | 20.84% | 232 | +25.00% | -11.71% | ✗ |
Drawdown — half the pain
Full period, 2017-01-16 → 2020-12-31. Lower is better. F+ took 23% vs ~38–42% for everything else.
The COVID de-risk, step by step
Regime exposure cut live, before the bottom — no hindsight. Blended equity fell only −20.4% peak-to-trough vs Config F −38.2% and Config C −43.2%.
- 2020-02-11100% invested
Fully invested — pre-crash
- 2020-03-0450% invested
Regime risk-off — first cut
- 2020-03-1225% invested
Deep risk-off — exposure floor
- 2020-06-0350% invested
Recovery — stepping back in
₹10,00,000 simulated — 2017-01-16 → 2020-12-31
F+ ended ahead of both Config C and the un-improved Config F, while taking the least drawdown of the lot.
| Strategy | ₹10L grew to | Return | Max DD | Sharpe | Trades |
|---|---|---|---|---|---|
| Nifty 500 TRI | ₹16,24,459 | +62.45% | 38.52% | — | — |
| Config C (momentum) | ₹13,96,816 | +39.68% | 41.58% | 0.17 | 440 |
| Config F (base) | ₹12,40,646 | +24.06% | 38.16% | -0.01 | 310 |
| Config F+ ✓ | ₹14,09,895 | +40.99% | 23.27% | 0.22 | 316 |
Methodology & honest caveats
What this backtest does and does not claim. Read this before trusting any number above.
Every decision at date D uses only data dated ≤ D. The regime cut exposure during/before the drop, never after — 0 winners over +100% inside the COVID window (no hindsight leakage).
Backfill covers ~400 of today's Nifty 500 survivors. It biases every config and the benchmark the same way, but absolute returns read slightly high.
Pre-2024 composite = low-volatility quality proxy + momentum core. Fundamentals / news / sentiment were offline for the historical window.
The cash sleeve earns nothing in the sim (real T-bills ≈ 6%). Conservative — F+'s cash-heavy COVID stretch would have done modestly better live.
The 2021–26 full-period figure is understated by a native-only warmup before 2021-05-26 (avoids the yfinance↔native adjustment seam). The 4-window walk-forward is the cleaner read.
Engine pinned at commit 57e72d5; full suite 479 tests green; the F+ pin is locked by test_paper_config_is_frozen_fplus.
For personal research and educational purposes only. Not investment advice. Paper-traded / simulated results, not real money. Past simulated performance does not predict future results. The operator has not paid for advice and Claude is not registered as an investment adviser or research analyst with SEBI.