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:
80
.opencode/agents/grafician.md
Normal file
80
.opencode/agents/grafician.md
Normal 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.
|
||||
51
gen/strategii/substituie.py
Normal file
51
gen/strategii/substituie.py
Normal 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
106
strategii/00_harta.md
Normal 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.
|
||||
Reference in New Issue
Block a user