▶ Full Post Text
I backtested (In/Out of Sample) a strategy on **ES 30m** bars (no-stacking trade selection).
I'm intentionally **not posting the exact rule**, but I am posting the full metrics and the year-by-year results so you can sanity-check robustness.
## Setup (what this is / isn't)
- Instrument: **CME Micro E-mini S&P (MES)**, 30-minute bars
- Sample split: **in-sample** `<= 2024-12-31` vs **forward** `> 2024-12-31`
- Stacking mode: **no-stacking** (no overlapping trades; a new entry is skipped until the prior trade's exit index)
- Costs: **$1.14 per round-trip trade** (modeled as a fixed cost converted into R)
- Equity simulation: start **$100,000**, **1% risk per trade**, compounding (capital changes per trade)
- Target/label and RR come from the engineered dataset (not re-derived with TA in Python)
## Buy & hold benchmark (close-to-close)
| Window | Entry -> Exit | Total | CAGR | Max DD | Calmar | Final (from $100k) |
|---|---|---:|---:|---:|---:|---:|
| `<= 2024-12-31` | `2010-06-11 03:30:00` -> `2024-12-31 21:30:00` | `307.8%` | `10.14%` | `30.5%` | `0.33` | `$407,823` |
| `> 2024-12-31` | `2025-01-01 23:00:00` -> `2025-11-21 21:30:00` | `8.6%` | `9.70%` | `21.4%` | `0.45` | `$108,557` |
## Strategy results (exact same windows)
### In-sample (`<= 2024-12-31`)
- Trades: `4,105`
- Win rate: `38.37%`
- Expectancy: `0.134R`
- Total R / Max DD (R): `549.9R / 23.7R`
- Profit factor: `1.216`
- Equity: Final `$15,805,918` (Total `15705.9%`, CAGR `41.59%`)
- Equity DD / Calmar: `21.8% / 1.91`
- Equity Sharpe / Sortino: `1.55 / 2.20`
### Forward (`> 2024-12-31`)
- Trades: `225`
- Win rate: `37.78%`
- Expectancy: `0.146R`
- Total R / Max DD (R): `32.9R / 11.1R`
- Profit factor: `1.234`
- Equity: Final `$135,481` (Total `35.5%`, CAGR `40.83%`)
- Equity DD / Calmar: `10.9% / 3.76`
- Equity Sharpe / Sortino: `1.56 / 2.32`
## Forward Robustness Score (FRS): anchored calendar-year windows
FRS is computed over **anchored calendar-year windows** (2010, 2011, …, 2025). It's a multiplicative score that rewards:
- **Consistency**: fraction of windows with positive return (`P`)
- **Per-window return vs drawdown**: median Calmar in R-space (`C+`, clamped at 0)
- **Tail penalty**: how "worse" the worst DD is vs median DD (`Tail`)
- **Stability**: robustness of the return distribution (median/MAD-based)
- **Trade activity sanity**: median trades/window vs `N_min` (`Trade`)
For this strategy:
- `FRS = 0.372`
- `k = 16` year-windows
- `P = 1.00` (all windows had positive total R)
- `C+ = 2.48`
- `Tail = 0.42`
- `Stable = 0.84`
- `Trade = 1.00` (`Nmed = 284`, `N_min = 30`)
- Window distribution summaries:
- `DD (R) min/median/mean/max = 7.01 / 17.30 / 16.57 / 23.69`
- `R (total R) min/median/mean/max = 12.09 / 35.27 / 36.41 / 56.30`
## Year-by-year equity (strategy)
Equity is simulated from `$100k` with `1%` risk per trade and the cost model above.
| Year | Start | End | Trades | Final | Total | CAGR | Max DD | Calmar | Sharpe | Sortino |
|---:|---|---|---:|---:|---:|---:|---:|---:|---:|---:|
| 2010 | 2010-06-11 03:30:00 | 2010-12-31 21:00:00 | 166 | $133,857 | 33.9% | 68.67% | 6.8% | 10.05 | 2.22 | 3.21 |
| 2011 | 2011-01-02 23:00:00 | 2011-12-30 21:00:00 | 276 | $132,313 | 32.3% | 32.65% | 11.4% | 2.86 | 1.30 | 1.86 |
| 2012 | 2012-01-03 11:00:00 | 2012-12-31 22:00:00 | 271 | $109,741 | 9.7% | 9.79% | 19.5% | 0.50 | 0.51 | 0.73 |
| 2013 | 2013-01-02 11:00:00 | 2013-12-31 22:00:00 | 286 | $149,688 | 49.7% | 49.99% | 14.4% | 3.48 | 1.74 | 2.41 |
| 2014 | 2014-01-02 11:00:00 | 2014-12-30 22:00:00 | 288 | $146,077 | 46.1% | 46.50% | 10.6% | 4.37 | 1.61 | 2.09 |
| 2015 | 2015-01-01 23:00:00 | 2015-12-31 21:30:00 | 284 | $119,512 | 19.5% | 19.59% | 16.7% | 1.18 | 0.86 | 1.23 |
| 2016 | 2016-01-03 23:00:00 | 2016-12-30 21:30:00 | 271 | $138,659 | 38.7% | 39.07% | 19.6% | 2.00 | 1.50 | 2.15 |
| 2017 | 2017-01-02 23:00:00 | 2017-12-29 21:30:00 | 293 | $170,256 | 70.3% | 71.34% | 16.7% | 4.27 | 2.29 | 3.30 |
| 2018 | 2018-01-01 23:00:00 | 2018-12-31 21:30:00 | 278 | $137,822 | 37.8% | 37.98% | 16.7% | 2.28 | 1.45 | 2.10 |
| 2019 | 2019-01-01 23:00:00 | 2019-12-31 21:30:00 | 285 | $140,589 | 40.6% | 40.76% | 16.1% | 2.53 | 1.51 | 2.18 |
| 2020 | 2020-01-01 23:00:00 | 2020-12-31 21:30:00 | 294 | $120,140 | 20.1% | 20.16% | 21.8% | 0.92 | 0.87 | 1.24 |
| 2021 | 2021-01-03 23:00:00 | 2021-12-31 21:30:00 | 301 | $169,245 | 69.2% | 70.06% | 14.7% | 4.76 | 2.22 | 3.23 |
| 2022 | 2022-01-02 23:00:00 | 2022-12-30 21:30:00 | 247 | $149,276 | 49.3% | 49.82% | 15.0% | 3.33 | 1.87 | 2.73 |
| 2023 | 2023-01-02 23:00:00 | 2023-12-29 21:30:00 | 284 | $135,761 | 35.8% | 36.26% | 17.8% | 2.03 | 1.37 | 1.96 |
| 2024 | 2024-01-01 23:00:00 | 2024-12-31 21:30:00 | 284 | $164,878 | 64.9% | 64.95% | 20.0% | 3.25 | 2.16 | 3.14 |
| 2025 | 2025-01-01 23:00:00 | 2025-11-21 21:30:00 | 225 | $135,481 | 35.5% | 40.83% | 10.9% | 3.76 | 1.56 | 2.32 |
## Year-by-year equity (buy & hold benchmark)
Same anchored year windows; close-to-close buy & hold, equity from `$100k` start.
| Year | Start | End | Total | CAGR | Max DD | Calmar | Final (from $100k) |
|---:|---|---|---:|---:|---:|---:|---:|
| 2010 | 2010-06-11 03:30:00 | 2010-12-31 21:00:00 | 12.7% | 23.82% | 8.0% | 2.96 | $112,655 |
| 2011 | 2011-01-02 23:00:00 | 2011-12-30 21:00:00 | 1.2% | 1.24% | 15.9% | 0.08 | $101,233 |
| 2012 | 2012-01-03 11:00:00 | 2012-12-31 22:00:00 | 9.8% | 9.89% | 8.3% | 1.20 | $109,837 |
| 2013 | 2013-01-02 11:00:00 | 2013-12-31 22:00:00 | 22.4% | 22.54% | 5.8% | 3.92 | $122,419 |
| 2014 | 2014-01-02 11:00:00 | 2014-12-30 22:00:00 | 11.4% | 11.48% | 7.8% | 1.48 | $111,384 |
| 2015 | 2015-01-01 23:00:00 | 2015-12-31 21:30:00 | 0.5% | 0.48% | 10.3% | 0.05 | $100,483 |
| 2016 | 2016-01-03 23:00:00 | 2016-12-30 21:30:00 | 8.5% | 8.59% | 9.0% | 0.95 | $108,508 |
| 2017 | 2017-01-02 23:00:00 | 2017-12-29 21:30:00 | 15.1% | 15.28% | 2.6% | 5.98 | $115,089 |
| 2018 | 2018-01-01 23:00:00 | 2018-12-31 21:30:00 | -5.7% | -5.69% | 17.5% | -0.33 | $94,326 |
| 2019 | 2019-01-01 23:00:00 | 2019-12-31 21:30:00 | 22.6% | 22.69% | 6.8% | 3.32 | $122,605 |
| 2020 | 2020-01-01 23:00:00 | 2020-12-31 21:30:00 | 14.5% | 14.48% | 30.5% | 0.47 | $114,464 |
| 2021 | 2021-01-03 23:00:00 | 2021-12-31 21:30:00 | 24.1% | 24.33% | 5.2% | 4.65 | $124,089 |
| 2022 | 2022-01-02 23:00:00 | 2022-12-30 21:30:00 | -17.5% | -17.69% | 23.9% | -0.74 | $82,456 |
| 2023 | 2023-01-02 23:00:00 | 2023-12-29 21:30:00 | 16.9% | 17.16% | 10.7% | 1.60 | $116,944 |
| 2024 | 2024-01-01 23:00:00 | 2024-12-31 21:30:00 | 16.3% | 16.32% | 9.6% | 1.69 | $116,304 |
| 2025 | 2025-01-01 23:00:00 | 2025-11-21 21:30:00 | 8.6% | 9.70% | 21.4% | 0.45 | $108,557 |
## Glossary (quick defs)
- **R / RR**: returns expressed in "R multiples", i.e., profit/loss normalized by the per-trade risk (1R = the amount you risk per trade).
- **Expectancy (R)**: average R per trade.
- **Profit factor**: sum(winning R) / abs(sum(losing R)).
- **Max drawdown (R)**: largest peak-to-trough drawdown on the cumulative R curve.
- **Equity max drawdown (%)**: max peak-to-trough drawdown of the simulated equity curve.
- **CAGR (%)**: annualized growth rate of equity over the window.
- **Calmar**: CAGR / max drawdown (in the same units: % for equity Calmar, R for R-space Calmar).
- **Sharpe/Sortino (equity)**: risk-adjusted return estimates based on per-trade equity returns, annualized by trade frequency.
- **No-stacking**: skip entries that would overlap an open trade (per exit index).