Files
atm-curs-dl/triaj/ETICHETE_VECHI.md
Claude Agent d82e1d5ce5 eticheta_libera: filtru orb pentru cifrele care dispar sub candele
cifre_ascunse() ruleaza pe tot repo-ul, nu pe etichete numite, si raporteaza
doar cazul care chiar costa: eticheta cu cifra peste un <rect> plin, fie de
aceeasi culoare (distanta RGB sub 60, cu transparenta amestecata peste alb),
fie desenat dupa ea si deci acoperind-o indiferent de culoare. Al doilea caz
a fost adaugat pentru ca m2d_directie avea text gri sub corp verde - aceeasi
paguba, dar filtrul pe culoare singur il rata.

Calibrare care conta: CW=6.2 e potrivit pentru bold si prea larg pentru rest,
iar coada goala prindea candela de alaturi. CW=5.4 pentru nebold a eliminat
primele doua rezultate, verificate pe ecran ca false pozitive. Ancora inversa:
pe versiunile dinainte de reparatiile de azi filtrul prinde exact cele doua
defecte confirmate vizual.

Scanarea: 17 etichete in 13 diagrame, din care 9 cu gaura pe cifra. Noua din
cele 17 sunt in summaries/06_MODUL_5, unde nu s-a facut niciodata o trecere de
etichete; in gen/strategii, dupa trei treceri, au ramas cinci.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
2026-10-02 06:07:34 +00:00

12 KiB
Raw Blame History

Etichete peste desen în capitolele vechi — inventar, nu reparație

Scanare din 02.10.2026, cerută după ce gen/eticheta_libera.py a scos 9 suprapuneri din mbp_ansamblu (dintre care două invizibile fără unealtă). Întrebarea: cât de răspândită e clasa asta în capitolele 01-05 și anexe.

Nu s-a reparat nimic. Niciun fișier din gen/ sau summaries/ nu a fost atins pentru raportul ăsta.

Cum s-a scanat

eticheta_libera e opt-in, pe etichete numite — pentru o scanare oarbă am rulat aceeași geometrie peste toate etichetele, pe fiecare sub-panou (<svg> imbricat) separat, ca să nu compar coordonate din panouri diferite. Marjă 4 px. Au fost scoase din numărătoare trei clase de fals pozitiv:

  • A — eticheta stă pe linia ei. Convenția diferă de la un generator la altul (unele pun textul deasupra liniei, altele dedesubt), așa că „a ei" se decide prin cea mai apropiată etichetă de linia respectivă, nu printr-un offset fix.
  • B — capătul propriei săgeți sau linii de legătură. Prin construcție coada săgeții pornește din text.
  • Dreptunghiuri mai late de 60 px sau mai înalte de 220 px: fundaluri de panou, nu corpuri de candelă.

Ce rămâne — bucata „C" — e ce raportez mai jos.

Capitol Atingeri A: linia proprie B: coada săgeții Rămase (C)
01_buy_doji 149 59 60 30
02_mp2 93 52 20 21
03_m2d 67 18 27 22
04_selectia 30 12 14 4
05_atmi 45 16 11 18
A1_risc 0 0 0 0
A2_contradictii 0 0 0 0
A3_intrarea 23 18 3 2

A1 și A2 n-au diagrame de tip grafic — zero, nu „curat prin verificare".

audit_diagrams.py trece curat pe toate opt: clasa asta e invizibilă pentru el, exact ca la mbp_ansamblu. Auditul prinde text peste text; aici e text peste linie, peste polilinie sau peste corp de candelă.

Verificate vizual (screenshot citit)

12 diagrame: 01/stop, perechi_tf, directie, trend, transe; 02/crossing, pivoti, trigger, exemplu; 03/directie, stop; 05/orizont; A3/doua_variante. Restul e clasificat doar din geometrie și e marcat ca atare.


MINCINOASE — schimbă ce înțelege cititorul

Trei, toate din aceeași familie: cifra e tăiată sau acoperită, nu mutată.

1. 03_m2d — gen/strategii/m2d_directie.py, ambele panouri

minimul din care a pornit mișcarea 99.80 intră cu ultimele caractere sub corpul unei candele verzi. Pe ecran se citește „…mișcarea 99.8" — zecimala dispare. Nivelul ăsta e condiția care decide dacă setup-ul mai e valid („close 99.30, sub 99.80: direcția mare s-a răsucit"), deci e fix cifra pe care cititorul o caută. Apare de două ori, o dată în fiecare panou.

2. 05_atmi — gen/strategii/atmi_orizont.py

Eticheta 2 săptămâni a barei portocalii e acoperită de marginea din stânga a casetei de citat de lângă ea; se vede „2 săptămân". E singura cifră care dă contrastul diagramei (luni/ani față de două săptămâni), iar diagrama există tocmai ca să arate contradicția.

3. 01_buy_doji — gen/strategii/buy_doji_stop.py, panoul de jos

