buy_doji: graficul TF-ului mic devine lupa pe candelele TF-ului mare

Userul nu putea vedea ce bucata din weekly e reprezentata de daily. In
perechi_tf si directie, graficul mic nu mai e o serie care vine dupa cel
mare, ci descompunerea lui reala: o candela mare = k candele mici, cu
open, close, max(high) si min(low) care coincid, verificat bara cu bara
prin assert. k per pereche: 5 zile/saptamana, 4 saptamani/luna, 7 bare
de 60 min/zi.

Corespondenta se vede: caseta de lupa peste exact candelele marite,
ghidaje catre colturile cadrului mic, si nivelul-cheie desenat ca aceeasi
linie pe ambele panouri, cu acelasi numar de ambele parti. Interdictia
"eticheta unui panou nu poate numi pretul celuilalt" capata o exceptie
explicita pentru nivelurile comune, cu assert propriu ca numarul apare
identic pe ambele panouri.

Pullback-ul si momentul intrarii sunt acum etichetate pe desen, nu doar
in text. Toate cifrele recalculate din serii.

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-20 11:42:29 +00:00
parent e9ae7e4695
commit 7beb3d42fe
8 changed files with 1702 additions and 1316 deletions

View File

@@ -1,69 +1,113 @@
SPEC DIAGRAMĂ — buy_doji_directie
=================================
tip: PRET, două panouri stivuite (sus weekly mic, jos daily)
tip: PRET, două panouri stivuite (sus weekly, jos daily) legate prin zoom
destinație: summaries/17_STRATEGII/01_buy_doji.md, Pasul 2, după perechi_tf
cheie markdown: <!-- DIAGRAMA: directie -->
titlu SVG: „NU: Sell Doji daily contra unui Buy Doji weekly — exemplu construit"
stil: candele lipite (gap 15-18, body_w 9-10), fără volum; open = close anterior.
stil: candele lipite (weekly gap 16, daily gap 18, body_w 9), fără volum;
open = close anterior pe ambele panouri.
CE TREBUIE SĂ DEMONSTREZE
-------------------------
Pe weekly s-a confirmat un Buy Doji. Pe daily, în uptrend-ul care urmează,
apare un Sell Doji tehnic valid. Ca poziție short e contra direcției
weekly: prețul scade o zi, apoi urcă și lovește SL-ul. Zona „short de 1-2
zile" e marcată separat, ca să se vadă diferența dintre un short scurt
înăuntrul structurii și o poziție contra ei.
apare un Sell Doji tehnic valid. Ca poziție short e contra direcției weekly:
prețul scade o singură zi, apoi urcă și lovește SL-ul a patra zi.
SERIA — panoul de sus (weekly, 10 bare, (o,h,l,c))
--------------------------------------------------
Close-uri: 88.0, 86.2, 84.9, 83.1, 81.6, 80.2, 78.9 (bara 0 open 89.0,
fitile 0.15 peste/sub corp), apoi:
7 doji (78.90, 79.80, 77.60, 78.80)
8 confirm (78.80, 81.60, 78.60, 81.30)
9 (81.30, 82.70, 81.10, 82.40)
Mark(7, "doji weekly"), Mark(8, "Buy Doji weekly: direcția = long").
În plus (cerut de user, 20.09.2026): trebuie să se vadă **care bucată din
weekly e mărită jos**. Deci panoul daily nu e o serie separată, ci
descompunerea reală a ultimelor 3 bare weekly, iar corespondența e desenată.
SERIA — panoul de jos (daily, 17 bare, (o,h,l,c))
-------------------------------------------------
Barele 0-8, close-uri 81.7, 82.2, 82.0, 82.6, 83.1, 83.5, 83.3, 83.9, 84.4,
open[0] = 81.30, fitile 0.15 peste/sub corp (uptrend de 9 candele).
9 doji (84.40, 84.80, 83.95, 84.35)
10 confirmare (84.35, 84.45, 83.45, 83.60) close < low doji 83.95 => Sell Doji
11 (83.60, 83.70, 83.00, 83.20)
12 (83.20, 84.00, 83.10, 83.90)
13 (83.90, 84.70, 83.80, 84.60)
14 (84.60, 85.25, 84.50, 85.10) <- high 85.25 >= SL 84.80
15 (85.10, 85.75, 85.00, 85.60)
16 (85.60, 86.30, 85.50, 86.10)
CORESPONDENȚA PANOURILOR (partea nouă)
--------------------------------------
1. AGREGARE REALĂ, nu ilustrativă. Seria daily are 15 bare = 3 săptămâni x 5
zile. Ultimele 3 bare weekly NU sunt scrise de mână: se calculează cu
agg(zile) = (open-ul primei zile, max high, min low, close-ul ultimei zile).
Un al doilea set de assert-uri reverifică relația pe valorile finale.
2. DREPTUNGHI DE ZOOM pe panoul weekly peste exact barele 9..11 (albastru
#1a5fb4, fill 0.07, contur punctat), pe toată înălțimea panoului, cu
eticheta „ultimele 3 săptămâni, mărite jos" în dreapta lui.
3. DOUĂ GHIDAJE punctate de la colțurile de jos ale dreptunghiului la
colțurile de sus ale cadrului panoului daily (cadrul daily e desenat
explicit, punctat, în aceeași culoare) — pâlnia de mărire.
4. ETICHETE S1/S2/S3: pe weekly, sub fiecare din cele 3 bare mărite; pe daily,
sub fiecare grup de 5 zile, centrat. Aceleași etichete, aceeași culoare.
5. NIVELURI COMUNE: high-ul (83.90) și low-ul (83.05) ale doji-ului
daily se desenează ca aceeași linie punctată albastră pe AMBELE panouri,
cu numărul etichetat în gutter-ul din stânga (x=40, anchor end) la aceeași
distanță de marginea stângă pe ambele panouri.
SERIA — panoul de jos (daily, 15 bare, (o,h,l,c)) — SURSA ADEVĂRULUI
--------------------------------------------------------------------
Barele 0-5: trend(81.30, [81.70, 82.20, 82.00, 82.60, 83.10, 83.50]), fitile 0.15.
6 (83.50, 84.30, 83.40, 83.60) zi de respingere sus — dă high-ul de referință
7 doji (83.60, 83.90, 83.05, 83.55)
8 confirmare (83.55, 83.65, 82.60, 82.70) close < low doji 83.05 => Sell Doji
9 (82.70, 82.80, 82.00, 82.25) singura zi de scădere
10 (82.25, 83.05, 82.15, 82.95)
11 (82.95, 83.70, 82.85, 83.60)
12 (83.60, 84.45, 83.50, 84.30) <- high 84.45 >= SL 84.35
13 (84.30, 84.95, 84.20, 84.80)
14 (84.80, 85.45, 84.70, 85.30)
SERIA — panoul de sus (weekly, 12 bare)
---------------------------------------
Barele 0-6: trend(89.0, [88.0, 86.2, 84.9, 83.1, 81.6, 80.2, 78.9]), fitile 0.15.
7 doji (78.90, 79.80, 77.60, 78.80)
8 confirm (78.80, 81.60, 78.60, 81.30) => Buy Doji weekly, close 81.30
9 S1 = agg(zilele 0..4) = (81.30, 83.25, 81.15, 83.10)
10 S2 = agg(zilele 5..9) = (83.10, 84.30, 82.00, 82.25)
11 S3 = agg(zilele 10..14) = (82.25, 85.45, 82.15, 85.30)
Daily începe exact la close-ul confirmării weekly (81.30 = open-ul zilei 0).
NIVELURI (panoul daily)
-----------------------
intrare short 83.60 (portocaliu), stop 84.85 roșu („stop 84.85 = 5 cenți peste
high-ul de 4 candele"), ținta 82.35 punctată („neatinsă — a scăzut o zi, la 83.00").
Stopul e 5 cenți peste extremă, ca oglinda pasului 5 din capitol (51.60 -> 51.55).
Paranteza „short de 1-2 zile: permis" a fost scoasă (nuanță de nivel 3, încărca
pasul mecanic), la fel și insignele de colț — locul lor îl iau săgețile.
intrare short 82.70 (portocaliu), stop 84.35 roșu, ținta 81.05 = 1R punctată
(neatinsă — a scăzut o zi, până la 82.00). Stopul e 5 cenți peste high-ul
ultimelor 4 candele (max = 84.30 la bara 6), ca oglinda pasului 5 din capitol.
Risc 1.65; SL−intrare și intrare−TP1 sunt egale și în px (assert).
Distanțele stop↔high-doji și intrare↔low-doji sunt ținute > 0.30 printr-un
assert, altfel etichetele lor s-ar suprapune la 40 px/unitate.
SĂGEȚI (format tutorial v2: ce ȘI de ce, 1 pe weekly + 2 pe daily)
- weekly, spre confirmare: „weekly: Buy Doji confirmat (close 81.30, peste
high-ul doji-ului 79.80)" / „deci direcția permisă e LONG: pe daily cauți
doar Buy Doji".
- daily, spre close-ul confirmării: „aici ai intrat SHORT, la 83.60: Sell Doji
corect ca formă (close sub low-ul doji-ului 83.95) — dar contra weekly-ului".
- daily, spre bara 14 pe linia stopului: „aici te-a scos: stopul 84.85, lovit a
patra zi" / „banii mari de pe weekly cumpără mai departe".
- weekly: „Buy Doji confirmat (close 81.30, peste high-ul doji-ului 79.80)" /
„deci direcția permisă e LONG: pe daily cauți doar Buy Doji".
- daily, spre close-ul confirmării: „aici ai intrat SHORT, la 82.70: Sell Doji
corect ca formă" / „(close sub low-ul doji-ului 83.05) — dar contra
weekly-ului" / „a scăzut o singură zi, până la 82.00".
- daily, spre bara 12 pe linia stopului: „aici te-a scos: stopul 84.35 (5 cenți
peste high-ul de 4 candele)," / „lovit a 4-a zi — banii mari de pe weekly
cumpără mai departe".
Zone: verde peste doji-ul + confirmarea weekly, portocalie peste Sell Doji-ul
daily (portocaliu, nu roșu, ca să nu se confunde cu linia stopului).
Lățime 900 (textele săgeților stau în dreapta candelelor).
daily. Lățime 900.
ASSERT-URI
----------
1. open[i] == close[i-1] pe ambele panouri; h/l cuprind o/c.
2. Doji weekly și doji daily: abs(o-c) <= 0.10*(h-l).
3. weekly close[8] > high[7]; daily close[10] < low[9].
4. SL == max(h for bare daily 7..10) + 0.05 == 84.85; risc == 1.25; TP1 == 82.35.
5. min(l for bare daily 11..16) == 83.00 > 82.35 (TP1 neatins).
6. primul i>10 cu high >= 84.85 este 14.
2. Agregarea: pentru fiecare k, weekly[9+k] == agg(daily[5k:5k+5]) — open,
close, max(high), min(low), verificate separat.
3. daily[0].open == weekly[8].close.
4. Doji weekly și doji daily: abs(o-c) <= 0.10*(h-l).
5. weekly close[8] > high[7]; daily close[8] < low[7].
6. SL == max(h for daily 5..8) + 0.05 == 84.35; risc == 1.65; TP1 == 81.05.
7. SL − high_doji > 0.30 și low_doji − intrare > 0.30 (anti-suprapunere).
8. min(l for daily 9..14) == 82.00 > 81.05 (TP1 neatins).
9. primul i>8 cu high >= 84.35 este 12.
10. SL−intrare == intrare−TP1 în pixeli.
11. NICIUN NUMĂR SCRIS DE MÂNĂ: fiecare text emis e etichetat cu panoul lui
(weekly / daily / common / none); după desen, orice token \d+\.\d\d din
orice etichetă trebuie să fie în mulțimea derivată a panoului respectiv.
Eticheta unui panou nu poate conține prețul celuilalt panou; excepția e
mulțimea „common" (high/low doji daily), permisă pe ambele.
12. Fiecare nivel comun apare cu EXACT același șir de două zecimale de două
ori (o dată pe fiecare panou).
13. Fără linii goale în SVG.
VERIFICARE VIZUALĂ (20.09.2026)
-------------------------------
Randat cu chrome headless, citit ca imagine: pâlnia de ghidaje arată clar
cele 3 săptămâni mărite; 83.90 și 83.05 sunt aceeași linie, cu același număr,
pe ambele panouri; niciun text nu se suprapune și nimic nu iese din viewBox.
audit_diagrams.py: curat.
SURSA
-----