Files
atm-backtesting/STOPPING_RULE.md

75 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# STOPPING_RULE — M2D Backtesting
**Versiune**: 1
**Data**: 2026-05-13
**Status**: draft — pentru semnătură Marius
---
## Întrebarea de decis
Pentru fiecare Set candidat (A1, A2, A3, B), decidem una din trei:
- **GO LIVE** — pornesc forward paper trading cu 0.25R per trade (validare reală)
- **EXTEND COLLECTION** — mai colectez screenshot-uri, încă nu sunt date suficiente
- **ABANDON** — strategia nu are edge măsurabil pe acest Set; renunț la Set sau la întreaga strategie
---
## Threshold-uri obligatorii pentru GO LIVE pe un Set
Toate condițiile trebuie satisfăcute simultan:
1. **N ≥ 40** trade-uri non-pending pe acel Set
2. **WR ≥ 55%** (Wilson 95% CI lower bound ≥ 45%)
3. **Expectancy ≥ +0.20R** pe overlay-ul `pl_marius` (50% TP0 + BE + close ~TP1)
4. **Calibration P4 PASS** — pe primele 10 trade-uri double-extracted (manual + vision), mismatch rate ≤10% pe câmpuri core (`entry`, `sl`, `tp0/1/2`, `outcome_path`, `max_reached`, `directie`)
Dacă oricare condiție pică → **EXTEND COLLECTION** sau **ABANDON** (vezi mai jos).
---
## Threshold-uri pentru ABANDON pe un Set
Oricare e suficient:
- N ≥ 40 și WR < 45% edge negativ; ABANDON acest Set
- N 40 și Expectancy 0.10R ABANDON
- Wilson 95% CI lower bound stabil sub 50% după N 60 ABANDON
---
## Caveat metodologic semnat
**Eu, Marius, înțeleg și accept**:
1. **N=40 = directional evidence, NU scientific proof**. Intervalul de încredere 95% pentru WR la N=40, WR observat 55%, este aproximativ [40%, 70%]. "Validated" la N=40 înseamnă "merită tradez cu 0.25R", NU "edge confirmat statistic". Confirmarea reală vine din forward paper trading.
2. **Selection bias rezidual**. Chiar și cu scroll protocol (vezi `WORKFLOW.md`), eu am ales perioada pe care scroll-uiesc. Acest bias e parțial mitigat, NU eliminat.
3. **Lookahead bias pe `calitate`**. Câmpul `calitate ∈ {Clară, Mai mare ca impuls, Slabă}` este clasificat post-outcome (am văzut chart-ul întreg). DECI: NU folosesc `calitate` ca filtru în stopping rule. Rămâne descriptor în jurnal, NU criteriu de tradare.
4. **Backtest = upper bound al expectancy real**. Execuția live va avea slippage, latențe, emoții. Expectancy real probabil 0.05-0.15R sub backtest. De aceea pragul `+0.20R` în backtest = aproximativ break-even-cu-edge-mic în live.
5. **Indicator drift**. Dacă indicatorul blackbox se update-ează, trade-urile vechi devin istoric irelevant. Trackuit prin coloana `indicator_version` în CSV; reset stat-uri la schimbare.
---
## Post-GO LIVE protocol
După un Set primește GO LIVE:
1. Forward paper trading cu 0.25R per trade pe acel Set.
2. Minimum 20 trade-uri live înainte de a urca sizing-ul la 0.5R sau full.
3. Dacă WR live diverge >10pp de backtest în prima 20 trade-uri → review (probabil execuție defectă sau bias subestimat).
---
## Semnătură
```
Marius — _________________________ — data: ___________
```
(prin commit-ul acestui fișier cu modificări la status "signed" + nume în istoric git)