stop pus la ochi: 49.70 și stopul din regulă: 49.20 stau la 12 px unul sub altul, fiecare cu linia lui întreruptă, iar linia portocalie a lui 49.70 trece prin caseta etichetei lui 49.20. Cifrele sunt scrise, deci nu citești un preț greșit — dar nu poți atribui corect cele două linii, iar toată diagrama e despre diferența dintre ele. La limită: o pun aici pentru că obiectul diagramei e chiar distincția asta.


DOAR URÂTE — cosmetice, pot aștepta

Restul de ~94. Se grupează în patru tipare; niciunul nu face să citești un preț la înălțimea altuia.

(a) Etichetă descriptivă peste un corp de candelă — cel mai des. Textul începe fix pe marginea unei candele, cu una-două litere peste ea; rămâne lizibil pentru că fundalul candelei e la capătul rândului, nu sub el. 01: ansamblu (2), directie, trend (3), fereastra (2), stop, iesire, aplus, perechi_tf · 02: perechi_tf, crossing, trigger, aplus (3), exemplu (2), pivoti_excel (3) · 03: directie, trigger (2), iesire (2), exemplu · 05: ansamblu, trigger (3), risc, exemplu · A3: cazul_lui.

(b) Două niveluri prea apropiate, fiecare cu linia lui — eticheta de jos atinge linia de sus. 01/perechi_tf (weekly 105.20, retest: high doji), 02/crossing (crossing: 61.70 → 62.20, pivot weekly (cel MARE) 62.00), 02/perechi_tf, 02/bottom, 03/stop (512.87 față de 512.02, la 9 px), 03/directie (close-ul candelei de semnal 100.60), 04/exemplu, A3/doua_variante (B: 1/3 = 101.55 / B: 1/2 = 101.25). Verificate: toate rămân lizibile, pentru că prețul e scris în etichetă.

(c) Linie de legătură lungă care traversează un alt text — săgeți ce pleacă din subsolul diagramei spre o bară din mijloc. 01/stop (4), 01/transe (5), 01/directie (2), 02/stop, 03/directie (4), 03/secventa, 03/iesire (4), 04/ansamblu, 05/perechi_tf (2), 05/trigger.

