foundation: STOPPING_RULE, WORKFLOW, pyproject, calendar YAML, _meta, directory layout
This commit is contained in:
74
STOPPING_RULE.md
Normal file
74
STOPPING_RULE.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# 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ă să 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)
|
||||
Reference in New Issue
Block a user