# RiskCap baseline reproduction protocol

Executed on remote host `43.164.75.52`, in `/data/freqtrade`, against the active
production-mounted config, strategy family, and data. The runs were serial and did
not stop, restart, or reconfigure the active dry-run bot.

Common command:

```bash
docker compose run -T --rm freqtrade backtesting \
  --config user_data/config.json \
  --strategy-path user_data/strategies/volatility_breakout \
  --strategy VolatilityBreakoutRiskCap \
  --timeframe 5m \
  --timerange TIMERANGE \
  --fee 0.00035 \
  --cache none \
  --enable-protections
```

Runs:

| Role | `TIMERANGE` | Freqtrade run ID | Result |
|---|---|---|---|
| Training numerical anchor | `20260101-20260501` | `d6e88712207b8aab0d4b95fd05c8d7555b59383e` | 335 trades, +16.69%, PF 1.14, DD 11.37% |
| Historical retrospective numerical anchor | `20260501-20260710` | `a00eaa72d3ecbb1a441a042cdbf6baa2b88ce245` | 175 trades, +11.68%, PF 1.22, DD 7.44% |

Artifacts:

- `remote-baseline.txt` and `remote-baseline-retrospective.txt`: result tables.
- `baseline-results/*.meta.json`: Freqtrade run IDs and effective timestamps.
- `baseline-results/*-sanitized.zip`: trades, strategy snapshot, market-change data,
  and wallet path. The embedded config member was deliberately removed because the
  production config contains credentials.

The training engine begins trading at `2026-01-01T17:30:00Z`, not midnight, because
the 5m source begins at midnight and 210 startup candles are consumed. These results
are therefore accepted as exact historical numerical anchors, not yet as the formal
paired evidence for `D48-XSMOM-28D-V1`.

## Formal post-remediation baseline

After authentic pre-window data was prepended, the same command starts at midnight.

| Role | Result |
|---|---|
| Formal training | 331 trades, +13.02%, PF 1.11, DD 11.40% |
| Historical retrospective | 175 trades, +11.68%, PF 1.22, DD 7.44% |

The training run was repeated once. Its normalized trades, wallet path,
market-change series, and strategy snapshot match the first formal run byte-for-byte.
See `formal-baseline*.txt`, `formal-baseline-results/`, and
`formal-baseline-repeat-results/`.