(d) Text peste linii de structură ale unei diagrame care nu e grafic de preț — coloane, axe de timp, chenare. 05/orizont (9 din cele 18 ale capitolului, în afară de „2 săptămâni"), 04/univers (2), 02/pivoti_excel.


Verdict

Merită un lot, dar mic — cele trei mincinoase, nu cele 94.

Clasa asta e răspândită (97 de atingeri reale în 6 capitole), dar aproape tot e zgomot vizual pe care cititorul îl traversează fără să piardă informație. Ce costă e doar cifra tăiată: la 03_m2d/directie și 05_atmi/orizont numărul nu se poate citi întreg, iar la 01_buy_doji/stop cele două stopuri nu se pot atribui liniilor lor. Trei generatoare, trei mutări de etichetă — o sesiune scurtă, nu un lot.

Pentru restul, lucrul util nu e repararea, ci importul lui eticheta_libera în generatoarele atinse data viitoare oricum, pe etichetele care poartă cifre. Așa clasa nu mai crește, fără să plătim acum pentru 94 de suprapuneri inofensive.

Nota de scanare: 08_mbp (comis) mai are două atingeri din tiparul (b), în mbp_stop (banda inferioară 623.90 la 9 px sub linia intrării) și mbp_exemplu (intrare short 660.00 la 2 px de bandă superioară). Ambele lizibile; le las aici ca să nu se piardă.


Adaugat pe 02.10, de la corectorul lui 07_mdsrt

Doua defecte vechi, vazute dar neatinse (nu erau pe lista lui):

  • mdsrt_short.svg — titlul „Oglinda pe short (serie construita prin rasturnarea exemplului long)" e traversat de coada sagetii „piciorul 1".
  • mdsrt_aplus, panoul NU — cds_n[18].l e 94.50, dar nivelul se cheama „primul low 94.60". E close-ul, nu low-ul.

Filtrul orb: cifră peste un corp plin (scanare 02.10.2026)

Cerut după trierea vizuală a capitolelor 02 / 04 / A3, care a dat o singură cauză fizică pentru suprapunerile care chiar schimbă ce citești: textul stă peste un <rect> plin, iar caracterele nu se încalecă — dispar. Peste o linie subțire (nivel, fitil, coadă de săgeată, chenar) textul rămâne lizibil, oricât de urât arată. De aceea tiparele (a)-(d) de mai sus nu merită un lot, dar clasa asta merită o listă.

gen/eticheta_libera.py are acum cifre_ascunse(svg), care nu e opt-in pe etichete numite — fiind îngustă, rulează oarbă:

.venv/bin/python gen/eticheta_libera.py gen/strategii/*.svg \
                                        summaries/06_MODUL_5/*.md

Ce raportează: o etichetă care conține o cifră, peste un dreptunghi plin, în unul din două cazuri — (1) aceeași culoare (verde pe verde: caracterul dispare oricare ar fi ordinea de desenare), sau (2) desenat peste text (corpul e pictat după etichetă, deci o acoperă indiferent de culoare — cazul m2d_directie din lista „mincinoase"). Pragurile: distanță RGB sub 60, suprapunere de cel puțin 4 px pe orizontală și 4 px pe verticală, opacitatea dreptunghiului cel puțin 0.5 (zonele palide nu acoperă nimic). Transparența se amestecă peste alb înainte de comparație, deci barele de volum la 0.55 nu se aprind. Bucata „dispare ~" e aproximativă (lățime uniformă pe caracter), dar spune dacă gaura cade pe cifră sau pe o literă.

Calibrare: lățimea din _bbox (CW = 6.2) e potrivită pentru bold și prea largă pentru restul; la o etichetă lungă nebold coada goală de ~30 px prindea candela de alături (buy_doji_labu, mp2_aplus — ambele verificate pe ecran, false pozitive). Filtrul folosește CW = 5.4 pentru textul nebold. Pe versiunea de dinaintea reparațiilor de azi, mp2_exemplu („intrare 577.00", 0 păstrat de corpul verde) și m2d_directie (ambele panouri) sunt prinse — cele două defecte reale confirmate vizual, deci filtrul nu e doar strâmt, e și calibrat.

Rezultat: 17 etichete, în 13 diagrame

Gaura cade pe cifră (9):

m2d_iesire.svg: 'intrare 99.60' — dispare ~'60' (12 px, desenat peste)
mdsrt_exemplu.svg: 'TP1 624.70 = 1:1 (construit)' — dispare ~'1 (' (9 px, desenat peste)
mp2_short.svg: '128.97: crossing bear' — dispare ~'8.' (9 px, desenat peste)
02_patternuri_complexe_partea_a_treia.md #3: 'SL 29.40' — dispare ~'9.4' (9 px, aceeași culoare)
02_patternuri_complexe_partea_a_treia.md #4: 'target 62.00 = 65.00 − 3.00' — dispare ~'62.' (9 px, desenat peste)
02_patternuri_complexe_partea_a_treia.md #5: 'target 60.50 = 65.00 − 4.50' — dispare ~'0.5' (9 px, desenat peste)
02_patternuri_complexe_partea_a_treia.md #8: 'intrare short 89.00' — dispare ~' 8' (9 px, desenat peste)
02_patternuri_complexe_partea_a_treia.md #8: 'target 60.00 = 90.00 − 30.00' — dispare ~' 90' (9 px, desenat peste)
04_strategia_7_micis.md #6: 'intri cu 1/3 și rămâi cu 1/3' — dispare ~'1/3' (10 px, aceeași culoare)

Gaura cade pe o literă (8) — eticheta are cifre, dar ce dispare e text:

hammer_mbt10_bh_stop.svg: 'intrare 63.35 (close-ul confirmării)' — dispare ~'irm' (13 px, desenat peste)
hammer_mbt10_mbt_close.svg: 'la 55.30, în timpul zilei, semnalul' — dispare ~'sem' (13 px, aceeași culoare)
mdsrt_exemplu.svg: 'hammer închide 622.60, înapoi peste pivot' — dispare ~'oi' (9 px, aceeași culoare)
mdsrt_exemplu.svg: 'intri aici: close peste high-ul hammer-ului (622.70)' — dispare ~'r-' (9 px, aceeași culoare)
02_patternuri_complexe_partea_a_treia.md #5: 'suport (neckline) 65.00' — dispare ~'in' (9 px, desenat peste)
02_patternuri_complexe_partea_a_treia.md #7: 'limita de 50% 100.00' — dispare ~'ta ' (9 px, desenat peste)
03_patternuri_complexe_partea_a_patra.md #8: 'TP2 42.40 = batul steagului = 6.2R' — dispare ~' = ' (9 px, desenat peste)
05_strategia_8_dhrt.md #10: 'vârful consolidării 53.70 = locul crimei' — dispare ~'ons' (12 px, desenat peste)

Verificate pe ecran, cu zoom 4x: 6 din 17, luate din ambele categorii (m2d_iesire „99.6|", mdsrt_exemplu „= 1:_ (construit)", mp2_short cu „128" sub corpul roșu, hammer_mbt10_bh_stop „confirm_rii", 02_patternuri… „neckl_ne", 05_strategia_8_dhrt „c_nsolidării"). Toate șase, reale. Nu am reparat nimic și n-am atins capitolele 06, 09, 10, care sunt în lucru la alt agent.

Două observații pentru cine ia lista:

  • Jumătate din cazuri înghit o literă, nu o cifră: filtrul cere ca eticheta să conțină o cifră, nu ca gaura să cadă pe ea. Dacă lotul trebuie scurtat, primele 9 sunt cele care costă.
  • Nouă din cele 17 sunt în summaries/06_MODUL_5/ — adică în diagramele de modul, nu în cele de strategie. Acolo nu s-a făcut niciodată o trecere de etichete.