svg_candles: cautarea nivelurilor, scoasa in functie comuna; 11 generatoare reparate
Unsprezece generatoare nu mai rulau deloc la HEAD: cautau <line x1="24", iar svg_candles scrie x1="24.0" de cand are Level.i0. Un generator mort inseamna ca diagrama nu mai poate fi regenerata, si nimeni n-ar fi aflat pana cand ar fi incercat cineva, peste luni. Cele 11 copii ale aceluiasi regex au disparut: y_niveluri() si offset_render() se agata acum de semnatura liniei de Level (stroke-width + dasharray), nu de x-ul ei. Caz nou in selftest, cu Level(i0=) si panou de volum - combinatia la care varianta veche fie crapa, fie prindea tacut linia de zero a volumului. 41 de SVG-uri regenerate, toate identice cu cele comise dupa normalizarea x1=24 -> x1=24.0, deci niciun desen n-a sarit. Verificarea asta a prins o regresie reala: la buy_doji_transe substitutia lasase scaderea veche pe randul urmator, offsetul se scadea de doua ori si desenul urca 92 px. Inca doua generatoare moarte din aceeasi familie, gasite pe drum (intrarea_cazul_lui, intrarea_doua_variante): desenau peste grafic citind ch._y() fara offset. Nu crapau zgomotos - produceau suprapuneri la 22 px. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
@@ -12,7 +12,8 @@ date explicit: 21 și 27 deschid cu GAP (low peste high-ul precedentei),
|
||||
fiindcă regula de trail din curs se sprijină exact pe barele astea.
|
||||
"""
|
||||
import sys; sys.path.insert(0, "/workspace/atm-curs-dl")
|
||||
from svg_candles import Candle, Chart, Level, MA, Zone, Arrow, from_closes
|
||||
from svg_candles import (Candle, Chart, Level, MA, Zone, Arrow, from_closes,
|
||||
offset_render)
|
||||
|
||||
OUT = "/workspace/atm-curs-dl/gen/strategii/buy_doji_ansamblu.svg"
|
||||
|
||||
@@ -135,9 +136,7 @@ if __name__ == "__main__":
|
||||
svg = ch.render()
|
||||
# render() mută `top` intern (titlu, săgeți) și îl restaurează: ch._y() de aici
|
||||
# e mai sus cu atâta. Offsetul se citește din prima linie de Level desenată.
|
||||
import re as _re
|
||||
OFF = (float(_re.search(r'<line x1="24" y1="([\d.]+)"', svg).group(1))
|
||||
- ch._y(ch.levels[0].price))
|
||||
OFF = offset_render(svg, ch)
|
||||
|
||||
def Y(p):
|
||||
return ch._y(p) + OFF
|
||||
|
||||
Reference in New Issue
Block a user