strategii: anexa A3, candela de intrare — la close sau la retest

Ambele variante, una langa alta, fara sa aleaga: intrarea la close-ul
candelei de trigger (regula strategiilor mecanice) si intrarea la
retestul 1/2-1/3 (rostita pentru buy doji si pentru breakout-ul de
consolidare). Contradictia e deja triata, A2 randul 17.

Nivel 2 e studiul de caz al userului: semnal la suport weekly executat
pe 15 minute, candela verde mare, candela rosie mare, apoi trend.

Agentul a corectat patru puncte din brief, verificate: pe chart de 15
min se folosesc pivotii weekly (03_timeframes_set_up.md:72-78), deci
nivelul era pe timeframe-ul corect; golul ramane doar ca nicio pereche
M2D nu leaga weekly de 15 min.

Diagramele: cele trei .spec.txt sunt scrise, SVG-urile inca nu.
substituie.py prinde acum si anexele.

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-19 17:00:18 +00:00
parent 223056e635
commit 35d252aa75
5 changed files with 643 additions and 2 deletions

View File

@@ -0,0 +1,91 @@
SPEC DIAGRAMĂ — intrarea_cazul_lui
========================================
tip: PRET
destinație: summaries/17_STRATEGII/A3_intrarea.md, Nivel 2 → 2.1 „Ce s-a întâmplat, candelă cu candelă"
cheie markdown: <!-- DIAGRAMA: cazul_lui -->
generator: gen/strategii/intrarea_cazul_lui.py (de scris de agentul de diagrame)
stil: grafic real, STYLE.md §„Cum trebuie să arate un grafic de preț":
34 de candele lipite (gap 15-18, body_w 9-10), from_closes,
două medii mobile (SMA 5 și SMA 10, calculate din close-uri),
fără panou de volum.
titlu: „Exemplu construit (fără ticker) — 15 min, suport weekly"
ATENȚIE: substituie.py caută doar în 0[1-8]_*.md; A3 nu e prins de glob.
CE ARATĂ
--------
Trade-ul userului, reconstruit din descriere: downtrend pe 15 min până la un
suport weekly, săgeata de buy momentum pe o candelă verde mare, intrare la
close, imediat o candelă roșie mare care acoperă 83% din corpul verzii,
apoi trendul crescător; ieșirea userului pe plus, înainte de TP1; vârful
de după. Pe același grafic, unde s-ar fi umplut un ordin la 1/2 (varianta B).
STRUCTURA SERIEI (34 de candele, close-uri)
-------------------------------------------
Faza 1, 0-10 — downtrend:
103.80, 103.50, 103.60, 103.20, 102.90, 103.00, 102.60, 102.30, 101.90, 101.40, 101.00
candela 10: low 100.80.
Faza 2, 11-13 — la suportul weekly:
100.70 (low 100.40), 100.45 (low 99.90, wick sub 100.00), 100.30 (low 100.10)
Faza 3, 14 — SEMNAL buy momentum, candela verde mare:
open 100.30, close 102.10, high 102.25, low 100.20
Faza 4, 15 — candela roșie mare:
open 102.10, close 100.60, high 102.20, low 100.50
Faza 5, 16-18 — revenire: 101.10, 101.60, 101.90
Faza 6, 19 — ieșirea userului: close 102.60
Faza 7, 20-33 — trend:
102.90, 102.70, 103.20, 103.60, 103.40, 103.90, 104.20, 104.10, 104.60, 104.90, 104.70, 105.00, 105.20, 105.00
candela 31 (close 105.20) are high 105.20 = maximul seriei; toate celelalte high-uri < 105.20.
NIVELURI (Level)
----------------
suport weekly 100.00 gri, „suport weekly 100.00"
SL 99.90 roșu, „SL 99.90 (low 4 candele)"
intrare A 102.10 verde, „intrare la close 102.10"
1/2 din corp 101.20 portocaliu punctat, „1/2 = 101.20 (B s-ar fi umplut aici)"
TP1 A 104.30 albastru, „TP1 104.30 (1:1)"
(1/3 = 101.50 și TP1 B = 102.50 doar în legendă, ca să nu aglomereze)
MARKS
-----
Mark(12, "suport weekly", gri, below)
Mark(14, "▲ buy momentum", verde, above)
Mark(15, "roșie mare: −0.68R flotant", roșu, below)
Mark(19, "ieși aici: 102.60 = +0.23R", portocaliu, above)
Mark(31, "vârf 105.20 = +1.41R", gri, above)
MEDII MOBILE
------------
SMA 5 și SMA 10, ILUSTRATIVE. Lungimile reale ale celor două medii ale
indicatorului nu apar în transcrierea lecției 10. Etichetă mică:
„SMA 5 / SMA 10 ilustrative". Generatorul CALCULEAZĂ și pune în eticheta
lui Mark(15) sau într-o notă: „close-ul roșiei: sub ambele MA" — doar dacă
assert-ul 7 trece; textul din A3 §2.1 afirmă exact asta.
LEGENDĂ
-------
„Exemplu construit, fără ticker. Prețurile, mediile mobile și ieșirea sunt
ilustrative; secvența (verde mare → roșie mare → trend) e cea descrisă de
user. Varianta B (ordin la 1/2 = 101.20, risc 1.30, TP1 102.50) e aritmetică
pe aceleași cifre, nu un trade din curs."
ASSERT-URI OBLIGATORII ÎN GENERATOR
-----------------------------------
1. Fiecare open == close-ul barei anterioare.
2. SL == min(c.l for c in cds[10:14]) == 99.90; cds[14].l > SL; cds[15].l > SL
(roșia nu atinge stopul).
3. cds[14].c > cds[14].o și cds[15].c < cds[15].o.
4. (cds[15].o - cds[15].c) / (cds[14].c - cds[14].o) ≈ 0.83 (1.50/1.80), toleranță 0.01.
5. half = (cds[14].o + cds[14].c)/2 == 101.20; cds[15].l <= half.
6. risc A = 102.10 - 99.90 = 2.20; TP1 A = 104.30;
flotant la close-ul roșiei = (100.60-102.10)/2.20 = -0.68 (2 zecimale);
ieșire (cds[19].c - 102.10)/2.20 = +0.23; vârf (105.20 - 102.10)/2.20 = +1.41.
7. SMA5 și SMA10 la bara 14: cds[14].c > ambele; la bara 15: cds[15].c < ambele.
(Cu close-urile de mai sus: bara 15 → SMA5 = 100.83, SMA10 = 101.335.)
8. cds[19].c < TP1 A (ieșirea e înainte de TP1); max(c.h) == 105.20.
SURSA
-----
- Pivoți weekly pe chartul de 15 min: transcripts/03_MODUL_2/03_3_TIMEFRAMES_SET_UP.txt:268-270.
- Stop 4 candele, TP1 1:1: 03_MODUL_2/13_strategia_3_byh.md:192-195.
- Medii mobile ca suport după buy: transcrierea lecției 10, :67-68.
- Tot restul (cifre, ieșire, lungimi MA) e CONSTRUIT; nu sunt cifrele reale ale userului.

