etichete: doua defecte vechi la mdsrt, trei la mp2, si verdictul pe restul

La mdsrt_aplus eticheta spunea "primul low 94.60" pentru o bara al carei low
era 94.50. Reparatia a mutat low-ul, nu eticheta: regula capitolului numara
piciorul dupa low, iar specul spune tot 94.60 - doar umbra de 0.10 o
contrazicea. Nicio cifra tiparita nu se schimba, iar nivelul isi ia acum
eticheta din date, cu assert, ca sa nu mai poata minti.

Cele trei de la mp2 aveau toate aceeasi cauza fizica: text colorat peste un
corp de candela de aceeasi culoare. Acolo caracterele nu se incaleca, dispar -
"intrare 577.00" se citea "intrare 577. 0", "crossing" se citea "crossi g".

VERDICT pe restul de ~94: nu merita un lot. Din 20 de suprapuneri vazute
efectiv pe ecran, doar 3 schimbau ce citesti, si toate trei din cauza aia.
Celelalte 17 - text peste fitil, peste linie de nivel, peste chenar, peste
coada de sageata - raman lizibile, fiindca fundalul e o linie subtire, nu o
suprafata plina. Filtrul util nu e tiparul geometric, ci: eticheta cu cifra,
peste un <rect> de aceeasi culoare.

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-10-02 06:00:45 +00:00
parent 29dc93dfad
commit 602419c93a
14 changed files with 194 additions and 164 deletions

View File

@@ -15,6 +15,8 @@ from pathlib import Path
sys.path.insert(0, "/workspace/atm-curs-dl")
from svg_candles import Chart, Level, Mark, MA, from_closes # noqa: E402
sys.path.insert(0, "/workspace/atm-curs-dl/gen")
from eticheta_libera import eticheta_libera # noqa: E402
OUT = Path(__file__).resolve().parent / "mp2_exemplu.svg"
@@ -121,7 +123,9 @@ marks = [
Mark(SHL_I, "umăr stâng 566", "#1a1a1a", "below"),
Mark(HEAD_I, "head 555", "#1a1a1a", "below"),
Mark(SHR_I, "umăr drept 568", "#1a1a1a", "below"),
Mark(ENTRY_I, "intrare 577.00", "#188a3e", "above", dy=-10),
# dy/dx: la dy=-10 corpul verde de peste două candele mânca primul
# zecimal — pe ecran scria „intrare 577. 0" (02.10.2026)
Mark(ENTRY_I, "intrare 577.00", "#188a3e", "above", dy=-32, dx=-10),
]
ch = Chart(
@@ -137,6 +141,8 @@ ch = Chart(
svg = ch.render()
assert svg.count("\n\n") == 0, "linie goală în SVG — rupe markdown-ul"
# eticheta intrării poartă cifra: să nu mai ajungă peste un corp de candelă
eticheta_libera(svg, "exemplu", {"intrare 577.00"}, rects=True)
OUT.write_text(svg)
print(f"serie {len(cds)} candele | intrare {entry:.2f} @ {ENTRY_I} | "