Real backtest resultsfrozen F+ · commit 57e72d5

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.

COVID max DD
26.93%
vs Config F base
39.75%
Bull windows beaten
4 / 4
Full suite
479 ✓
COVID-window max drawdownPASS
26.93%
target < F's 39.75%
Full-period returnPASS
+40.99%
target ≥ F's +24.06%
Full-period SharpePASS
+0.22
target > F's −0.01
Era 1 · 2021–2026 bull run

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.

WindowF+ returnCAGRSharpeMax DDTradesNifty 500AlphaBeat?
W1 2021–2023+22.36%+10.63%0.418.80%87+21.95%+0.41%
W2 2022–2024+64.44%+28.21%1.569.85%167+52.78%+11.66%
W3 2023–2025+54.89%+24.44%1.1117.44%181+47.42%+7.47%
W4 2024–2026+22.75%+8.92%0.2016.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 toReturnMax DDSharpeTrades
Nifty 500 TRI₹18,21,735+82.17%18.59%
Config C (momentum)₹32,09,716+220.97%20.61%0.92460
Config F+ ✓₹18,15,996+81.60%18.95%0.51275
Trades
275
Win rate
60.0%
Avg win
+20.50%
Avg loss
-12.27%
SIEMENS +141% · multi-quarter holdPOLYCAB +132% · multi-quarter holdCYIENT +105% · multi-quarter hold
Era 2 · 2017–2020 stress test

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.

WindowF+ returnCAGRSharpeMax DDTradesNifty 500AlphaBeat?
W1 Jan'17–Dec'18+2.28%+1.16%-0.4919.02%154+29.79%-27.51%
W2 Jun'17–Jun'19+2.77%+1.38%-0.5118.78%159+20.02%-17.25%
W3 Jan'18–Jun'20 ⚠ COVID-21.14%-9.08%-1.6326.93%202-7.46%-13.68%
W4 Jun'18–Dec'20+13.29%+4.95%-0.1420.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%.

  1. 2020-02-11100% invested

    Fully invested — pre-crash

  2. 2020-03-0450% invested

    Regime risk-off — first cut

  3. 2020-03-1225% invested

    Deep risk-off — exposure floor

  4. 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 toReturnMax DDSharpeTrades
Nifty 500 TRI₹16,24,459+62.45%38.52%
Config C (momentum)₹13,96,816+39.68%41.58%0.17440
Config F (base)₹12,40,646+24.06%38.16%-0.01310
Config F+ ✓₹14,09,895+40.99%23.27%0.22316

Methodology & honest caveats

What this backtest does and does not claim. Read this before trusting any number above.

No lookahead

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).

Survivorship

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.

Mechanical scores

Pre-2024 composite = low-volatility quality proxy + momentum core. Fundamentals / news / sentiment were offline for the historical window.

Cash earns 0%

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.

Warmup floor

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.

Frozen & guarded

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.