strategii: capitolul 0 (harta) si uneltele pentru diagrame

Harta e capitolul pe care il scriu eu: criteriul de ordonare a capitolelor
si tabelul 'ce alegi cand' sunt decizii de continut, nu munca de volum.

Agent nou .opencode/agents/grafician.md, unul per diagrama, ramificat pe
TIP din specificatie: PRET trece obligatoriu prin svg_candles cu assert-urile
din spec, CONCEPT nu.

Substitutia marcajelor <!-- DIAGRAMA: cheie --> o face gen/strategii/substituie.py,
nu agentii: la 37 de diagrame, altfel sapte agenti ar edita acelasi capitol.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
Claude Agent
2026-09-18 19:10:59 +00:00
parent eb6936e38a
commit af448dda69
3 changed files with 237 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
---
description: Desenează o singură diagramă din documentul de strategii, dintr-o specificație .spec.txt
mode: all
model: opencode-go/deepseek-v4.1-flash
temperature: 0.1
permission:
read: allow
glob: allow
grep: allow
list: allow
edit: allow
bash: allow
webfetch: deny
websearch: deny
task: deny
---
Lucrezi în /workspace/atm-curs-dl. Desenezi **o singură diagramă**, din
specificația pe care ți-o dă promptul: `gen/strategii/<nume>.spec.txt`.
**Fișierele tale, singurele pe care le atingi:**
- `gen/strategii/<nume>.py` — generatorul
- `gen/strategii/<nume>.svg` — rezultatul, scris de generator
Nu atingi `.spec.txt`-ul (e sursa ta, o citești), nu atingi niciun `.md`, nu
atingi generatoarele altora, nu atingi `svg_candles.py` sau `pchart.py`.
Fără `git commit`. Fără sub-agenți.
## Primul lucru: citește `TIP:` din specificație
### `TIP: PRET` — grafic de preț
Trece **obligatoriu** prin `svg_candles`. Nu desena candele de mână.
1. Citește `STYLE.md`, secțiunea „Cum trebuie să arate un grafic de preț".
2. Citește `gen/exemplu_grafic_real.py` — **ăsta e modelul de copiat**:
`from_closes(...)` cu lista de close-uri din specificație, wick-uri,
volume, `Level` pentru entry/SL/TP, `Mark` ancorat pe candelă, `MA(20)`,
panou de volum.
3. Specificația îți dă lista exactă de close-uri, wick-urile speciale și
nivelurile. **Folosește-le ca atare.** Dacă un nivel din specificație nu
iese din serie (ex. low-ul barei 27 nu e 52.60), **ajustezi seria până
iese**, nu eticheta. Eticheta e adevărul; seria o construiești tu ca să-l
susțină.
4. **Assert-urile din specificație se scriu în generator, toate, ca `assert`
reale.** Ele sunt motivul pentru care diagrama asta e de încredere. Un
generator care rulează fără ele nu e terminat.
### `TIP: CONCEPT` — diagramă conceptuală
Funnel, matrice, cadrane, coloane comparate, tabel vizual. **Nu** folosești
`svg_candles` — acolo nu sunt candele.
Formă: lățime 700, `font-family: system-ui, sans-serif`, minim 13px, text
negru pe alb, fără umbre, fără gradienți. Accente: `#777` gri, `#c00` roșu,
`#188a3e` verde, `#1a5fb4` albastru, `#b06000` portocaliu.
## Regula de conținut, valabilă pentru amândouă
**Fiecare cifră și fiecare etichetă din desen trebuie să fie în
specificație.** Un desen inventează mai ușor decât un paragraf, pentru că
arată convingător. Dacă specificația cere ceva ce nu poți desena corect, îl
lași afară și spui în raport de ce — nu improvizezi un înlocuitor.
## Verificarea, în sarcina ta
1. Rulezi generatorul. Trebuie să treacă toate assert-urile.
2. **Citești SVG-ul rezultat** și confirmi, uitându-te efectiv la el:
- fiecare etichetă are coordonate în interiorul pânzei;
- nu se suprapun două texte pe aceeași poziție;
- candelele sunt lipite, ca serie continuă, nu izolate;
- cifrele din etichete sunt cele din specificație.
3. Dacă ceva se bate, rearanjezi și rulezi din nou.
Un generator care rulează fără eroare nu e dovadă că desenul se citește.
## Raport, scurt
Ce arată diagrama, ce assert-uri au trecut, ce ai ajustat în serie ca să iasă
nivelurile, ce ai lăsat afară din specificație și de ce, și ce ai verificat
citind SVG-ul. Lista, nu povestea.