View File

@@ -0,0 +1,95 @@
SPEC DIAGRAMĂ — intrarea_doua_variante
========================================
tip: PRET
destinație: summaries/17_STRATEGII/A3_intrarea.md, Nivel 0 → „Un semnal îți spune ce, nu când"
cheie markdown: <!-- DIAGRAMA: doua_variante -->
generator: gen/strategii/intrarea_doua_variante.py (de scris de agentul de diagrame)
stil: grafic real, STYLE.md §„Cum trebuie să arate un grafic de preț":
32 de candele lipite (gap 15-18, body_w 9-10), open = close-ul barei
anterioare (from_closes), fără panou de volum (textul nu vorbește de volum).
Referința de copiat: gen/exemplu_grafic_real.py.
titlu: „Exemplu construit (fără ticker) — 15 min"
ATENȚIE: substituie.py caută doar în 0[1-8]_*.md; A3 nu e prins de glob.
Slug-ul ar fi „intrarea" (A3_intrarea.md -> intrarea), deci SVG-ul
se scrie ca gen/strategii/intrarea_doua_variante.svg.
CE ARATĂ
--------
Același setup, cu cele două intrări pe același grafic: intrarea la close-ul
candelei de semnal (varianta A) și intrarea la retestul de 1/2 și 1/3 din
corpul ei (varianta B). Un singur stop, comun, și trei paranteze de risc
(close→stop, 1/3→stop, 1/2→stop), desenate ca bare verticale în dreapta,
la aceeași scară cu prețul.
De ce un singur stop, nu două: materialul spune că la intrarea pe retesturi
stopul rămâne unul singur, sub structură (01_buy_doji_si_strategia_mici.md:808-810).
Diferența de risc vine din intrare, nu din stop.
STRUCTURA SERIEI (32 de candele, close-uri)
-------------------------------------------
Faza 1, 0-11 — downtrend spre suport:
103.60, 103.35, 103.45, 103.10, 102.80, 102.90, 102.50, 102.20, 101.85, 101.95, 101.50, 101.10
Faza 2, 12-14 — la suport:
100.60, 100.40, 100.35
candela 13: low 99.90 (wick sub suportul de 100.00). Restul low-urilor din 11-14 > 99.90.
Faza 3, 15 — CANDELA DE SEMNAL (verde mare):
open 100.35, close 102.15, high 102.30, low 100.25
Faza 4, 16-18 — retest:
close 101.70 (low 101.50 → atinge 1/3 = 101.55),
close 101.40 (low 101.20 → atinge 1/2 = 101.25),
close 101.60
Faza 5, 19-31 — urcare:
102.00, 102.40, 102.30, 102.80, 103.20, 103.00, 103.50, 103.90, 104.20, 104.10, 104.50, 104.80, 105.00
Wick-uri mici (0.10-0.20) pe restul, fără să atingă nivelurile de mai sus
în afara candelelor indicate.
NIVELURI (Level)
----------------
suport 100.00 gri, „suport 100.00"
SL comun 99.90 roșu, „SL 99.90 = low-ul ultimelor 4 candele (comun A și B)"
A: intrare close 102.15 verde, „A: intrare la close 102.15"
B: 1/3 din corp 101.55 portocaliu, „B: 1/3 = 101.55"
B: 1/2 din corp 101.25 portocaliu, „B: 1/2 = 101.25"
TP1 A (1:1) 104.40 albastru, „TP1 A 104.40"
TP1 B la 1/2 102.60 albastru punctat, „TP1 B (1/2) 102.60"
(TP1 B la 1/3 = 103.20 se pune doar dacă nu aglomerează; altfel doar în legendă)
PARANTEZE DE RISC (dreapta graficului, la aceeași scară px/unitate)
------------------------------------------------------------------
A : 102.15 → 99.90 = 2.25 „risc A 2.25 → 22 acțiuni la 50 $"
1/3 : 101.55 → 99.90 = 1.65 „risc B 1/3 1.65 → 30 acțiuni"
1/2 : 101.25 → 99.90 = 1.35 „risc B 1/2 1.35 → 37 acțiuni"
MARKS
-----
Mark(13, "suport atins", gri, below)
Mark(15, "semnal: candela verde mare", verde, above)
Mark(16, "atinge 1/3", portocaliu, below)
Mark(17, "atinge 1/2", portocaliu, below)
LEGENDĂ (sub SVG, sau text în SVG)
----------------------------------
„Exemplu construit, fără ticker. Cifrele nu vin din curs. Risc permis 50 $
(0,5% din 10.000 $)."
ASSERT-URI OBLIGATORII ÎN GENERATOR
-----------------------------------
1. Fiecare open == close-ul barei anterioare.
2. cds[15].o == 100.35, cds[15].c == 102.15 (candela de semnal).
3. SL == min(c.l for c in cds[11:15]) == 99.90; și cds[15].l > SL.
4. half == (cds[15].o + cds[15].c)/2 == 101.25; third == cds[15].c - (cds[15].c-cds[15].o)/3 == 101.55.
5. min(c.l for c in cds[16:19]) <= half și cds[16].l <= third (ambele ordine se umplu).
6. Riscurile: 2.25, 1.65, 1.35 (abs < 1e-6); acțiuni = floor(50/risc) = 22, 30, 37.
7. TP1 = intrare + (intrare - SL): 104.40 (A), 102.60 (1/2), 103.20 (1/3).
8. Scara: raportul lungimilor în pixeli al celor trei paranteze == raportul
riscurilor în preț (2.25 : 1.65 : 1.35), toleranță 1%.
9. max(c.h for c in cds) >= 104.40 (TP1 A e atins în serie).
SURSA
-----
- Stop la extrema ultimelor 4 candele: 03_MODUL_2/13_strategia_3_byh.md:192-193.
- TP1 1:1: 03_MODUL_2/13_strategia_3_byh.md:194-195.
- Nivelurile de retest 1/3, 1/2: 08_ANALIZA_ZILNICA/03_locul_crimei_si_pullback.md:186-192;
transcripts/09_Q_and_A/20_25082025.txt:199, 207-208.
- Stop unic la intrarea pe retest: 08_ANALIZA_ZILNICA/01_buy_doji_si_strategia_mici.md:808-810.
- Seria de preț e CONSTRUITĂ (fără ticker), nu un trade din curs.

