06 structura: exemplul de triple doji contrazicea regula lui; plus 6 defecte
Verificare independenta fata de harvest/ si transcrieri. Niciun punct
contestat.
Conținut:
- citat inventat, scos: "un wedge in compresie cere volum pentru breakout
masiv" nu exista in transcriere (verificat cu grep, 0 apariții acum). El
spune ca vrea volum mai mare ("as vad sa vad si volumul mai tare"), iar
breakout-ul masiv il leaga de reintrarea in MBT-10. Nu formuleaza nicio
regula. Acelasi citat fals era si in 04, corectat acolo.
- exemplul de triple doji contrazicea regula lui: avea volum de vanzare in
crestere, cand el cere acumulare si divergenta bull de volum (19.08).
Contrazicea si propriul tabel DA/NU de dedesubt, si documentul 05.
Reparat DESENUL, nu textul: volumul scade sub low-ul anterior (divergenta
bull), scade pe cele trei doji (epuizare), trigger-ul are volumul maxim
din serie, iar pe urcare barele verzi au mai mult volum decat cele rosii.
Trei assert-uri noi pe relatiile astea. Tabelul DA/NU a rămas neschimbat
si acum se potriveste.
- trei atribuiri "din curs" erau de fapt din analiza zilnica, verificate
fisier cu fisier in module: conditia McClellan pentru double top (19.08),
inverted H&S pe 60 min ca trigger (25.08, 18.08), si RSP + McClellan +
stochastic (17.08, 19.08). In module McClellan apare doar ca nume. A
patra trimitere, cea catre modulele 2, 3 si 4, e corecta si a rămas.
- doua caption-uri contraziceau desenul ("volumul e cel mai mic din serie",
"cel mai mic volum de la fundul cestii" - de fapt egalitate); corectate
dupa ce arata desenul, unde assert-ul exista deja.
- 44.50 era numit marginea de sus a gap-ului 44.50-44.90, deci de jos.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MtSTyTmt6AbCL9j5ajEDm1
This commit is contained in:
@@ -140,8 +140,8 @@ ch = Chart(candles=cds,
|
||||
Level(tp, f"TP {tp:.2f} = {R:.1f}R", BLUE, label_at="left")],
|
||||
marks=[Mark(3, "SH", INK, "above"), Mark(6, "SL", INK, "below"),
|
||||
Mark(10, "HH", GREEN, "above"), Mark(13, "HL", GREEN, "below"),
|
||||
Mark(17, "HH", GREEN, "above", dy=-14), Mark(20, "HL", GREEN, "below"),
|
||||
Mark(24, "HH", GREEN, "above"), Mark(HL, "HL", GREEN, "below")],
|
||||
Mark(17, "HH", GREEN, "above", dy=-14), Mark(20, "HL", GREEN, "below", dy=12),
|
||||
Mark(24, "HH", GREEN, "above"), Mark(HL, "HL", GREEN, "below", dy=14)],
|
||||
mas=[MA(20, ORANGE, dash="4 3")],
|
||||
scale=24, title="Exemplu construit (fără ticker) — daily",
|
||||
caption="Linia punctată = SMA-20. Bara 27 devine higher low abia când bara 28 închide peste high-ul ei.",
|
||||
@@ -387,7 +387,7 @@ ch = Chart(candles=cds,
|
||||
Level(tp, f"TP {tp:.2f} = {R:.1f}R", BLUE)],
|
||||
marks=[Mark(RL, "margine", INK, "above", dy=-12), Mark(RR, "margine", INK, "above", dy=-12),
|
||||
Mark(DJ, "ceașca", GRAY, "below", dy=4), Mark(BD, "buy doji", GREEN, "above", dy=-20),
|
||||
Mark(25, "mâner", ORANGE, "below", dy=4), Mark(BO, "breakout", GREEN, "above", dy=-4)],
|
||||
Mark(25, "mâner", ORANGE, "above", dy=-2), Mark(BO, "breakout", GREEN, "above", dy=-4)],
|
||||
scale=16, vol_h=70, title="Exemplu construit (fără ticker) — weekly",
|
||||
caption="Trigger = închiderea peste mâner, cu cel mai mare volum din serie; ținta = adâncimea ceștii.",
|
||||
**{**STYLE, "width": 760})
|
||||
@@ -415,11 +415,11 @@ ch = Chart(candles=cds,
|
||||
levels=[Level(PIV_M, "", ORANGE),
|
||||
Level(sl, f"SL {sl:.2f}", RED),
|
||||
Level(entry, f"intrare {entry:.2f}", GREEN)],
|
||||
marks=[Mark(BD, "buy doji", GREEN, "above", dy=-20), Mark(25, "mâner", ORANGE, "below", dy=4),
|
||||
marks=[Mark(BD, "buy doji", GREEN, "above", dy=-20), Mark(25, "mâner", ORANGE, "above", dy=-2),
|
||||
Mark(BO, "breakout fără volum", RED, "above", dy=-4),
|
||||
Mark(stop_bar, "SL atins", RED, "below", dy=4)],
|
||||
scale=16, vol_h=70, title="Exemplu construit (fără ticker) — weekly",
|
||||
caption="Aceeași ceașcă. Breakout-ul are cel mai mic volum de la fundul ceștii încoace: cade înapoi.",
|
||||
caption="Aceeași ceașcă. Breakout-ul are volum sub media mânerului: cade înapoi.",
|
||||
**{**STYLE, "width": 760})
|
||||
svgs["cup_nu"] = add(ch.render(), [lbl_below(ch, PIV_M, f"pivot monthly {PIV_M:.2f}", ORANGE)])
|
||||
S8 = dict(entry=entry, sl=sl, vol=vv[BO], vol_avg=sum(vv[RR:BO]) / (BO - RR), weeks=stop_bar - BO)
|
||||
@@ -455,7 +455,7 @@ ch = Chart(candles=cds,
|
||||
Level(sl, f"SL daily {sl:.2f}", RED)],
|
||||
marks=[Mark(12, "ceașca mică", GRAY, "below", dy=4),
|
||||
Mark(MR, "margine", INK, "above", dy=-26),
|
||||
Mark(25, "mâner mic", ORANGE, "below", dy=5)],
|
||||
Mark(25, "mâner mic", ORANGE, "below", dy=0)],
|
||||
scale=70, title="Exemplu construit (fără ticker) — daily, în mânerul weekly",
|
||||
caption="Cele 6 săptămâni ale mânerului, pe daily: trigger-ul vine cu 2 zile înainte de cel weekly.",
|
||||
**{**STYLE, "width": 760, "gap": 19})
|
||||
@@ -571,7 +571,7 @@ ch = Chart(candles=cds,
|
||||
Mark(BO_W, "breakout fără volum", RED, "above", dy=-18),
|
||||
Mark(stop_bar, "SL atins", RED, "below", dy=20)],
|
||||
scale=30, vol_h=70, title="Exemplu construit (fără ticker) — daily",
|
||||
caption="Aceeași compresie. Close peste linie, dar volumul e cel mai mic din serie: fals.",
|
||||
caption="Aceeași compresie. Close peste linie, dar cu volum sub media wedge-ului: fals.",
|
||||
**{**STYLE, "width": 700})
|
||||
svgs["wedge_desc_nu"] = with_lines(ch, ch.render(), [(*hi, BO_W, ORANGE), (*lo, BO_W, ORANGE)])
|
||||
S11 = dict(entry=entry, sl=sl, vol=cds[BO_W].vol, n=stop_bar - BO_W)
|
||||
@@ -699,7 +699,7 @@ fill = next(i for i in range(iD, len(cds)) if cds[i].l <= gap1[0])
|
||||
assert fill == HAM, "gap-ul de jos trebuie închis chiar de hammer"
|
||||
hm = cds[HAM]
|
||||
assert min(hm.o, hm.c) - hm.l >= 4 * abs(hm.o - hm.c), "bara de închidere nu e hammer"
|
||||
assert abs(gap1[0] - PIV_Q) < 1e-9, "marginea de sus a gap-ului de jos = pivotul quarterly"
|
||||
assert abs(gap1[0] - PIV_Q) < 1e-9, "marginea de jos a gap-ului vechi = pivotul quarterly"
|
||||
assert cds[TRI].c > hm.h
|
||||
entry = cds[TRI].c
|
||||
sl = round(hm.l - 0.2, 2)
|
||||
@@ -737,8 +737,8 @@ cl = [44.0, 43.1, 43.5, 42.2, 41.0, 41.4, 39.9, 38.6,
|
||||
34.2, 34.3, 34.2, # 20-22 triple doji
|
||||
35.3, # 23 trigger
|
||||
35.9, 35.6, 36.7, 37.5, 37.2, 38.4, 39.2]
|
||||
vols = [50, 54, 42, 58, 60, 44, 62, 64, 70, 46, 42, 40, 52, 56, 44, 60, 66, 64, 62, 58,
|
||||
50, 58, 66, 84, 60, 46, 62, 64, 48, 62, 60]
|
||||
vols = [50, 54, 42, 58, 60, 44, 62, 64, 70, 46, 42, 40, 52, 56, 44, 56, 52, 48, 46, 42,
|
||||
36, 34, 32, 84, 66, 40, 70, 72, 42, 76, 80]
|
||||
cds = from_closes(cl, wicks=wk(len(cl), {8: (0.3, 0.6), 11: (0.4, 0.3), 20: (0.5, 0.5), 21: (0.5, 0.5),
|
||||
22: (0.5, 0.5), 23: (0.2, 0.3)}), vols=vols, start=44.6)
|
||||
D3 = [20, 21, 22]
|
||||
@@ -746,7 +746,11 @@ prior_low = cds[8].l
|
||||
assert is_sl(cds, 8) and is_sh(cds, 11)
|
||||
assert all(doji(cds[i]) for i in D3), "cele trei bare nu sunt doji"
|
||||
assert min(c.l for c in cds[12:20]) < prior_low, "low-ul anterior nu e spart înainte de doji"
|
||||
assert vols[20] < vols[21] < vols[22], "volumul nu crește pe cele trei doji (acumulare)"
|
||||
assert max(vols[15:20]) < vols[8], "sub low-ul anterior volumul trebuie să fie mai mic (divergență bull de volum)"
|
||||
assert vols[20] > vols[21] > vols[22] and vols[20] < min(vols[15:20]), "pe doji vânzarea trebuie să se epuizeze"
|
||||
up = [vols[i] for i in range(23, len(cl)) if cl[i] > cl[i - 1]]
|
||||
dn = [vols[i] for i in range(23, len(cl)) if cl[i] < cl[i - 1]]
|
||||
assert vols[23] == max(vols) and min(up) > max(dn), "din oversold, volumul trebuie să fie pe barele verzi (acumulare)"
|
||||
assert max(abs(cds[i].c - cds[20].c) for i in D3) <= 0.15, "doji-urile nu stau la același nivel"
|
||||
d_hi, d_lo = max(cds[i].h for i in D3), min(cds[i].l for i in D3)
|
||||
TR = 23
|
||||
@@ -769,7 +773,7 @@ ch = Chart(candles=cds,
|
||||
Mark(21, "triple doji", GREEN, "below", dy=6),
|
||||
Mark(TR, "trigger", GREEN, "above", dy=-28)],
|
||||
scale=26, vol_h=70, title="Exemplu construit (fără ticker) — weekly",
|
||||
caption="Trei săptămâni la același preț, cu volum în creștere: cineva absoarbe vânzarea.",
|
||||
caption="Sub low volumul scade, pe doji se stinge; trigger-ul și urcarea vin cu volum: acumulare.",
|
||||
**{**STYLE, "width": 700})
|
||||
svg_ = ch.render()
|
||||
assert abs(px_ratio(ch, sl, entry, tp) - R) < 0.01
|
||||
@@ -865,8 +869,8 @@ ch = Chart(candles=cds,
|
||||
Level(entry, f"intrare {entry:.2f}", GREEN),
|
||||
Level(tp, f"TP {tp:.2f} = {R:.1f}R", BLUE)],
|
||||
marks=[Mark(PH, "vârf anterior", INK, "above", dy=-16),
|
||||
Mark(L1, "picior 1", RED, "below", dy=11),
|
||||
Mark(L2, "picior 2", RED, "below", dy=16)],
|
||||
Mark(L1, "picior 1", RED, "below", dy=8),
|
||||
Mark(L2, "picior 2", RED, "below", dy=12)],
|
||||
mas=[MA(20, GRAY, dash="4 3")],
|
||||
scale=26, vol_h=70, title="Exemplu construit (fără ticker) — daily",
|
||||
caption="Linia punctată = SMA-20. Double bottom DUPĂ un impuls, nu după downtrend: e steag.",
|
||||
|
||||
Reference in New Issue
Block a user