View File

@@ -0,0 +1,51 @@
"""Înlocuiește marcajele <!-- DIAGRAMA: cheie --> din strategii/*.md cu SVG-ul lui.
Substituția o face scriptul ăsta, nu agenții: la 37 de diagrame, dacă fiecare
agent ar scrie în .md-ul capitolului, șapte agenți ar edita același fișier.
Cheia din marcaj se caută ca gen/strategii/<slug>_<cheie>.svg, unde slug-ul
vine din numele capitolului (01_buy_doji.md -> buy_doji).
python3 gen/strategii/substituie.py # scrie
python3 gen/strategii/substituie.py --check # doar raportează, nu scrie
"""
import re
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent.parent
CAPITOLE = sorted((ROOT / "strategii").glob("0[1-8]_*.md"))
MARCAJ = re.compile(r"^<!-- DIAGRAMA: ([a-z0-9_]+) -->$", re.M)
def slug(cale: Path) -> str:
"""01_buy_doji.md -> buy_doji"""
return cale.stem.split("_", 1)[1]
def main() -> int:
check = "--check" in sys.argv
puse = lipsa = 0
for cap in CAPITOLE:
text = cap.read_text()
s = slug(cap)
def inlocuieste(m: re.Match) -> str:
nonlocal puse, lipsa
svg = ROOT / "gen" / "strategii" / f"{s}_{m.group(1)}.svg"
if not svg.exists():
lipsa += 1
print(f"LIPSĂ {cap.name}: {svg.name}")
return m.group(0)
puse += 1
return svg.read_text().strip()
nou = MARCAJ.sub(inlocuieste, text)
if nou != text and not check:
cap.write_text(nou)
print(f"{puse} diagrame puse, {lipsa} lipsă")
return 1 if lipsa else 0
if __name__ == "__main__":
sys.exit(main())

106
strategii/00_harta.md Normal file
View File

