TIP: PRET
CHEIE: fereastra
TITLU: Fereastra de 3 candele — DA (valid) vs. NU (expirat)
MARCAJ .md: <!-- DIAGRAMA: fereastra --> (Nivel 1, §1.2 Setup)

CE ARATĂ
Două panouri mici, unul sub altul, cu aceeași serie până la doji:
- Panoul DA: doji high 50.10 / low 49.25; bara +1 închide 49.90 (sub high); bara +2
  închide 50.40 (peste 50.10) => Buy Doji valid, intrare la close.
- Panoul NU: doji high 50.10; barele +1, +2, +3 închid 49.95, 50.05, 49.85
  (toate sub high); a 4-a bară închide 49.15, sub low-ul dojiului => setup
  mort.
Linia high-ului dojiului (50.10) e desenată pe ambele panouri, ca reper
numeric. Diferența e strict numerică, nu vizuală
(`13_strategia_3_byh.md:179-180`).

NIVELURILE ȘI ETICHETELE (cu trimitere)
- high doji = 50.10, low doji = 49.25 (low-ul e coborât de la 49.20 ca stopul
  de 49.20 din pașii 5-6 să iasă SUB low, nu exact pe el):
  `13_strategia_3_byh.md:158-167`.
- fereastra = maximum 3 candele după doji: `13_strategia_3_byh.md:151-156`.
- „setup expirat, nu intri" la lipsa confirmării: `13_strategia_3_byh.md:168-176`;
  a 4-a sub low = „setup mort": `01_buy_doji_si_strategia_mici.md:222-225`.

STRUCTURA SERIEI
Panoul DA (8 candele): close-uri [52.20, 51.40, 50.60, 49.65,
  49.60 (doji, h 50.10 / l 49.25),
  49.90 (+1), 50.40 (+2, confirmă), 50.80]
Panoul NU (9 candele): close-uri [52.20, 51.40, 50.60, 49.65,
  49.60 (doji, h 50.10 / l 49.25),
  49.95 (+1), 50.05 (+2), 49.85 (+3), 49.15 (a 4-a, sub low)]
Fitile: doji wu=0.45/wd=0.35 ca să dea exact h=50.10, l=49.25; restul
(0.15, 0.15). Serie continuă, open = close-ul precedentului.

CE VERIFICĂ GENERATORUL CU assert
1. Panoul DA: primul close > 50.10 e bara +2 (index 6 din panou), adică în
   fereastră; close[+1] <= 50.10.
2. Panoul NU: niciun close din +1..+3 nu depășește 50.10; close[+4] < 49.25.
3. Ambele doji: abs(o-c) <= 0.10*(h-l).
4. Ambele panouri au exact aceeași serie până la doji (aceleași 5 bare).
5. Distanța în pixeli de la 50.10 la 50.40 (DA) să fie > 0 și vizibil
   (scara comună pe panou).
ADNOTĂRI („ca la proști")
- ZONĂ albastră peste barele +1..+3 pe ambele panouri, etichetă
  „fereastra: 3 candele".
- Panoul DA: săgeată pe +1 („aici NU intri: s-a închis sub 50.10 / semnalul cere
  o ÎNCHIDERE peste"); săgeată din dreapta pe close-ul barei +2 („AICI INTRI, la
  close 50.40 / prima închidere peste / high-ul dojiului").
- Panoul NU: săgeată pe +3 („a treia s-a închis tot sub 50.10 / fereastra s-a
  terminat: ștergi setup-ul"); săgeată pe a 4-a („a închis sub low-ul dojiului /
  setup mort — nu mai intri").
- Liniile 50.10 și 49.25 și etichetele lor se desenează de mână, nu cu `Level`:
  eticheta din `Level` stă lipită de linie, la dreapta, și cade peste candele.
  Eticheta lui 50.10 e pe trei rânduri, jos-stânga: „high-ul dojiului 50.10 /
  trebuie ÎNCHIS peste, / nu doar atins".

STIL: două `Chart`-uri în două grupuri `<g transform>`; scale=60, gap=40,
body_w=13, left=64, width=640, fără vol_h (nu se vorbește de volum aici).
Titluri „DA — confirmare la +2, în fereastră" / „NU — nicio confirmare în 3
candele". Randare cu `ch._render()` (vezi nota din buy_doji_trend.spec.txt).
Fără linie goală în SVG. Generatorul verifică singur că nicio etichetă nu iese
din pânză și că două etichete din același panou nu se suprapun.
