Files
atm-backtesting/.claude/commands/stats.md

3.2 KiB

description, argument-hint
description argument-hint
Afișează statistici WR / expectancy / per Set (din data/jurnal.csv). Cu --calibration arată raport P4. [--calibration] [--overlay pl_marius|pl_theoretical] [--seed N]

/stats — backtest statistics

Wrapper read-only peste scripts/stats.py. Afișează raportul stat ca atare; eventual adăugă highlight la final dacă observi un Set care îndeplinește pragul STOPPING_RULE.

Arguments

  • --calibration (flag) — afișează raportul P4 (mismatch field-by-field pe perechi manual_calibrationvision_calibration join-uite pe screenshot_file).
  • --overlay pl_marius|pl_theoretical (opțional, default pl_marius) — care P/L overlay folosește.
  • --seed N (opțional) — seed pentru bootstrap RNG. Folosește pentru reproducibilitate.

Default (fără flag-uri): backtest stats — overall + per-Set + per-calitate + per-instrument WR, expectancy, Wilson 95% CI pe WR, bootstrap 95% CI pe expectancy, pe overlay pl_marius.

Workflow

  1. Parse $ARGUMENTS și pasează-le direct prin:

    python -m scripts.stats $ARGUMENTS
    

    --csv data/jurnal.csv e default-ul scriptului; nu îl pasezi.

  2. Rulează prin Bash. Output-ul vine pe stdout în UTF-8.

  3. Afișează output-ul as-is către user. NU reformata, NU re-rezuma, NU inventa numere. Scriptul are deja format ales (tabele + secțiuni text).

  4. Highlight STOPPING_RULE la final, DOAR dacă observi în output un Set care îndeplinește toate cele 3 thresholds din STOPPING_RULE.md:

    • N ≥ 40 trade-uri non-pending pe acel Set
    • WR ≥ 55% cu Wilson 95% CI lower bound ≥ 45%
    • Expectancy ≥ +0.20R pe overlay pl_marius

    Dacă DA pe vreun Set:

    🚀 STOPPING RULE: Set <X> îndeplinește pragurile (N=<n>, WR=<wr>, Wilson_LB=<lb>, E=<exp>R). Discută cu user dacă pornește forward paper trading la 0.25R per trade pe acest Set.
    

    Dacă niciun Set nu îndeplinește toate: nu adăuga highlight. Lasă raportul scriptului să vorbească.

  5. Highlight calibration P4 (în modul --calibration):

    • Dacă perechi (manual_calibration, vision_calibration) < 10 → adăugă: Insuficient pentru P4 — continuă să acumulezi calibrare (minim 10 perechi).
    • Dacă ≥ 10 perechi și mismatch rate > 10% pe câmpuri core (entry/sl/tp0/tp1/tp2/outcome_path/max_reached/directie) → adăugă: ⚠️ P4 FAIL: mismatch > 10% pe câmpuri core. Fix promptul vision agent (.claude/agents/m2d-extractor.md) și re-rulează calibrarea.
    • Dacă ≥ 10 perechi și mismatch ≤ 10% → adăugă: ✅ P4 PASS: mismatch ≤ 10% pe câmpuri core.
  6. NU edita CSV. NU regenera MD. Citire pură.

Reguli

  • Read-only. Această comandă nu scrie nimic.
  • Output-ul scriptului e ground truth — nu inventezi numere; doar le citești și aplici regulile STOPPING_RULE.
  • calitate e descriptor biased post-outcome (vezi STOPPING_RULE.md §3) — raportul îl afișează informational only. NU sugera user-ului să folosească calitate ca filtru pentru GO LIVE.
  • Highlight-ul 🚀 STOPPING RULE e doar trigger pentru discuție; decizia GO LIVE rămâne a user-ului, cu caveats-urile semnate în STOPPING_RULE.md.