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:
@@ -156,10 +156,12 @@ w_bottom = yw(wmin)
|
||||
text(20, 50, "weekly: direcția", fill="#555", bold=True)
|
||||
rect(xw(7) - 8, yw(WK[8][1]) - 4, WGAP + 16, yw(WK[7][2]) - yw(WK[8][1]) + 8, GREEN, 0.12, GREEN)
|
||||
# dreptunghiul de corespondență: exact barele weekly desfăcute în panoul daily
|
||||
ZX1, ZX2, ZY1, ZY2 = xw(Z0) - 8, xw(len(WK) - 1) + 8, WT - 10, w_bottom + 8
|
||||
ZX1, ZX2 = xw(Z0) - 8, xw(len(WK) - 1) + 8
|
||||
ZY1 = yw(max(b[1] for b in WK[Z0:])) - 8 # exact intervalul de preț al celor
|
||||
ZY2 = yw(min(b[2] for b in WK[Z0:])) + 8 # 3 bare mărite, nu tot panoul
|
||||
rect(ZX1, ZY1, ZX2 - ZX1, ZY2 - ZY1, BLUE, 0.07, BLUE, "5 4")
|
||||
text(ZX2 + 12, ZY1 + 14, f"ultimele {ZOOM} săptămâni,", fill=BLUE, size=11)
|
||||
text(ZX2 + 12, ZY1 + 30, "mărite jos", fill=BLUE, size=11)
|
||||
text(ZX2 + 12, ZY1 + 12, f"ultimele {ZOOM} săptămâni,", fill=BLUE, size=11)
|
||||
text(ZX2 + 12, ZY1 + 28, "mărite jos", fill=BLUE, size=11)
|
||||
|
||||
# nivelurile comune, desenate identic pe ambele panouri
|
||||
COMMON = [(DH, f"{DH:.2f}", "high doji"), (DL, f"{DL:.2f}", "low doji")]
|
||||
@@ -169,14 +171,18 @@ for k, (lvl, lab, _) in enumerate(COMMON):
|
||||
text(40, yw(lvl) + (-2 if k == 0 else 11), lab, fill=BLUE, anchor="end", size=10,
|
||||
panel="common")
|
||||
for k in range(ZOOM):
|
||||
text(xw(Z0 + k), ZY2 - 6, f"S{k + 1}", fill=BLUE, anchor="middle",
|
||||
text(xw(Z0 + k), ZY2 + 14, f"S{k + 1}", fill=BLUE, anchor="middle",
|
||||
size=10, bold=True, panel="common")
|
||||
arrow(470, yw(80.50), xw(8) + 11, yw(80.50), GREEN)
|
||||
text(476, yw(80.50) - 4, f"weekly: Buy Doji confirmat (close {WK[8][3]:.2f}, peste "
|
||||
# săgeata verde intră în bara de confirmare pe sub dreptunghiul albastru
|
||||
AP = round((WK[7][1] + WK[8][2]) / 2, 2)
|
||||
assert WK[8][2] < AP < WK[8][1], "săgeata verde nu cade în bara de confirmare"
|
||||
assert yw(AP) > ZY2 + 10, "săgeata verde traversează dreptunghiul S1-S3"
|
||||
arrow(470, yw(AP), xw(8) + 11, yw(AP), GREEN)
|
||||
text(476, yw(AP) - 4, f"weekly: Buy Doji confirmat (close {WK[8][3]:.2f}, peste "
|
||||
f"high-ul doji-ului {WK[7][1]:.2f})", fill=GREEN, bold=True, size=11)
|
||||
text(476, yw(80.50) + 14, "deci direcția permisă e LONG: pe daily cauți doar Buy Doji",
|
||||
text(476, yw(AP) + 14, "deci direcția permisă e LONG: pe daily cauți doar Buy Doji",
|
||||
fill=GREEN, size=11)
|
||||
text(xw(7) + 5, ZY2 + 8, "doji weekly", fill=ORANGE, anchor="end", bold=True, size=10)
|
||||
text(xw(7) + 8, w_bottom + 16, "doji weekly", fill=ORANGE, bold=True, size=10)
|
||||
|
||||
# ---- panoul de jos: daily -----------------------------------------------------
|
||||
PANEL = "daily"
|
||||
@@ -194,8 +200,9 @@ line(ZX1, ZY2, FX1, FT, BLUE, 1.2, "5 4")
|
||||
line(ZX2, ZY2, FX2, FT, BLUE, 1.2, "5 4")
|
||||
out.append(f'<rect x="{FX1:.1f}" y="{FT:.1f}" width="{FX2 - FX1:.1f}" height="{FB - FT:.1f}" '
|
||||
f'fill="none" stroke="{BLUE}" stroke-width="1.5" stroke-dasharray="5 4" rx="3"/>')
|
||||
text(FX2 + 34, ZY2 + 26, f"daily: aceleași {ZOOM} săptămâni, zi cu zi", fill=BLUE, bold=True)
|
||||
text(FX2 + 34, ZY2 + 44, f"({GROUP} zile = o bară weekly; open, close și extremele coincid)",
|
||||
text(FX2 + 34, w_bottom + 12, f"daily: aceleași {ZOOM} săptămâni, zi cu zi",
|
||||
fill=BLUE, bold=True)
|
||||
text(FX2 + 34, w_bottom + 30, f"({GROUP} zile = o bară weekly; open, close și extremele coincid)",
|
||||
fill="#555", size=11)
|
||||
|
||||
rect(xd(7) - 8, yd(DY[7][1]) - 3, DGAP + 16, yd(DY[8][2]) - yd(DY[7][1]) + 6, ORANGE, 0.15, ORANGE)
|
||||
|
||||
Reference in New Issue
Block a user