View File

@@ -0,0 +1,63 @@
SPEC DIAGRAMĂ — intrarea_retest_ratat
========================================
tip: PRET
destinație: summaries/17_STRATEGII/A3_intrarea.md, Gotchas → „Pullback-ul poate să nu mai vină"
cheie markdown: <!-- DIAGRAMA: retest_ratat -->
generator: gen/strategii/intrarea_retest_ratat.py (de scris de agentul de diagrame)
stil: grafic real, STYLE.md §„Cum trebuie să arate un grafic de preț":
32 de candele lipite (gap 15-18, body_w 9-10), from_closes, fără volum.
titlu: „Exemplu construit (fără ticker) — 15 min"
ATENȚIE: substituie.py caută doar în 0[1-8]_*.md; A3 nu e prins de glob.
CE ARATĂ
--------
Pereche NU pentru diagrama doua_variante: ACEEAȘI serie până la candela de
semnal inclusiv (candelele 0-15 identice), apoi prețul nu mai coboară în
corpul candelei. Ordinele de la 1/2 și 1/3 rămân neumplute; prețul pleacă
fără tine. Plus locul unde NU muți ordinul.
STRUCTURA SERIEI (32 de candele, close-uri)
-------------------------------------------
0-15: identice cu intrarea_doua_variante (inclusiv low 99.90 pe 13 și
semnalul 15: open 100.35, close 102.15, high 102.30, low 100.25).
16-31 — plecare fără pullback adânc:
102.40, 102.70, 102.55, 102.95, 103.30, 103.20, 103.60, 104.00,
103.85, 104.30, 104.70, 104.60, 105.10, 105.40, 105.30, 106.00
low-ul candelei 16 = 101.90; toate low-urile din 16-31 >= 101.80.
NIVELURI (Level)
----------------
SL 99.90 roșu, „SL 99.90"
1/2 din corp 101.25 portocaliu punctat, „ordin 1/2 101.25 — neumplut"
1/3 din corp 101.55 portocaliu punctat, „ordin 1/3 101.55 — neumplut"
close semnal 102.15 verde punctat, „A: close 102.15"
MARKS
-----
Mark(15, "semnal", verde, above)
Mark(16, "cel mai jos după semnal: 101.90", gri, below)
Mark(23, "NU muți ordinul aici: sub 104.00 nu e niciun nivel", roșu, above)
Mark(31, "A: +1.7R · B: 0 (fără poziție)", gri, above)
LEGENDĂ
-------
„Exemplu construit, fără ticker. «Poate să nu mai facă, poate nu mai face
niciodată.» Ai ratat trade-ul; aștepți următoarea structură."
ASSERT-URI OBLIGATORII ÎN GENERATOR
-----------------------------------
1. Fiecare open == close-ul barei anterioare.
2. Barele 0-15 identice (o, h, l, c) cu seria din intrarea_doua_variante
(importă sau copiază aceeași listă; assert pe egalitate).
3. min(c.l for c in cds[16:]) > 101.55 (niciun ordin nu se umple).
4. cds[31].c == 106.00; (106.00 - 102.15)/(102.15 - 99.90) == 1.71 (2 zecimale),
eticheta afișează „+1.7R".
5. cds[23].c == 104.00 (unde e marcat ordinul mutat) și niciun low din
17-23 nu e un nivel marcat (nu desenezi un „suport" acolo).
SURSA
-----
- Pullback-ul care nu vine, nu muți ordinul, citatul:
08_ANALIZA_ZILNICA/03_locul_crimei_si_pullback.md:11-12, 296-311.
- Nivelurile 1/3, 1/2: 08_ANALIZA_ZILNICA/03_locul_crimei_si_pullback.md:186-192.
- Seria e CONSTRUITĂ (fără ticker), nu un trade din curs.

View File

@@ -14,12 +14,12 @@ import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent.parent
CAPITOLE = sorted((ROOT / "summaries" / "17_STRATEGII").glob("0[1-8]_*.md"))
CAPITOLE = sorted((ROOT / "summaries" / "17_STRATEGII").glob("[0A][1-8]_*.md"))
MARCAJ = re.compile(r"^[ \t]*<!-- DIAGRAMA: ([a-z0-9_]+) -->[ \t]*$", re.M)
def slug(cale: Path) -> str:
"""01_buy_doji.md -> buy_doji"""
"""01_buy_doji.md -> buy_doji; A3_intrarea.md -> intrarea"""
return cale.stem.split("_", 1)[1]