@@ -0,0 +1,106 @@
# 0. Harta — cum se citește documentul și ce alegi când
## Ce e documentul ăsta
Cele nouă strategii din cursul ATM, scrise ca reguli executabile, nu ca
lecții. Fiecare capitol are aceleași trei niveluri și aceeași secțiune de
transfer, ca să le poți compara între ele fără să reciteșți tot.
Sursa e materialul deja transcris și verificat din `summaries/` — fiecare
regulă, cifră și prag poartă trimiterea lui la fișier și linie. Ce nu există
în material scrie „materialul nu dă un prag aici", și rămâne așa: un prag
inventat într-un document de reguli ajunge executat cu bani reali.
## Cele trei niveluri
| Nivel | Când îl citești | Ce găsești |
|---|---|---|
| **0 — Ideea** | când deschizi capitolul prima oară, sau peste trei luni | ce ineficiență exploatează, diagrama întregului trade, fraza de decizie, când **nu** o folosești |
| **1 — Regulile** | la ecran, cu trade-ul în față | filtrul de context, setup, trigger DA/NU, SL cu motivul lui, TP și tranșe, sizing, checklist de tipărit |
| **2 — Nuanțele** | după 50 de trade-uri, când vrei să știi de ce ai pierdut | ce dă edge și **cât e confirmat**, setup A+ vs. mediocru, gotchas, contradicțiile din material, exemplul complet |
**Nivelul 1 e executabil fără 0 și fără 2.** Dacă o regulă de acolo pare să
aibă nevoie de explicație, explicația e în 2, nu lipsă.
## Cele două marcaje care contează
> **Secțiunea „Transfer" e judecata mea, nu materialul cursului.** Cursul e
> scris pentru acțiuni și futures US, pe TradeStation, cu indicatorii lui.
> Tot ce spune documentul ăsta despre prop și despre BVB e extrapolare — utilă,
> argumentată, dar de verificat înainte să pui bani pe ea.
**„cât e confirmat"**, coloana din tabelul de edge al fiecărui capitol. Vine
din `triaj/DECIZII.md`: câte loturi *independente* de sesiuni (perioade
diferite, agenți care nu s-au văzut) au găsit aceeași regulă. O regulă găsită
de 6 din 6 loturi peste 36 de zile nu cântărește cât una spusă o dată.
## Ordinea capitolelor
Nu e ordinea din curs. E ordinea în care merită să le înveți, iar criteriul
care a decis-o e unul singur:
> **Dacă regula de intrare conține un indicator proprietar, pe BVB nu-ți
> rămâne nimic.**
| Cap. | Strategie | BVB | Prop | De ce e pe locul ăsta |
|---|---|---|---|---|
| [1](01_buy_doji.md) | **Buy Doji / Sell Doji** | **da, long-only** | da | singura fără indicator proprietar în regula de intrare |
| [2](02_mp2.md) | **MP²** | **da** | parțial | autorul a explicat el însuși replicarea cu pivoți în Excel |
| [3](03_m2d.md) | **M2D** | nu | **da** | 100% mecanic, e ce rulezi deja |
| [4](04_selectia.md) | **Selecția simbolului** | parțial | da | nu e strategie, e filtrul dinaintea lor |
| [5](05_atmi.md) | **ATMI** | degradat | nu | investiție, nu trading: 10 min/trimestru |
| [6](06_hammer_mbt10.md) | **Buy hammer + MBT-10** | jumătate | parțial | hammer e standard, MBT-10 e cutie neagră |
| [7](07_mdsrt.md) | **MDSRT** | slab | parțial | Power e obligatoriu și e proprietar |
| [8](08_mbp.md) | **MBP / Mbappé** | **nu** | condiționat | TICUS = breadth pe toată piața US |
| [A1](A1_risc.md) | Risc și execuție | — | — | partea care decide dacă supraviețuiești |
| [A2](A2_contradictii.md) | Contradicțiile din material | — | — | unde cursul nu e de acord cu el însuși |
## Ce alegi când
**Vreau să încep undeva, astăzi.** → Capitolul 1, Buy Doji, pe daily. Nu are
nevoie de nimic ce nu poți reproduce, și te învață exact lucrurile pe care le
refolosesc toate celelalte: trend, nivel, confirmare la close, SL structural,
1:1 plus trail.
**Vreau să tranzacționez la BVB.** → Capitolele 1 și 2, împreună. MP² îți dă
**unde** (bottom-ul, crossing-ul, calculat în Excel), Buy Doji îți dă **când**
(trigger-ul de candelă, standard). Exact golul pe care autorul l-a numit ca
nereplicabil — trigger-ul fin — îl umple stratul de candelă.
**Sunt pe cont de prop.** → Capitolul 3 (M2D, ce rulezi acum) plus anexa A1.
Citește A1 înainte de orice altceva: limita zilnică se calculează **și pe
poziții deschise**, iar asta a costat deja pe cineva tranzacții care erau pe
profit.
**Am bani pe care nu vreau să-i tranzacționez.** → Capitolul 5, ATMI. Zece
minute o dată la trei luni. Nu e trading și nu se amestecă cu restul contului.
**Vreau să știu de ce am pierdut pe un setup care arăta bine.** → Nivelul 2 al
capitolului respectiv, secțiunea 2.2 (A+ vs. mediocru), apoi A2.
## Trei lucruri pe care materialul le spune și care contrazic intuiția
1. **Pe prop, limita zilnică se calculează și pe pozițiile deschise.** Unui
cursant i s-au închis automat tranzacții *care erau pe profit*, pentru că
pierderea flotantă atinsese limita
(`summaries/09_QA/26_2025-06-11.md:214-222`).
2. **Nu extinde TP-ul peste 1:1.** Profitul suplimentar vine din trailing, nu
din mutarea țintei fixe
(`summaries/03_MODUL_2/13_strategia_3_byh.md:319-321`).
3. **Nu adăuga filtre peste o strategie mecanică.** Orice filtru o face
discreționară, și statisticile citate pentru ea nu se mai aplică
(`summaries/09_QA/16_2025-10-07.md:83-106`). Contează direct dacă vrei să
pui selecția simbolului (capitolul 4) peste MP² (capitolul 2): atunci nu
mai e MP², e altceva, și trebuie retestat de la zero.
## Ce nu e în document
- **Formula MBT-10.** Nu e publică nicăieri în material, nici măcar
aproximativ. Capitolul 6 spune ce se poate reconstrui din ea și cât de mult
slăbește asta semnalul.
- **Cifrele complete ale backtesturilor.** Materialul citează rezultate
(39-40 de tranzacții pe SPY, win rate 72-80%) fără prețurile per tranzacție.
Nu poți reface testele, doar să-ți faci propriul eșantion.
- **Patru sesiuni de analiză zilnică nu sunt ținute de autor** (25, 26, 29 și
30 iunie 2026 — un înlocuitor). Regulile care se sprijineau doar pe zilele
alea au fost scoase din material încă de la sumarizare.