17_STRATEGII/06_hammer_mbt10: toate cele 9 restante, plus cele 3 cosmetice
Cea mai grava, si cea care a cerut refacerea seriei: exemplul central de MBT-10 era luat de pe 60 de minute si bagat in procedura de daily, cu barele numite "zile", desi sursa spune explicit de ce nu merge pe daily. Pe langa asta, suportul fusese schimbat din 88.00 (testat de trei ori, cu compresie, cum e in sursa) in 87.50 cu un double bottom si o divergenta de volum imprumutate din alt exemplu. Seria e refacuta pe exemplul materialului, cu assert pe cele trei atingeri ale lui 88.00 si pe compresia varfurilor. Adaosurile au fost scoase, nu doar marcate: cu ele in desen, suportul din sursa n-ar fi avut sens. Aritmetica a supravietuit neatinsa. Restul: stopul de 60.40 sta acum sub o structura reala; pivotul daily nu mai e o linie fixa peste tot graficul, ci un segment peste ziua intrarii; SL-ul de pe LABU respecta regula proprie de 5 centi; citatul de la A2 nu mai e dat ca al autorului; pragul de 1-2% isi spune originea (cursul da 0,5%, pe 60 min); o singura conventie de distanta, impartirea la nivel; swing low definit la fel in pas si in glosar. eticheta_libera a prins 7 suprapuneri reale. La bh_aplus a trebuit rulat pe fiecare panou separat: wrapper-ul le muta cu <g transform>, pe care unealta nu-l citeste - de notat pentru data viitoare. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
@@ -3,8 +3,9 @@
|
||||
|
||||
Două panouri alăturate cu ACEEAȘI serie de 12 bare, pe aceeași scară și
|
||||
aceeași axă de preț (candelele stau la aceleași y). Stânga: suport monthly
|
||||
62.00, la 0,16 % sub low-ul hammer-ului. Dreapta: cel mai apropiat nivel de
|
||||
sub el e la 58.00, adică un gol de 7,07 %. Nivelurile se desenează de mână,
|
||||
62.00, la 0,16 % de low-ul hammer-ului (diferența împărțită la nivel, ca în
|
||||
tot capitolul). Dreapta: cel mai apropiat nivel de sub el e la 58.00, adică un
|
||||
gol de 7,07 %. Nivelurile se desenează de mână,
|
||||
cu coordonate absolute (liniile din Chart pornesc de la x=24 și ar trece
|
||||
peste panoul vecin).
|
||||
|
||||
@@ -90,7 +91,7 @@ def zone(px, p_top, p_bot, label, color, label_at_bottom=False):
|
||||
PCT_DA, PCT_NU = f"{d_da:.2f}".replace(".", ","), f"{d_nu:.2f}".replace(".", ",")
|
||||
y_bot = y(SUP_NU)
|
||||
parts = [
|
||||
f'<svg viewBox="0 0 {W} {y_bot + 80:.0f}" xmlns="http://www.w3.org/2000/svg" '
|
||||
f'<svg viewBox="0 0 {W} {y_bot + 96:.0f}" xmlns="http://www.w3.org/2000/svg" '
|
||||
f'style="width:100%;height:auto;font:12px sans-serif">',
|
||||
'<text x="24" y="22" fill="#333" style="font-weight:bold">Hammer la un nivel vs. hammer '
|
||||
'în mijlocul range-ului — daily, exemplu construit</text>',
|
||||
@@ -112,9 +113,11 @@ parts = [
|
||||
f'<text x="24" y="{y_bot + 34:.0f}" fill="{GREY}">Completare proprie: materialul cere '
|
||||
'„un nivel major (weekly / monthly / quarterly), nu mijlocul</text>',
|
||||
f'<text x="24" y="{y_bot + 50:.0f}" fill="{GREY}">range-ului", dar nu dă un prag numeric. '
|
||||
f'Pragul de 1-2 % e împrumutat de la buy doji, ca să ai ce</text>',
|
||||
f'<text x="24" y="{y_bot + 66:.0f}" fill="{GREY}">măsura: aici {PCT_DA} % în stânga, '
|
||||
f'{PCT_NU} % în dreapta.</text>',
|
||||
f'Cursul dă 0,5 %, la buy doji și pe 60 de minute; 1-2 % pe</text>',
|
||||
f'<text x="24" y="{y_bot + 66:.0f}" fill="{GREY}">daily e adaptarea mea, ca să ai ce '
|
||||
f'măsura: aici {PCT_DA} % în stânga, {PCT_NU} % în dreapta.</text>',
|
||||
f'<text x="24" y="{y_bot + 82:.0f}" fill="{GREY}">Distanța se împarte la nivel, nu la '
|
||||
f'low-ul hammer-ului — aceeași convenție în tot capitolul.</text>',
|
||||
"</svg>",
|
||||
]
|
||||
svg = "\n ".join(parts).replace("\n </svg>", "\n</svg>")
|
||||
@@ -122,4 +125,4 @@ assert "\n\n" not in svg, "linie goală în SVG"
|
||||
for m in re.finditer(r'<text x="([\d.]+)"[^>]*>(.*?)</text>', body_da):
|
||||
assert float(m.group(1)) < PX[1] - 14, f"text din DA trece în NU: {m.group(2)}"
|
||||
OUT.write_text(svg, encoding="utf-8")
|
||||
print(f"scris {OUT.name} ({W}x{y_bot + 80:.0f}); DA {d_da}% NU {d_nu}% (rezistență {d_rez}%)")
|
||||
print(f"scris {OUT.name} ({W}x{y_bot + 96:.0f}); DA {d_da}% NU {d_nu}% (rezistență {d_rez}%)")
|
||||
|
||||
Reference in New Issue
Block a user