08 si 09: reparate 11 defecte de continut plus pasul vizual
Verificare independenta pe continut, aritmetica si, separat, pe 31 de
screenshot-uri citite. Niciun punct contestat.
08:
- TP1/TP2 era atribuit la Strategia 3, care are 1:1 / trail / lasata sa
curga, fara TP2. Schema 1:1 / 2:1 / trail e insa a lui, din Q&A
11.06.2025 - atribuire corectata cu ancora verificata, si scoasa din
lista de completari, unde figura greșit ca adaugire a autorului. La Surse,
Strategia 3 rămâne, cu mențiunea "TP la 1:1 si trail, fara TP2".
- "dupa TP1 stopul pozitiilor 2 si 3 trece la break-even" nu era in nicio
sursa si contrazicea sursa: acolo a treia poate sta pe stopul initial,
fiindca dupa 1R si 2R totalul ramane pe profit. Inlocuit cu calculul lui
(-8 $ fata de +24 $). Agentul a prins si o fraza vecina falsa pe desen.
- gotcha de volatilitate era inversul regulii din 02.09 (stop pe break-even
pana se lamureste). Corectat dupa sursa.
- "pretul e respins chiar la SMA-200" era fals pe seria desenata: o bara
inchidea peste medie. Reparat DESENUL, nu textul - doua close-uri
schimbate, cu assert ca nicio bara nu mai inchide peste SMA dupa
atingere. Cifrele din tabel neschimbate.
09:
- "pullback-ul il atinge a doua zi dupa intrare" nu corespundea desenului:
stopul e atins la a doua bara, nu in ziua urmatoare. Corectat in ambele
locuri, cu assert pe bara.
- eticheta "stop" era scrisa peste linia "sus gap 66.70", deci pe imagine
parea ca stopul a fost acolo, nu la 68.60. Mark se ancoreaza doar pe
candele si nu incapea nicaieri curat, asa ca informatia a trecut in
eticheta nivelului, cu assert pe bara de atingere.
- trei parafraze ale recoltei nu mai apar ca citate ale lui, iar condiția de
la pre-earnings e atribuita explicit recoltei din 25.08, cu mențiunea ca
nu e in citatul lui.
- rezerva lui la pattern-ul pre-earnings ("nu suta la suta") e adaugata si
in enumerarea edge-urilor, singurul loc care o slabea.
- "-6%" apare acum la toate trei raportarile, cum spune textul.
Doua limite lasate cu bună știință, nu reparate: la transe liniile de 418 si
419 se vad ca una, iar la tinta de 1/2 linia de confluenta si SL-ul sunt la
0.10 $ - in ambele cazuri apropierea vine din date, si depărtarea ar cere
schimbarea cifrelor din text.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MtSTyTmt6AbCL9j5ajEDm1
This commit is contained in:
@@ -231,7 +231,7 @@ def be_chart(tail, name, nu):
|
||||
Seg(mv, n - 1, r1, f"+1R {f2(r1)}: aici muți stopul", GRAY, dash="2 3")]
|
||||
marks = [Mark(T, "intrare", GREEN, "below", dy=4), Mark(mv, "+1R", GRAY, "above", dy=-2)]
|
||||
if nu:
|
||||
marks += [Mark(out, "scos la 0", ORANGE, "below", dy=4), Mark(hit, "4R, fără tine", BLUE, "above", dy=-2)]
|
||||
marks += [Mark(out, "scos la 0", ORANGE, "below", dy=4), Mark(hit, "4R, fără tine", BLUE, "above", dy=-6)]
|
||||
cap = "Codița coboară până la intrare (25.39): ieși pe zero, apoi prețul merge la țintă."
|
||||
else:
|
||||
marks += [Mark(hit, "4R", BLUE, "above", dy=-2)]
|
||||
@@ -265,7 +265,7 @@ per = n5 // 3
|
||||
assert sl < min(c.l for c in cds[T - 3:T + 1]) and n5 == 48
|
||||
h1 = first(cds, T + 1, lambda c: c.h >= tp1)
|
||||
h2 = first(cds, h1 + 1, lambda c: c.h >= tp2)
|
||||
assert min(c.l for c in cds[T + 1:h1 + 1]) > sl and min(c.l for c in cds[h1 + 1:]) > entry, "BE nu e atins"
|
||||
assert min(c.l for c in cds[T + 1:]) > sl, "stopul inițial nu e atins"
|
||||
# trail: linia = low-ul ultimei candele care a închis peste high-ul precedentei; urcă doar; ieși la close sub ea
|
||||
trail, steps, ex = None, [], None
|
||||
for i in range(h1 + 1, len(cds)):
|
||||
@@ -284,8 +284,8 @@ print(f"D5 entry {f2(entry)} SL {f2(sl)} {n5}={per}x3; TP1 {f2(tp1)} la {h1}, TP
|
||||
f"({R_tot:.2f}R pe riscul de {f2(n5 * (entry - sl))})")
|
||||
TP3 = dict(entry=entry, sl=sl, tp1=tp1, tp2=tp2, n=n5, per=per, x=x_price, pnl=pnl, R=R_tot, steps=steps,
|
||||
risk=n5 * (entry - sl), h1=h1 - T, h2=h2 - T, ex=ex - T)
|
||||
segs = [Seg(T, h1, sl, f"SL {f2(sl)} (toate 3)", RED),
|
||||
Seg(T, len(cds) - 1, entry, f"intrare {f2(entry)}; după TP1 = stop la zero", GREEN),
|
||||
segs = [Seg(T, steps[0][0] - 1, sl, f"SL inițial {f2(sl)} (toate 3)", RED),
|
||||
Seg(T, len(cds) - 1, entry, f"intrare {f2(entry)}", GREEN),
|
||||
Seg(T, h1, tp1, f"TP1 {f2(tp1)} = 1R: poziția 1", BLUE, dash="4 3"),
|
||||
Seg(T, h2, tp2, f"TP2 {f2(tp2)} = 2R: poziția 2", PURPLE, dash="4 3")]
|
||||
for k, (i, p) in enumerate(steps):
|
||||
@@ -330,9 +330,9 @@ print(f"D6 vârf {f2(hi)} entry {f2(entry)} SL {f2(sl)} risc {f2(risk)} 1/2 {f2(
|
||||
HALF = dict(hi=hi, entry=entry, sl=sl, risk=risk, half=half, Rh=Rh, Rg=Rg, peak=peak, hh=hh - T,
|
||||
covered=(peak - entry) / (hi - entry))
|
||||
n = len(cds)
|
||||
common = [Seg(0, n - 1, SUP, f"confluență S2 + suport monthly {SUP:.2f}", PURPLE, dash="2 3"),
|
||||
common = [Seg(0, n - 1, SUP, "", PURPLE, dash="2 3"),
|
||||
Seg(T, n - 1, entry, f"intrare {f2(entry)}", GREEN),
|
||||
Seg(T, n - 1, sl, f"SL {f2(sl)} = −1R", RED)]
|
||||
Seg(T, n - 1, sl, f"SL {f2(sl)} = −1R, sub confluența S2 + monthly {SUP:.2f} (mov)", RED)]
|
||||
ch = PChart(candles=cds,
|
||||
segs=common + [Seg(top, n - 1, hi, f"vârf anterior {f2(hi)}", GRAY, dash="4 3"),
|
||||
Seg(T, n - 1, half, f"TP = 1/2 din distanță {f2(half)} = {Rh:.1f}R", BLUE, dash="4 3")],
|
||||
@@ -386,14 +386,14 @@ t1, t2, t3 = trades
|
||||
n = len(cds)
|
||||
ch = PChart(candles=cds,
|
||||
segs=[Seg(t3["i"], n - 1, t3["tp"], f"#3 TP {f2(t3['tp'])} = 4R = +100 $", BLUE, dash="4 3"),
|
||||
Seg(t1["i"], t1["stop"], t1["e"], f"#1 intrare {f2(t1['e'])} ({t1['n']} acț.)", GREEN),
|
||||
Seg(t1["i"], t1["stop"], t1["s"], f"#1 SL {f2(t1['s'])}: −25 $", RED),
|
||||
Seg(t2["i"], t2["stop"], t2["e"], f"#2 intrare {f2(t2['e'])} ({t2['n']} acț.)", GREEN),
|
||||
Seg(t2["i"], t2["stop"], t2["s"], f"#2 SL {f2(t2['s'])}: −25 $", RED),
|
||||
Seg(t1["i"], t1["stop"], t1["e"], f"#1 intrare {f2(t1['e'])} ({t1['n']} acț.)", GREEN, "left"),
|
||||
Seg(t1["i"], t1["stop"], t1["s"], f"#1 SL {f2(t1['s'])}: −25 $", RED, "lm"),
|
||||
Seg(t2["i"], t2["stop"], t2["e"], f"#2 intrare {f2(t2['e'])} ({t2['n']} acț.)", GREEN, "left"),
|
||||
Seg(t2["i"], t2["stop"], t2["s"], f"#2 SL {f2(t2['s'])}: −25 $", RED, "lm"),
|
||||
Seg(t3["i"], t3["hit"], t3["e"], f"#3 intrare {f2(t3['e'])} ({t3['n']} acț.)", GREEN),
|
||||
Seg(t3["i"], t3["hit"], t3["s"], f"#3 SL {f2(t3['s'])}", RED)],
|
||||
marks=[Mark(t1["i"], "#1", GREEN, "above", dy=-2), Mark(t1["stop"], "stop", RED, "below", dy=4),
|
||||
Mark(t2["i"], "#2", GREEN, "above", dy=-2), Mark(t2["stop"], "stop", RED, "below", dy=4),
|
||||
marks=[Mark(t1["stop"], "stop", RED, "below", dy=4),
|
||||
Mark(t2["stop"], "stop", RED, "below", dy=4),
|
||||
Mark(t3["i"], "#3", GREEN, "above", dy=-4), Mark(t3["hit"], "4R", BLUE, "above", dy=-2)],
|
||||
scale=170, title="Exemplu construit (fără ticker) — 5 min",
|
||||
caption="Două stopuri de câte 25 $, a treia intrare cu același risc: −25 −25 +100 = +50 $.", **STYLE)
|
||||
@@ -438,8 +438,10 @@ n = len(cds)
|
||||
ch = PChart(candles=cds,
|
||||
segs=[Seg(top, n - 1, tgt, f"țintă: vârful anterior {tgt:.0f}", BLUE, dash="4 3"),
|
||||
Seg(SH, n - 1, sh, f"vârful după HL {sh:.0f} (aici NU cumperi tot)", GRAY, dash="2 3")]
|
||||
+ [Seg(i, n - 1, p, f"tranșa {k + 1}: {per9} acț. la {p:.0f} ({nm})", GREEN)
|
||||
for k, (i, p, nm) in enumerate(lv)]
|
||||
+ [Seg(lv[0][0], n - 1, lv[0][1], f"tranșele 1 și 3: câte {per9} acț. la {lv[0][1]:.0f} / {lv[2][1]:.0f}", GREEN),
|
||||
Seg(lv[1][0], n - 1, lv[1][1], f"tranșa 2: {per9} acț. la {lv[1][1]:.0f} (1/3)", GREEN),
|
||||
Seg(lv[2][0], n - 1, lv[2][1], "", GREEN),
|
||||
Seg(lv[3][0], n - 1, lv[3][1], f"tranșa 4: {per9} acț. la {lv[3][1]:.0f} (2/3)", GREEN)]
|
||||
+ [Seg(CF, n - 1, sl9, f"SL comun {sl9:.0f} (sub HL {cds[HL].l:.0f})", RED)],
|
||||
marks=[Mark(11, "low", GRAY, "below", dy=4), Mark(HL, "HL", GREEN, "below", dy=4),
|
||||
Mark(SH, "vârf", GRAY, "above", dy=-2), Mark(hit, "țintă", BLUE, "above", dy=-2)],
|
||||
@@ -459,7 +461,7 @@ cl10 = [60.40, 60.10, 60.50, 60.20,
|
||||
48.85, # 23 doji
|
||||
49.60, # 24 buy doji
|
||||
50.20, 49.90, 50.70, 51.30, 51.00, 51.80, 52.60, 52.20, 53.00, 53.80, 53.40, 54.30, 55.00, 54.60, 55.50,
|
||||
56.20, 55.90, 56.70, 57.00, 56.30]
|
||||
56.20, 55.90, 56.70, 56.40, 55.90]
|
||||
w10 = [(0.2, 0.2)] * 4 + [(0.05, 0.05)] + [(0.2, 0.2)] * 18 + [(0.4, 0.4)] + [(0.2, 0.2)] * 21
|
||||
cds = from_closes(cl10, wicks=w10, start=60.30)
|
||||
MAR, DJ, T = 4, 23, 24
|
||||
@@ -483,7 +485,7 @@ sma_hit = sma[hits["SMA-200"]]
|
||||
assert R1 < R2 < ph < sma_hit < half_m < sup, (R1, R2, ph, sma_hit, half_m, sup)
|
||||
assert hits["R1"] < hits["R2"] < hits["vârf"] < hits["SMA-200"]
|
||||
assert max(c.h for c in cds[T + 1:]) < half_m and min(c.l for c in cds[T + 1:]) > sl
|
||||
assert cds[-1].c < sma[-1], "respins sub SMA-200"
|
||||
assert all(cds[i].c < sma[i] for i in range(hits["SMA-200"], len(cds))), "după atingere, nicio bară nu închide peste SMA-200"
|
||||
rs = {k: (p - entry) / risk for k, p in [("R1", R1), ("R2", R2), ("vârf", ph), ("SMA-200", sma_hit),
|
||||
("1/2 marubozu", half_m), ("fost suport", sup)]}
|
||||
print(f"D10 entry {f2(entry)} SL {f2(sl)} risc {f2(risk)}; R1 {R1} R2 {R2} vârf {f2(ph)} SMA-200 la atingere "
|
||||
|
||||
Reference in New Issue
Block a user