Files
atm-backtesting/WORKFLOW.md

87 lines
4.2 KiB
Markdown

# WORKFLOW — colectare screenshot-uri M2D
**Scop**: minimizează **selection bias** când colectezi screenshot-uri istorice din TradeStation.
> **Premisa ascunsă pe care o atacăm**: dacă faci screenshot doar la trade-urile care "arată interesant", WR-ul măsurat va fi structural mai mare decât WR-ul real. Setup-urile care arată "dubios" la trigger sunt mai des losers — dacă le filtrezi inconștient, statisticile mint.
---
## Regula de aur
> **Dacă vezi o bulină verde-deschis (BUY trigger) sau roșu-deschis (SELL trigger) pe TF mic care urmează unei bulin verde-închis/roșu-închis după turquoise/galben pe TF mare → screenshot, indiferent cum arată setupul.**
NU evaluezi calitatea ÎNAINTE de screenshot. Calitatea o pune extractorul (manual sau vision) pe baza imaginii, nu tu pe baza memoriei.
---
## Scroll protocol
### 1. Alege perioada în avans
- Definește o fereastră calendaristică concretă: "Mar/Mie/Joi între 16:35-18:00 RO, din 2025-09-01 până în 2025-12-31".
- **Scrie perioada aleasă într-un comentariu sau fișier înainte de a începe scroll-ul**. Așa nu poți extinde sau restrânge perioada în funcție de ce vezi.
### 2. Configurare TradeStation
- TF mic vizibil (1min sau 3min).
- TF mare overlay sau pe ecran separat — important să vezi semnalul direcțional.
- Indicator blackbox activ pe ambele TF-uri.
- Zoom suficient ca să distingi culorile bulinelor clar.
### 3. Scroll candle-by-candle
- Începi cu prima zi a perioadei, ora 16:35 (sau începutul fereastrei alese).
- Avansezi candle-by-candle (sau cu pas mic). **NU sări** peste perioade lungi "pentru că arată plat" — chiar și acolo pot fi trigger-e ratate.
- La fiecare bulină verde-deschis / roșu-deschis pe TF mic în fereastra orară a perioadei → **STOP. Screenshot.**
- Verifică post-screenshot că setup-ul respectă pre-condițiile (turquoise/galben pe TF mare anterior, retragere intermediară). Dacă NU respectă → este un trigger fără setup valid; documentează cu nume `<basename>-invalid.png` (sau șterge), dar **logează decizia în WORKFLOW_LOG.md de mai jos**.
### 4. Workflow log (audit trail anti-bias)
Creează un fișier `data/workflow_log.md` la pornirea fiecărei sesiuni de scroll:
```markdown
## 2026-05-13 — sesiune scroll perioada 2025-09-01 → 2025-09-15
- Start: 14:32 RO
- Perioada scroll-uită: 2025-09-01 → 2025-09-15, Mar/Mie/Joi, 16:35-18:00
- Trigger-e găsite: 12
- Screenshot-uri făcute: 12
- Screenshot-uri NEFĂCUTE (cu motiv):
- 2025-09-04 17:14 — bulina verde-deschis dar fără verde-închis înainte → NU e M2D valid (trigger fals)
- End: 15:48 RO
```
**Regula**: dacă rata screenshot/trigger < 95% pe o sesiune, ai un motiv documentat pentru cele lipsă. Dacă nu ai un bias.
### 5. Cazuri ambigue (cum eviți cherry-picking)
- "Nu sunt sigur e M2D" screenshot oricum, log la `data/workflow_log.md` ca "ambiguous: motiv". Extractorul (manual/vision) decide final.
- "Imaginea e neclară" screenshot oricum; vision poate returneze `confidence:low` și merge la `needs_review/`.
- "Setupul arată slab" IRRELEVANT la momentul screenshot. Screenshot. Calitate o pune extractorul. (Da, calitate e descriptor biased vezi STOPPING_RULE.md punct 3 dar NU folosim calitate ca filtru.)
- "Trade-ul a pierdut clar" IRRELEVANT. Screenshot. Asta e exact biasul pe care îl evităm.
---
## Anti-pattern-uri (NU FACE asta)
- "Scrol până găsesc un trade frumos" biased.
- "Sar peste ziua asta, n-a fost nimic interesant" biased.
- "Refac screenshot-ul, primul a ieșit prost" ok dacă primul e ilizibil; NU ok dacă vrei un screenshot "mai clar" pe un trade winning.
- "Văd e SL clar, nu merită screenshot" exact opusul a ce vrei.
---
## Calibration trades (primele 10)
Pentru cele 10 trade-uri de calibrare (P4 gate):
- **Tu** (Marius) extragi manual TOATE câmpurile prin `/m2d-log` (source=`manual_calibration`).
- **Apoi** rulezi `/backtest screenshot.png` pentru extracție vision (source=`vision_calibration`).
- `/stats --calibration` compară field-by-field.
- Acceptance: 10% mismatch pe câmpurile core. >10% → fix promptul vision agent (`.claude/agents/m2d-extractor.md`) și re-rulează.
---
## Versiune
- v1 (2026-05-13) — draft inițial