SPEC DIAGRAMĂ — buy_doji_ansamblu
=================================
tip:            PRET (un singur panou, cu volum)
destinație:     summaries/17_STRATEGII/01_buy_doji.md, nivelul 1 („tot trade-ul")
cheie markdown: <!-- DIAGRAMA: ansamblu -->
titlu SVG:      „Buy Doji — un trade de la cap la coadă (daily, exemplu construit)"
rol:            SURSA UNICĂ a seriei. buy_doji_stop, buy_doji_transe și
                buy_doji_iesire importă `serie()` din generatorul ăsta, ca
                toate patru să arate ACELAȘI trade.

TRADE-UL (aceleași cifre în toate cele patru diagrame)
------------------------------------------------------
doji (bara 14): high 50.10, low 49.25
bara 15 (+1):   close 49.90, sub 50.10 — NU confirmă
bara 16 (+2):   close 50.40 — confirmare => INTRARE 50.40
cel mai jos low din ultimele 4 candele (13-16): 49.25 (al doji-ului)
STOP: 49.20 (5 cenți sub);  1R = 1.20;  ȚINTA 1: 51.60 (atinsă la bara 19)
trailing stop: 51.95 (gap la bara 21) → 52.60 (gap la bara 27)
ieșire: close 52.30 la bara 28 = +1.58R

STRUCTURA SERIEI (32 bare, 0-indexate)
--------------------------------------
Barele 0-19 din close-uri, open = close-ul precedentului, fitile (0.25, 0.30),
cu excepțiile: 14 (0.45, 0.35) → high 50.10 / low 49.25; 15 și 16 (0.15, 0.15).
close-uri 0-19: 60.20, 59.20, 59.60, 58.40, 57.30, 57.70, 56.50, 55.40, 55.80,
54.70, 53.50, 52.30, 51.00, 49.65, 49.60, 49.90, 50.40, 50.90, 51.20, 51.50.
Barele 20-28 date explicit (o, h, l, c) — 21 și 27 deschid cu GAP, fiindcă
regula de trail cere o bară cu low peste high-ul precedentei:
20 (51.50, 51.85, 51.40, 51.75)
21 (52.00, 52.30, 51.95, 52.20)  GAP: low 51.95 > high[20] 51.85 → trail 51.95
22 (52.20, 52.45, 52.05, 52.35)
23 (52.35, 52.40, 52.00, 52.10)  retragere, close peste trail: rămâi în trade
24 (52.10, 52.50, 52.05, 52.40)
25 (52.40, 52.55, 52.25, 52.50)
26 (52.50, 52.55, 52.35, 52.45)
27 (52.70, 53.10, 52.60, 52.95)  GAP: low 52.60 > high[26] 52.55 → trail 52.60
28 (52.95, 53.00, 52.20, 52.30)  close sub 52.60: IEȘIRE
Barele 29-31 din close-uri 52.00, 51.80, 51.90 (fitil 0.25).
Volum: peste media seriei pe doji (14) și pe confirmare (16), altfel normal.
Valorile de volum sunt alese de generator (materialul nu le dă).

ADNOTĂRI (formatul tutorial v2: zone + săgeți cu CE și DE CE)
-------------------------------------------------------------
4 zone dreptunghiulare: „1. scăderea: vânzătorii obosesc" (4-13),
„2. doji: pauză, încă nu intri" (14-15), „3. confirmarea" (16),
„4. ieșirea: o treime la țintă, restul pe trail" (17-28).
5 săgeți: stopul 49.20; „AICI INTRI, la close 50.40"; ținta 1 = riscul;
trailing stop (urcă la fiecare gap); ieșirea la 52.30 (+1.58R).
Două paranteze verticale egale: 49.20→50.40 „1R = 1.20 (riscul)" și
50.40→51.60 „1R = 1.20 (ținta)" — așa se vede 1:1.
Linia de trail e desenată în trepte (un Level ar trage-o pe toată lățimea,
inclusiv înainte să existe).

CE VERIFICĂ GENERATORUL CU assert
---------------------------------
1. h/l cuprind o/c pe toate barele; open[i] == close[i-1] peste tot în afară
   de barele de gap 21 și 27.
2. doji: high 50.10, low 49.25, corp <= 10% din amplitudine.
3. close[15] <= 50.10 < close[16]; close[16] == 50.40 (fereastra are sens).
4. min(low[13:17]) == 49.25; 49.25 - 0.05 == 49.20; 50.40 - 49.20 == 1.20;
   50.40 + 1.20 == 51.60.
5. primul high >= 51.60 după intrare e bara 19.
6. regula de trail, calculată pe serie, dă exact [(21, 51.95), (27, 52.60)]
   și ieșire la bara 28, close 52.30; 52.60 > intrare (ieșire pe profit).
7. (52.30 - 50.40) / 1.20 == 1.58.
8. volum peste medie pe 14 și 16.
9. downtrend: close[13] < close[0] - 10.

SURSA
-----
- Doji 50.10/49.20 și intrarea la close-ul confirmării: summaries/03_MODUL_2/
  13_strategia_3_byh.md:90, :158-167. Low-ul doji-ului e coborât aici la 49.25,
  ca stopul de 49.20 să fie SUB el, nu exact pe el (decizie de redactare).
- SL = extrema ultimelor 4 candele: :192-193. Ținta 1:1: :194-195.
- Trail pe gap și ieșire la close sub linie: :196-200.
- Barele de după intrare sunt CONSTRUITE.
