buy_doji: reparatiile din verificare (21 de puncte)
Verificarea cu agent separat a gasit doua contradictii de continut pe care auditul mecanic nu le prinde: - textul spunea ca pullback-ul "incape intr-o singura candela a TF-ului mare"; pe desen se intinde peste doua, iar prima e o saptamana rosie vizibila. Rescris: pe TF-ul mare vezi candelele, dar nu vezi ce e in ele — unde s-a oprit coborarea si doji-ul care o termina, deci n-ai unde intra si n-ai de unde masura stopul. Asta face lupa. - definitia pullback-ului zicea "nu mai face minim nou", absolut, dar desenul arata minime tot mai joase — asa face orice pullback care coboara spre un nivel. Ancorata de minimul de plecare; eticheta de pe desen numeste referinta si trimite la panoul unde e marcata. Restul: perechi_tf punea stopul fix pe low, fara marja de 5 centi pe care o cere Pasul 5 si o respecta directie — aliniat, cu cifrele recalculate; "nivel weekly" devine "retest", pentru ca high-ul unui doji nu e suport si Pasul 3 cere altceva; conector intre nivelul comun al celor doua panouri (nu se pot alinia — sunt scari diferite, e o lupa); leader lines in coloana de etichete; assert-ul de agregare, care era tautologic, verifica acum granitele candelelor mari fata de pullback si doji — exact locul unde textul se rupsese. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
@@ -11,8 +11,39 @@ stil: STYLE.md §„Cum trebuie să arate un grafic de preț": candele
|
||||
Un singur SVG, 3 rânduri stivuite vertical (lățime 720, mobil).
|
||||
Scară proprie pe fiecare panou, dar UNA singură în interiorul lui.
|
||||
|
||||
CE S-A SCHIMBAT (20.09.2026) ȘI DE CE
|
||||
-------------------------------------
|
||||
CE S-A SCHIMBAT (20.09.2026, runda 2 — după verificare)
|
||||
--------------------------------------------------------
|
||||
1. STOPUL respectă regula capitolului: cu 5 cenți sub cel mai jos low al
|
||||
ultimelor 4 bare, nu exact pe low-ul doji-ului. Se recalculează riscul,
|
||||
procentele, ținta 1:1 și raportul. Aceeași marjă se aplică și stopului
|
||||
măsurat pe TF-ul mare (aceeași regulă, alt timeframe).
|
||||
2. Scara graficului mic acoperă intervalul [stop, maximul zonei] cu 6 % aer
|
||||
sus și jos, ca linia de stop să nu mai cadă pe marginea cadrului (se citea
|
||||
ca bordură, iar fitilul doji-ului părea tăiat). Cadrul mic și caseta de
|
||||
lupă încadrează ACELAȘI interval de preț — ghidajele rămân exacte.
|
||||
3. Eticheta pullback-ului nu mai spune „fără minim nou" (desenul arată minime
|
||||
tot mai joase, deci se contrazicea singură): spune că pullback-ul coboară
|
||||
spre nivel fără să rupă low-ul doji-ului de pe TF-ul mare.
|
||||
4. Nivelul de pe panoul mic se numește „retest: high doji <TF mare>", nu
|
||||
„nivel" — Pasul 3 cere suport/pivot pentru nivel, iar aici prețul tocmai a
|
||||
trecut peste high-ul doji-ului și se întoarce la el.
|
||||
5. Nivelul comun legat între panouri e acum close-ul confirmării mari (egal
|
||||
prin construcție cu open-ul primei bare mici), cu un CONECTOR subțire gri
|
||||
între panouri și numărul scris o singură dată, în cot. High-ul doji-ului
|
||||
mare cădea la 0,10 de extrema de jos a zonei, deci conectorul lui s-ar fi
|
||||
confundat cu ghidajul albastru.
|
||||
6. Coloana din dreapta are LINIUȚE DE LEGĂTURĂ (leader lines) de la fiecare
|
||||
linie de preț la eticheta ei; liniile sunt la câțiva pixeli una de alta,
|
||||
iar etichetele trebuie împinse ca să nu se suprapună.
|
||||
7. Paranteza de stop de pe TF-ul mare are eticheta DEDESUBT (înainte înghițea
|
||||
eticheta nivelului), cea de pe TF-ul mic stă într-un gol dintre candele
|
||||
(assert), caseta de lupă e punctată ca în buy_doji_directie, iar rândul C
|
||||
are o notă că ultima bară de 60 min a zilei e de 30 min.
|
||||
8. Assert-ul de agregare (tautologic: zoom venea chiar din aggregate) e
|
||||
înlocuit cu granițele candelelor mari peste poveste.
|
||||
|
||||
CE S-A SCHIMBAT (20.09.2026, runda 1) ȘI DE CE
|
||||
----------------------------------------------
|
||||
Userul: „ar trebui să aibă corespondență la prețuri, ca să îmi dau seama care
|
||||
bucată din graficul weekly este reprezentată de graficul daily — adică care
|
||||
candelă weekly e reprezentată de candelele din graficul daily, cu aceleași
|
||||
@@ -28,8 +59,9 @@ CE TREBUIE SĂ DEMONSTREZE
|
||||
-------------------------
|
||||
1. Regula e identică pe toate trei perechile: pe TF-ul mare, buy doji +
|
||||
confirmare dau direcția (long permis); în interiorul ultimelor candele
|
||||
mari, pe TF-ul mic, se vede pullback-ul de 8 candele până la high-ul
|
||||
dojiului mare, doji-ul acolo, confirmarea = intrarea, stopul, ținta 1:1.
|
||||
mari, pe TF-ul mic, se vede pullback-ul de 8 candele care coboară până la
|
||||
high-ul dojiului mare (retest), doji-ul acolo, confirmarea = intrarea,
|
||||
stopul (5 cenți sub minimul a 4 bare), ținta 1:1.
|
||||
2. **Agregarea, vizibilă și adevărată**: fiecare candelă mare din casetă se
|
||||
sparge în k candele mici. Graficul mic nu e „altă serie", e aceeași serie
|
||||
privită mai de aproape.
|
||||
@@ -46,7 +78,7 @@ Sursa de adevăr e seria FINĂ (TF mic), 15 bare, rândul A, f = 1.0:
|
||||
6 (105.8,105.9,105.4,105.5) 7 (105.5,105.6,105.25,105.35)
|
||||
8 (105.35,105.75,105.10,105.40) <- doji mic, low 105.10 la nivelul 105.20
|
||||
9 (105.40,106.40,105.30,106.30) <- confirmare => intrare 106.30
|
||||
10 (106.3,107.0,106.2,106.9) 11 (106.9,107.5,106.7,107.4)
|
||||
10 (106.3,107.0,106.2,106.9) 11 (106.9,107.70,106.7,107.4)
|
||||
12 (107.4,107.55,107.0,107.2) 13 (107.2,108.0,107.1,107.9)
|
||||
14 (107.9,108.6,107.8,108.5)
|
||||
barele 0-7 = pullback-ul de 8 candele; 10.. = drumul spre țintă.
|
||||
@@ -71,31 +103,40 @@ păstrează; gruparea (k) diferă însă per rând, deci barele mari se recalcul
|
||||
|
||||
VALORI CARE REZULTĂ (verificate cu assert)
|
||||
------------------------------------------
|
||||
Stopul e cu 5 cenți (MARJA) sub minimul ultimelor 4 bare, pe ambele TF-uri.
|
||||
A: doji mare h 105.20 / l 101.90; confirmare mare close 107.00;
|
||||
lupă 105.10-108.60; intrare 106.30; SL 105.10; risc 1.20 (1.13 %); TP1 107.50
|
||||
doar pe TF mare: intrare 107.00, SL 101.90, risc 5.10 (4.77 %) → x4.22
|
||||
lupă 105.10-108.60; intrare 106.30; SL 105.05; risc 1.25 (1.18 %); TP1 107.55
|
||||
doar pe TF mare: intrare 107.00, SL 101.85, risc 5.15 (4.81 %) → x4.09
|
||||
B: doji mare h 113.00 / l 104.75; confirmare mare close 117.50;
|
||||
lupă 112.75-118.75; intrare 115.75; SL 112.75; risc 3.00 (2.59 %); TP1 118.75
|
||||
doar pe TF mare: intrare 117.50, SL 104.75, risc 12.75 (10.85 %) → x4.19
|
||||
lupă 112.75-119.25; intrare 115.75; SL 112.70; risc 3.05 (2.63 %); TP1 118.80
|
||||
doar pe TF mare: intrare 117.50, SL 104.70, risc 12.80 (10.89 %) → x4.13
|
||||
C: doji mare h 102.08 / l 100.76; confirmare mare close 102.80;
|
||||
lupă 102.04-103.20; intrare 102.52; SL 102.04; risc 0.48 (0.47 %); TP1 103.00
|
||||
doar pe TF mare: intrare 102.80, SL 100.76, risc 2.04 (1.98 %) → x4.24
|
||||
lupă 102.04-103.20; intrare 102.52; SL 101.99; risc 0.53 (0.52 %); TP1 103.05
|
||||
doar pe TF mare: intrare 102.80, SL 100.71, risc 2.09 (2.03 %) → x3.93
|
||||
Pe toate trei, TP1 e atins prima dată de bara 11.
|
||||
|
||||
LEGĂTURA DINTRE PANOURI (miezul diagramei)
|
||||
-------------------------------------------
|
||||
1. **Caseta de lupă** (albastru) pe graficul mare, peste EXACT candelele
|
||||
mărite, întinsă pe intervalul de preț [low zonă, high zonă].
|
||||
1. **Caseta de lupă** (albastru, contur punctat) pe graficul mare, peste
|
||||
EXACT candelele mărite, întinsă pe intervalul de preț al cadrului mic
|
||||
([stop, high zonă], cu 6 % aer sus și jos).
|
||||
2. **Două ghidaje** punctate albastre de la colțurile din dreapta ale casetei
|
||||
la colțurile din stânga ale cadrului graficului mic — convenția clasică de
|
||||
zoom. Ghidajele sunt exacte: cadrul mic acoperă exact intervalul de preț al
|
||||
casetei (assert: max/min din barele mici == max/min din candelele mari
|
||||
mărite). Între ghidaje, textul „lupă: ultimele N candele <TF mare>".
|
||||
3. **Nivelul comun**: high-ul dojiului mare, desenat ca aceeași linie punctată
|
||||
gri pe AMBELE panouri, cu ACELAȘI număr de ambele părți — stânga
|
||||
„high doji weekly 105.20", dreapta „nivel weekly 105.20". Scările rămân
|
||||
proprii fiecărui panou; nivelul comun face legătura.
|
||||
Extremele zonei mărite sunt repere comune implicite: le arată ghidajele.
|
||||
(Nu le etichetăm cu cifre: coloana din dreapta s-ar aglomera.)
|
||||
zoom. Ghidajele sunt exacte: caseta și cadrul mic încadrează exact același
|
||||
interval de preț, [stop, maximul zonei] cu 6 % aer sus și jos. Culoarul
|
||||
dintre ghidaje e lăsat liber pentru conector (textul „lupă: ultimele N
|
||||
candele" s-a scos: subtitlul din dreapta spune deja același lucru).
|
||||
3. **Nivelul-reper** (high-ul doji-ului mare) apare pe ambele panouri cu
|
||||
același număr: stânga „high doji weekly 105.20", dreapta „retest: high
|
||||
doji weekly 105.20". Nu poate fi aliniat la aceeași înălțime — scările au
|
||||
pante diferite, e o lupă.
|
||||
4. **Nivelul comun LEGAT**: close-ul confirmării mari (= open-ul primei bare
|
||||
mici, prin construcție) e desenat ca aceeași linie gri subțire pe ambele
|
||||
panouri și cele două capete sunt unite de un **conector** gri punctat
|
||||
(„3 3", mai subțire decât ghidajele albastre), cu numărul scris o singură
|
||||
dată, în cot. Cotul se alege prin căutare: poziția unde conectorul stă cel
|
||||
mai departe de ghidaje (assert: > 10 px). Nivelul cade în mijlocul
|
||||
intervalului mărit (assert: între 20 % și 80 %), nu lipit de o extremă.
|
||||
|
||||
ETICHETE
|
||||
--------
|
||||
@@ -105,14 +146,20 @@ Subtitluri: stânga „<TF mare>: direcția";
|
||||
Pe graficul mare: zonă verde peste doji + confirmare, etichetată dedesubt
|
||||
„doji + confirmare: aici se decide direcția"; nivelul comun la stânga.
|
||||
Pe graficul mic: zonă verde peste doji-ul mic + confirmare, cu o linie de
|
||||
legătură spre eticheta „doji la nivel, apoi confirmare: aici intri";
|
||||
paranteză sub cadru peste primele 8 bare: „pullback: 8 candele în jos, fără
|
||||
minim nou"; coloana din dreapta: „ținta 1:1 <preț>", „intrare <preț>",
|
||||
„nivel <TF mare> <preț>", „stop <preț>" (pe rândul A și „sub ultimele 4 bare").
|
||||
Doar pe rândul A: paranteză de stop pe TF-ul mare („stop 4,77 %") și pe cel
|
||||
mic („stop 1,13 %"), cu o săgeată roșie între ele: „același setup, stop de
|
||||
4,2 ori mai mic → de 4,2 ori mai multe acțiuni la același risc". Raportul
|
||||
se calculează, nu se scrie.
|
||||
legătură spre eticheta „doji la nivel + confirmare: aici intri";
|
||||
paranteză sub cadru peste primele 8 bare, pe două rânduri: „pullback: 8
|
||||
candele care coboară spre nivel" / „fără să rupă low-ul doji-ului <TF mare>
|
||||
din stânga"; coloana din dreapta, fiecare etichetă legată de linia ei
|
||||
printr-o liniuță: „ținta 1:1 <preț>", „intrare <preț>", „retest: high doji
|
||||
<TF mare> <preț>", „stop <preț>" (pe rândul A, plus „5 cenți sub minimul
|
||||
ultimelor 4 bare").
|
||||
Doar pe rândul A: paranteză de stop pe TF-ul mare („stop 4,81 %", eticheta
|
||||
DEDESUBT, ca să nu înghită eticheta nivelului) și pe cel mic („stop 1,18 %",
|
||||
într-un gol dintre candele), cu o săgeată roșie între ele: „același setup,
|
||||
stop de 4,1 ori mai mic → de 4,1 ori mai multe acțiuni la același risc".
|
||||
Raportul se calculează, nu se scrie.
|
||||
Doar pe rândul C, sub grafic: „(șapte bare de 60 min pe zi: ședința 9:30-16:00
|
||||
are 6 ore și jumătate — ultima bară a zilei e de 30 min)".
|
||||
Restul cifrelor (praguri, „8 candele" pe fiecare pereche, cât ții) stau în
|
||||
tabelul din capitol, nu în SVG: diagrama nu repetă tabelul.
|
||||
|
||||
@@ -121,27 +168,38 @@ ASSERT-URI OBLIGATORII ÎN GENERATOR
|
||||
Pe fiecare rând (A, B, C), pe seriile calculate:
|
||||
1. Fiecare bară: h >= max(o,c) și l <= min(o,c); open[i] == close[i-1]
|
||||
(pe fiecare grafic separat, inclusiv peste joncțiunea BASE→lupă).
|
||||
2. AGREGAREA, per candelă mare mărită j: open == open-ul primei mici,
|
||||
close == close-ul ultimei mici, high == max(high mici), low == min(low mici).
|
||||
2. GRANIȚELE candelelor mari peste poveste (NU refacerea agregării: `zoom`
|
||||
vine chiar din `aggregate`, deci un assert care o recalculează nu poate
|
||||
pica). Peste câte candele mari se întinde pullback-ul (2, pe toate trei
|
||||
perechile — deci NU încape într-una singură) și în a câta candelă mare
|
||||
cade doji-ul mic (A: 1, B: 2, C: 1); low-ul acelei candele mari e chiar
|
||||
low-ul doji-ului mic.
|
||||
3. len(fine) == k * nz; open fine[0] == close-ul confirmării mari.
|
||||
4. Doji mare (BASE 6) și doji mic (fine 8): abs(o-c) <= 0.10*(h-l).
|
||||
5. Confirmări: close BASE[7] > high BASE[6]; close fine[9] > high fine[8].
|
||||
6. SL == min(l for fine 6..9) == low fine[8] == minimul întregii zone mărite.
|
||||
6. min(l for fine 6..9) == low fine[8] == minimul zonei mărite;
|
||||
SL == acel minim − 0,05 (marja de 5 cenți). La fel pe TF-ul mare:
|
||||
b_SL == low-ul doji-ului mare − 0,05.
|
||||
7. risc == intrare - SL; TP1 == intrare + risc; primul i>9 cu high >= TP1 e 11.
|
||||
8. Pullback: fine[0].close > fine[7].close (coboară) ȘI min(low 0..7) >
|
||||
low-ul dojiului mare (deci „fără minim nou").
|
||||
low-ul dojiului mare (referința pe care nu are voie s-o rupă).
|
||||
9. Extremele zonei mărite == extremele candelelor mari mărite.
|
||||
10. abs(low fine[8] - high doji mare) / high doji mare <= 0.005.
|
||||
11. Raportul pixeli SL-intrare / intrare-TP1 == 1 pe fiecare grafic mic.
|
||||
12. 4 <= stop% pe TF mare / stop% pe TF mic < 4.5.
|
||||
11. Raportul pixeli SL-intrare / intrare-TP1 == 1 pe fiecare grafic mic;
|
||||
linia de stop e la > 6 px de marginea de jos a cadrului și sub minimul
|
||||
barelor; paranteza de stop nu atinge nicio candelă.
|
||||
12. 3,9 <= stop% pe TF mare / stop% pe TF mic <= 4,5.
|
||||
13. Conectorul nivelului comun stă la > 10 px de ambele ghidaje, iar numărul
|
||||
lui apare EXACT o dată, între caseta de lupă și cadrul mic (în cot).
|
||||
13. Valorile din „VALORI CARE REZULTĂ", egale la 2 zecimale.
|
||||
14. PANOURI. Nicio etichetă din dreapta (x >= FRAME_L-20) nu conține un preț
|
||||
al TF-ului mare, nicio etichetă din stânga nu conține unul al TF-ului mic.
|
||||
**Excepție explicită: NIVELURILE COMUNE** (setul COMUNE din generator,
|
||||
acum {dh} = high-ul dojiului mare). Ele sunt scoase din ambele seturi de
|
||||
interdicție ȘI au un assert propriu: numărul trebuie să apară pe AMBELE
|
||||
panouri, formatat identic (2 zecimale). O scutire fără assert ar permite
|
||||
ca nivelul să dispară de pe un panou sau să apară cu alt număr.
|
||||
**Excepție explicită: NIVELURILE COMUNE** (setul COMUNE = {dh, conf}).
|
||||
Ele sunt scoase din ambele seturi de interdicție (după VALOARE, nu după
|
||||
cheie: b_entry are aceeași valoare ca conf) ȘI au assert propriu: dh
|
||||
trebuie să apară pe AMBELE panouri cu același format, conf exact o dată,
|
||||
în cotul conectorului. O scutire fără assert ar permite ca nivelul să
|
||||
dispară de pe un panou sau să apară cu alt număr.
|
||||
15. Fiecare text încape în viewBox și nicio pereche de texte nu se suprapune
|
||||
(aceeași regulă ca audit_diagrams.py: |Δy| < 13 și suprapunere pe x).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user