diff --git a/gen/strategia_7_micis.py b/gen/strategia_7_micis.py index e4e8bc1..a8706c9 100644 --- a/gen/strategia_7_micis.py +++ b/gen/strategia_7_micis.py @@ -49,6 +49,28 @@ def hi(cds, a, b): return round(max(c.h for c in cds[a:b + 1]), 2) +def run_desc(cds, end): + """Câte bare consecutive, terminând cu `end`, au high-uri descrescătoare. + + Regula strategiei e „5-8 candele"; cititorul numără pe desen după + high-uri (`04_6_...txt:142`), deci eticheta zonei se calculează de aici, + nu se scrie de mână. Altfel desenul ajunge să încalce propria regulă. + """ + k = 1 + while end - k >= 0 and cds[end - k].h > cds[end - k + 1].h: + k += 1 + return k + + +def zona_downtrend(cds, end, color="#c00"): + """Zone(…) peste run-ul descrescător care se termină la bara `end`.""" + n = run_desc(cds, end) + assert 5 <= n <= 8, \ + f"downtrend-ul desenat are {n} candele cu high-uri descrescătoare, " \ + f"iar strategia cere 5-8" + return Zone(end - n + 1, end, f"downtrend {n} candele", color) + + def deco(ch, name, distante=(), intregi=()): """Randează graficul, verifică etichetele, salvează. @@ -90,8 +112,8 @@ CONSTRUIT = "Exemplu construit (fără ticker), la scară. R-urile sunt ale mele # =========================================================== seria construită # Un singur trade construit, folosit de trei diagrame (harta, pasul 1, țintele), # ca să nu se schimbe cifrele de la o secțiune la alta. -CL = ([64.00, 63.00, 62.00, 61.00, 58.50, 56.00, 54.00] # 0-6 context - + [52.00, 50.00, 48.00, 45.50, 43.00, 41.50, 39.90] # 7-13 downtrend, 7 bare +CL = ([64.00, 65.80, 64.30, 65.90, 64.20, 62.80, 64.00] # 0-6 consolidare + + [60.50, 57.00, 53.50, 50.00, 46.50, 43.00, 39.90] # 7-13 downtrend, 7 bare + [40.00] # 14 doji + [45.00] # 15 marubozu de trigger + [43.20, 42.60] # 16-17 pullback-ul @@ -112,6 +134,8 @@ assert (DOJI_LO, DOJI_HI, H_DOJI) == (38.00, 42.00, 4.00), (DOJI_LO, DOJI_HI) assert abs(CDS[14].c - CDS[14].o) <= 0.10 * H_DOJI, "candela 14 nu e doji" assert CDS[15].c > DOJI_HI, "trigger-ul nu închide peste high-ul doji-ului" assert lo(CDS, 7, 13) < lo(CDS, 0, 6), "downtrend-ul numărat nu coboară" +assert run_desc(CDS, 13) == 7, \ + f"înaintea doji-ului trebuie 7 bare cu high descrescător, sunt {run_desc(CDS, 13)}" TRIG_HI, TRIG_LO = hi(CDS, 15, 15), lo(CDS, 15, 15) H_TRIG = round(TRIG_HI - TRIG_LO, 2) # 5.00 @@ -138,17 +162,20 @@ deco(Chart( Level(E1, f"intrare 1/3 la close {E1:.2f}", "#188a3e"), Level(E2, f"limit 1/3 la {E2:.2f}", "#188a3e", label_at="left"), Level(E3, f"limit 1/3 la {E3:.2f}", "#188a3e", label_at="left"), - Level(MED, f"preț mediu {MED:.2f}", "#6a3d9a"), - Level(TP2, f"TP2 {TP2:.2f}", "#1a5fb4"), + # prețul mediu există abia după ce s-a umplut a treia tranșă: + # linia pornește de acolo, deci nu mai taie eticheta limitului + Level(MED, f"preț mediu {MED:.2f}", "#6a3d9a", i0=17), + Level(TP2, f"TP2 {TP2:.2f} — lectura mea", "#1a5fb4", i0=17), Level(TP1, f"TP1 {TP1:.2f}", "#1a5fb4")], marks=[Mark(14, "doji", "#b06000", "below", dy=14), Mark(15, "buy doji", "#188a3e", dy=-6), - Mark(17, "se umplu limiturile", "#188a3e", "below", dy=44), + Mark(5, "consolidare", "#888", "below"), + Mark(17, "se umplu limiturile", "#188a3e", "below", dy=0), Mark(23, "ieși, nu aștepți", "#1a5fb4", dy=-8)], - zones=[Zone(7, 13, "downtrend 7 candele", "#c00"), + zones=[zona_downtrend(CDS, 13), Zone(15, 17, "fereastra de intrare", "#188a3e")], - mas=[MA(20, "#b06000", dash="4 3", text="SMA-20")], - scale=18.0, gap=17, body_w=9, left=52, width=700, vol_h=70, + mas=[MA(20, "#b06000", dash="4 3")], + scale=18.0, gap=17, body_w=9, left=52, width=700, top=76, vol_h=70, vol_label="volum", title="MICIS, tot trade-ul — weekly (exemplu construit)", caption=CONSTRUIT), "harta", distante=(R1, R2, H_DOJI)) @@ -167,7 +194,7 @@ deco(Chart( levels=[Level(PIV, f"pivot quarterly {PIV:.2f}", "#b06000", label_at="left"), Level(DOJI_LO, f"low-ul doji-ului {DOJI_LO:.2f}", "#6a3d9a")], marks=[Mark(25, "doji", "#b06000", dy=-18)], - zones=[Zone(18, 24, "downtrend 7 candele", "#c00")], + zones=[zona_downtrend(cds2, 24)], mas=[MA(20, "#b06000", dash="4 3", text="SMA-20")], scale=8.0, gap=17, body_w=9, left=52, width=700, vol_h=70, vol_label="volum", title="Pasul 1, DA — doji weekly pe pivotul quarterly", @@ -179,18 +206,26 @@ cl3 = (ramp(41.00, 47.00, 6) + [46.50, 47.50] + ramp(47.50, 53.00, 6) + [52.40, 53.20] + ramp(53.20, 59.00, 6) + [58.60, 59.40, 58.80] + [59.00] + [58.40, 57.00, 55.00]) wk3 = [(0.35, 0.35)] * 25 + [(1.60, 1.50)] + [(0.40, 0.40)] * 3 -vl3 = vols(29, 48, 12, i22=38, i23=34, i24=30, i25=26, i26=34, i27=44, i28=52) +# volumul trebuie să scadă pe TOT uptrend-ul, nu doar pe ultimele bare: +# eticheta „volum în scădere" se citește peste zona verde, nu peste 4 bare +vl3 = ([50.0, 52.0, 48.0, 54.0, 50.0, 52.0] + + [62.0, 60.0, 58.0, 56.0, 54.0, 52.0, 50.0, 48.0, 46.0, 44.0, + 42.0, 40.0, 38.0, 36.0, 33.0, 30.0, 28.0, 26.0, 25.0, 24.0] + + [40.0, 56.0, 68.0]) cds3 = from_closes(cl3, wicks=wk3, vols=vl3, start=40.00) assert abs(cds3[25].c - cds3[25].o) <= 0.10 * (cds3[25].h - cds3[25].l), \ "candela 25 nu e doji" assert cds3[25].c > cds3[0].c and hi(cds3, 25, 25) == hi(cds3, 0, 28), \ "doji-ul trebuie să cadă în vârful unui uptrend" assert vl3[25] == min(vl3), "volumul trebuie să fie cel mai mic la doji" +assert all(vl3[i] > vl3[i + 1] for i in range(6, 25)), \ + "barele de volum trebuie să scadă pe toată zona de uptrend, cât ține eticheta" +assert vl3[26] < vl3[27] < vl3[28], "volumul trebuie să revină pe corecție" deco(Chart( candles=cds3, marks=[Mark(25, "doji aici: după uptrend", "#c00", dy=-10), - Mark(22, "volum în scădere", "#c00", "below", dy=24), - Mark(28, "urmează corecția", "#c00", "below", dy=14), + Mark(16, "volum în scădere pe tot uptrend-ul", "#c00", "below", dy=24), + Mark(28, "urmează corecția, cu volum", "#c00", "below", dy=14), Mark(12, "uptrend", "#188a3e", "below", dy=38)], zones=[Zone(6, 24, "", "#188a3e")], mas=[MA(20, "#b06000", dash="4 3", text="SMA-20")], @@ -222,9 +257,12 @@ assert lo(JC, 14, 14) <= J_E2 and lo(JC, 15, 15) <= J_E3, "ladder-ul nu se umple deco(Chart( candles=JC, levels=[Level(J_E1, f"intrare 1/3 la close {J_E1:.2f}", "#188a3e"), + # limiturile există abia după close-ul candelei de trigger, deci + # liniile pornesc de la ea: altfel taie eticheta de dedesubt Level(J_E2, f"limit 1/3 la {J_E2:.2f} = 1/3 din marubozu", "#188a3e", - label_at="left"), - Level(J_E3, "limit 1/3 la 1/2 din marubozu", "#6a3d9a")], + i0=13), + Level(J_E3, "limit 1/3 la 1/2 din marubozu", "#6a3d9a", + label_at="left")], marks=[Mark(12, "doji", "#b06000", "below", dy=14), Mark(13, "marubozu de trigger", "#188a3e", dy=-26), Mark(15, "pullback-ul umple ambele limituri", "#188a3e", "below", dy=38)], @@ -254,7 +292,9 @@ assert lo(AC, 16, 26) > A_E2, "ladder-ul NU trebuie să se umple pe acest desen" deco(Chart( candles=AC, levels=[Level(A_E1, f"intrare 1/3 la close {A_E1:.2f}", "#188a3e"), - Level(A_E2, f"limit 1/3 la {A_E2:.2f} — niciodată atins", "#c00", + # înălțimea candelei nu e rostită pe AMD, deci nivelul de 1/3 nu + # primește cifră — aceeași regulă ca pe JNJ + Level(A_E2, "limit 1/3 — niciodată atins", "#c00", label_at="left"), Level(180.00, "unde a ajuns: 180", "#1a5fb4")], marks=[Mark(14, "doji", "#b06000", "below", dy=14), @@ -273,7 +313,11 @@ N_CL = ([20.00, 23.50, 27.00, 25.00, 31.00, 38.00, 45.00, 42.00, 50.00, 55.00, + [100.50] # 21 doji + [133.00] # 22 marubozu de trigger + [141.00, 152.00, 164.00, 175.00, 182.00]) # 23-27 spre 182 -N_WK = ([(1.50, 1.50)] * 16 + [(3.00, 3.00)] * 5 + [(13.00, 14.50)] +# bara 16 e vârful: fitil de respingere deasupra, ca high-ul ei să fie +# cel mai sus din downtrend și numărătoarea după high-uri să dea 5, cât +# spune eticheta +N_WK = ([(1.50, 1.50)] * 16 + [(5.00, 3.00)] + [(3.00, 3.00)] * 4 + + [(13.00, 14.50)] + [(0.50, 1.50)] + [(2.00, 2.00)] * 5) N_VL = vols(28, 46, 12, i19=66, i20=78, i21=84, i22=104, i23=86, i24=80) NC = from_closes(N_CL, wicks=N_WK, vols=N_VL, start=19.00) @@ -294,7 +338,7 @@ deco(Chart( Level(182.00, "ținta rostită: 182", "#1a5fb4")], marks=[Mark(21, "doji monthly, înălțime 28", "#b06000", "below", dy=16), Mark(22, "marubozu de trigger", "#188a3e", dy=-70)], - zones=[Zone(16, 20, "downtrend 5 candele", "#c00")], + zones=[zona_downtrend(NC, 20)], mas=[MA(20, "#b06000", dash="4 3", text="SMA-20")], scale=2.4, gap=19, body_w=10, left=58, width=700, top=60, vol_h=70, vol_label="volum", title="Pasul 3, stopul — NVDA monthly", @@ -312,18 +356,18 @@ deco(Chart( candles=cds4, levels=[Level(SL, f"SL {SL:.2f}", "#c00", label_at="left"), Level(MED, f"preț mediu {MED:.2f}", "#6a3d9a"), - Level(E1, f"intrare 1 la {E1:.2f}", "#188a3e"), + Level(E1, f"intrare 1/3 la {E1:.2f}", "#188a3e"), Level(TP2, f"TP2 {TP2:.2f}", "#1a5fb4"), Level(TP1, f"TP1 {TP1:.2f}", "#1a5fb4")], arrows=[Arrow(10, f"TP2 = 1R pe medie ({R2:.2f})", price=TP2, where="left", - color="#1a5fb4", dx=-6), + color="#1a5fb4", dx=-6, dy=-16), Arrow(12, f"TP1 = 1R pe prima tranșă ({R1:.2f})", price=TP1, where="above", color="#1a5fb4", dy=-10)], mas=[MA(20, "#b06000", dash="4 3", text="SMA-20")], scale=13.0, gap=28, body_w=14, left=60, width=700, top=56, title="Pasul 4, cele două ținte — weekly (exemplu construit)", - caption="Mediind în jos, 1R se scurtează: TP2 vine înaintea lui TP1. " - "R-urile sunt ale mele."), + caption="Lectura mea: mediind în jos, TP2 vine înaintea lui TP1. " + "Fraza-sursă e neinteligibilă aici."), "pasul4_tinte", distante=(R1, R2)) # --------------------------------------------------- 8. pasul 5 — trail-ul @@ -334,23 +378,37 @@ cl5 = (ramp(44.00, 50.00, 5) + [49.20, 48.60, 49.40] # 0-7 trail 1 wk5 = [(0.40, 0.40)] * 30 vl5 = vols(30, 50, 12) cds5 = from_closes(cl5, wicks=wk5, vols=vl5, start=43.00) +# fiecare trail e declanșat de un swing low anume; linia lui pornește de la +# bara aceea, nu din marginea desenului +SW = [6, 14, 22, 29] t1, t2, t3, t4 = (lo(cds5, 5, 7), lo(cds5, 13, 15), lo(cds5, 21, 23), lo(cds5, 28, 29)) assert t1 < t2 < t3 < t4, (t1, t2, t3, t4) +# regresia de prins: o linie de trail nu are voie să treacă pe deasupra +# prețului la dreapta ei — altfel desenul arată o poziție deja stopată +for _i0, _t in zip(SW, (t1, t2, t3, t4)): + assert all(c.l >= _t - 1e-9 for c in cds5[_i0:]), \ + f"trail-ul {_t} de la bara {_i0} trece peste low-ul unei bare de după" + assert lo(cds5, max(0, _i0 - 1), min(_i0 + 1, len(cds5) - 1)) == _t, \ + f"trail-ul {_t} nu e ancorat de swing low-ul de la bara {_i0}" deco(Chart( candles=cds5, - levels=[Level(t1, f"trail 1: {t1:.2f}", "#c00", label_at="left"), - Level(t2, f"trail 2: {t2:.2f}", "#c00", label_at="left"), - Level(t3, f"trail 3: {t3:.2f}", "#c00"), - Level(t4, f"trail 4: {t4:.2f}", "#c00")], - marks=[Mark(6, "swing low", "#c00", "below", dy=14), - Mark(14, "swing low mai sus → muți stopul", "#c00", dy=-10)], - mas=[MA(20, "#b06000", dash="4 3", text="SMA-20")], + # etichetele la dreapta: la stânga ar cădea peste candele, pentru că + # fiecare linie începe acum în mijlocul desenului + levels=[Level(t1, f"trail 1: {t1:.2f}", "#c00", i0=SW[0]), + Level(t2, f"trail 2: {t2:.2f}", "#c00", i0=SW[1]), + Level(t3, f"trail 3: {t3:.2f}", "#c00", i0=SW[2]), + Level(t4, f"trail 4: {t4:.2f}", "#c00", i0=SW[3])], + marks=[Mark(6, "swing low 1", "#c00", "below", dy=14), + Mark(14, "swing low 2", "#c00", "below", dy=14), + Mark(22, "swing low 3", "#c00", "below", dy=14), + Mark(29, "swing low 4", "#c00", "below", dy=14)], + mas=[MA(20, "#b06000", dash="4 3")], scale=7.0, gap=17, body_w=9, left=52, width=700, top=64, vol_h=70, vol_label="volum", title="Pasul 5, trail pe swing low — weekly (decizia a fost pe monthly)", - caption="Exemplu construit (fără ticker). Stopul urcă doar la un swing low " - "mai sus; nu coboară niciodată."), "pasul5_trail") + caption="Fiecare linie de trail pornește de la swing low-ul care o " + "declanșează; stopul nu coboară niciodată."), "pasul5_trail") # ------------------------------------- 9. când nu merge (Tesla, 217.02/214.25) T_CL = ([320.00, 312.00, 304.00, 298.00] # 0-3 @@ -358,25 +416,31 @@ T_CL = ([320.00, 312.00, 304.00, 298.00] # 0-3 + [232.00] # 12 buy hammer + [228.00, 222.00, 216.00] # 13-15 scoate stopul + [225.00] # 16 al doilea semnal - + [240.00, 252.00, 262.00, 272.00, 282.00, 290.00, 298.00] # 17-23 - + [295.00, 302.00]) # 24-25 + + [240.00, 252.00, 262.00, 272.00, 282.00, 290.00, 298.00]) # 17-23 T_WK = ([(3.00, 3.00)] * 12 + [(2.00, 12.98)] + [(2.00, 2.00), (2.00, 2.00), (1.00, 1.75)] - + [(2.00, 2.00)] * 10) -T_VL = vols(26, 46, 12, i12=72, i15=78, i16=84, i17=88, i18=80) + + [(2.00, 2.00)] * 8) +T_VL = vols(24, 46, 12, i12=72, i15=78, i16=84, i17=88, i18=80) TC = from_closes(T_CL, wicks=T_WK, vols=T_VL, start=326.00) assert lo(TC, 12, 12) == 217.02, f"low-ul hammer-ului trebuie 217.02, e {lo(TC, 12, 12)}" assert lo(TC, 13, 15) == 214.25, f"minimul următor trebuie 214.25, e {lo(TC, 13, 15)}" assert 214.25 < 217.02, "al doilea minim e sub low-ul hammer-ului" assert len(TC[17:24]) == 7, "urcarea rostită e de 7 săptămâni" +assert len(TC) == 24, "după al doilea semnal se desenează exact cele 7 bare rostite" +assert all(TC[i].c < TC[i + 1].c for i in range(17, 23)), \ + "cele 7 bare etichetate ca urcare trebuie să urce toate" deco(Chart( candles=TC, - levels=[Level(214.25, "minimul de după: 214.25", "#c00")], + levels=[Level(217.02, "low-ul hammer-ului: 217.02", "#b06000", + label_at="left"), + # cele două minime sunt la 2.77 dolari: eticheta celui de jos + # trece sub propria linie, altfel o taie linia de deasupra + Level(214.25, "minimul de după: 214.25", "#c00", label_dy=18)], marks=[Mark(12, "buy hammer — primul semnal", "#b06000", dy=-10), Mark(17, "al doilea semnal, acesta merge", "#188a3e", dy=-10), Mark(23, "7 săptămâni de urcare", "#188a3e", dy=-10)], - arrows=[Arrow(12, "low-ul hammer-ului: 217.02;\nstopul pus sub el a fost luat", - price=217.02, where="left", color="#b06000", dx=-10, dy=-26)], + arrows=[Arrow(15, "stopul pus sub 217.02\na fost luat aici", + price=214.25, where="below", color="#c00", dy=4)], mas=[MA(20, "#b06000", dash="4 3", text="SMA-20")], scale=2.6, gap=19, body_w=10, left=58, width=700, vol_h=70, vol_label="volum", title="Când nu merge — Tesla weekly", @@ -419,7 +483,7 @@ SVG["flux"] = """
@@ -47,14 +48,18 @@ pentru că vine de la […] instituțional […] vine de la corecție […] I-ul vine de la investiții și S-ul de la swing" — autorul însuși ezită pe litere, și spune „nici mai știu exact de ce am numit-o" așa.Avertismentul pe care îl repetă toată lecția: nu merg toate. Pe weekly și -monthly stopurile sunt uriașe în procente (la NVDA, 56% distanță), iar un semnal +monthly stopurile sunt uriașe în procente (pe NVDA rostește 56%, deși cifra nu +se verifică pe nivelurile pe care le dă — vezi pasul 3), iar un semnal ratat urmat de al doilea care merge e situația normală, nu excepția.
E strategie de swing trading pe perioadă lungă și de investiție în companii individuale. Nu se poate face day trading sau scalping cu ea, și nu merge pe conturi de prop cu reguli de drawdown zilnic: dacă ai intrat pe weekly stai -minim 3 săptămâni, iar dacă ai intrat pe monthly „poți să stai și 2 ani, 3 ani -în tranzacție". Cursul e categoric: „dacă vrei să dai turnuri în trei zile, +câteva săptămâni — fraza-sursă e neinteligibilă aici („3 din păie de stat"), +deci „minim 3 săptămâni" e lectura mea, sprijinită de exemplul de dinainte, cu +„16% în una, două, trei, patru, cinci săptămâni" —, iar dacă ai intrat pe +monthly „poți să stai și 2 ani, 3 ani în tranzacție". Partea cu monthly e +rostită limpede; cea cu weekly nu. Cursul e categoric: „dacă vrei să dai turnuri în trei zile, strategia asta nu merge".
Ce nu-ți trebuie: analiză fundamentală. „Nu e nevoie să știi o iotă de fundamental […] doar tehnic poți tranzacționa cu strategia asta." Dacă știi @@ -67,9 +72,12 @@ să poți citi pașii fără să te oprești.
minus low) și fitile în ambele părți: deschiderea și închiderea sunt aproximativ la același preț. Pe weekly sau monthly, o astfel de candelă poate avea 28 de dolari înălțime, cum are cea de la NVDA mai jos. -Exemplul e al lui, pe NVDA monthly. Doji-ul are 28 de dolari înălțime și low-ul la 86. O treime deasupra low-ului e, „aproximativ din ochi, pe la -94. Versus normal trebuia să-l ai la 86" — adică varianta 2/3 taie -jumătate din risc față de stopul sub low. (Strict calculat, o treime din 28 +94. Versus normal trebuia să-l ai la 86" — adică, măsurat de la +close-ul de trigger de 133, stopul la 94 e la 29,3% distanță, iar cel de +sub low, la 86, la 35,3%. Varianta 2/3 scade riscul cu o treime din +înălțimea doji-ului, nu cu jumătate. (Strict calculat, o treime din 28 deasupra lui 86 dă 95.33; el citește 94 pe grafic. Diferența e a lui, nu o corectez — pe monthly, un dolar nu schimbă decizia.)
Și acum partea pe care o spune direct, fără să o îmbrace: stopul ăsta e uriaș -în procente. Cu intrarea la 133 și stopul sub low-ul doji-ului, „ce stop -loss trebuie să ai tu aici cu prima poziție 1/3? […] chiloții la 56% asumare -pierdere? Bă, 56%." Pe Dell spune „stop loss-ul inițial, 68%", iar pe MLM +în procente: „ce stop loss trebuie să ai tu aici cu prima poziție 1/3? […] +chiloții la 56% asumare pierdere? Bă, 56%."
+Atenție la cifra asta, pentru că nu se verifică pe nivelurile pe care le +dă el. 56% e rostit separat, fără să fie legat de un preț de intrare; de la +close-ul de trigger de 133 până la 86 sunt 35,3%, nu 56%. Cel mai aproape de +56% ajungi socotind distanța ca procent din nivelul stopului (47/86 = 54,6%) — +probabil de acolo îi vine cifra, dar e o speculație a mea. Reține ordinul de +mărime („stop uriaș, de câteva zeci de procente"), nu numărul. Pe Dell spune +că stop loss-ul inițial e „68 la 100" [sic], iar pe MLM măsoară „21%" pe varianta cu 4 candele în spate și „în loc de 21 aveai un 17" pe varianta de 2/3. Astea nu sunt stopuri de day trading; sunt stopuri de poziție de investiție, și de-aia pasul 6 (mărimea poziției) nu e opțional.
@@ -855,72 +871,82 @@ TP1 ăsta este egal cu TP2 inițial. Pentru că dacă tu intri la 1/3, exact câ s-a terminat candela, TP1 e TP2. Dar pe măsură ce intri cu poziția a doua și poziția a treia tu vei face un average." Deci TP2 e aceeași regulă de 1R, dar recalculată pe prețul mediu după ce s-au umplut tranșele 2 și 3. La prima -tranșă cele două coincid; se despart abia când mediezi. +tranșă cele două coincid; se despart abia când mediezi. Partea cu „se +despart" e lectura mea — vezi rezerva de după diagramă. -Pe exemplul construit se vede efectul, și e contraintuitiv: mediind în jos,
-1R se scurtează. Prețul mediu al celor trei tranșe e 43.61, stopul 39.33, deci
-1R e 4.28 și TP2 cade la 47.89 — sub TP1 de 50.67, care e 1R socotit pe prima
-tranșă intrată la 45.00. Ținta vine mai repede și cu risc mai mic pe acțiune.
-Cifrele astea sunt derivările mele pe exemplul construit; cursul dă regula, nu
-exemplul numeric. Avertismentul lui despre asta: „o să-ți dea un average la un
+ Aici e o lectură a mea, nu o regulă rostită. Fraza-sursă e neinteligibilă
+exact în punctul care contează: ea spune doar că la prima tranșă TP1 = TP2 și că
+pe măsură ce intri cu tranșele 2 și 3 „o să-ți dea un average" — dar nu spune
+care dintre cele două ținte se recalculează pe medie. Lectura pe care o
+folosesc în document: TP2 e 1R socotit pe prețul mediu, deci cade sub TP1.
+Varianta alternativă, cel puțin la fel de plauzibilă, e că se recalculează și
+ținta și stopul pe prețul mediu („vezi cum calculezi TP-ul și SL-ul"), caz
+în care TP1 și TP2 rămân identice și după mediere, iar „TP2 sub TP1" nu se mai
+produce. Diagramele de mai sus desenează prima variantă, marcată ca lectură. Pe lectura asta, pe exemplul construit, efectul e contraintuitiv: mediind în
+jos, 1R se scurtează. Prețul mediu al celor trei tranșe e 43.61, stopul 39.33,
+deci 1R e 4.28 și TP2 cade la 47.89 — sub TP1 de 50.67, care e 1R socotit pe
+prima tranșă intrată la 45.00. Ținta vine mai repede și cu risc mai mic pe
+acțiune. Cifrele astea sunt derivările mele pe exemplul construit; cursul dă
+regula, nu exemplul numeric. Avertismentul lui despre asta: „o să-ți dea un average la un
moment dat […] vezi cum calculezi TP-ul și SL-ul, că o să-ți dea o medie" — cu
alte cuvinte, recalculează, nu lăsa ordinele vechi. Cât aștepți: ținta vine „între 5 și 10 perioade. Dacă sunt pe weekly, ar trebui
@@ -940,16 +966,15 @@ trebuit să mai pun un slash."
De ce un timeframe mai mic și nu același: pe weekly, între două swing low-uri pot trece șase săptămâni — „ăsta era ultimul trail și următorul trail s-a format @@ -1052,8 +1079,8 @@ peste […] șase săptămâni de la trail-ul ăsta". Un trail atât de larg te foarte departe cu poziția („te duci cu el țeavă"), dar dacă l-ai pune pe monthly, după o decizie luată pe monthly, n-ai muta stopul decât o dată pe trimestru.
-Cât stai, în practică, din exemplele lui: 3 săptămâni minim dacă ai intrat pe -weekly; pe Johnson & Johnson a trebuit să stai „1, 2, 3 … 12 săptămâni, și abia +
Cât stai, în practică, din exemplele lui: câteva săptămâni dacă ai intrat pe +weekly (minimul de 3 e lectura mea, vezi mai sus); pe Johnson & Johnson a trebuit să stai „1, 2, 3 … 12 săptămâni, și abia în a 13-a vedeai profitul"; pe Alibaba, 14 săptămâni. Pe monthly, 2-3 ani.
Maxim 1-2-3% din cont, și „când zic mărimea totală a poziției, mă refer la @@ -1065,9 +1092,10 @@ pe prima tranșă. „Când calculezi stop loss-ul, să nu reprezinte 2% din tot real rămâne o treime din cel calculat — e în favoarea ta, nu invers. Invers, dacă dimensionezi pe prima treime și se umplu toate, ai de trei ori riscul pe care l-ai aprobat.
-Cu un stop de 56% ca la NVDA, aritmetica e brutală și merită scrisă o dată: -dacă accepți să pierzi 2% din cont și stopul e la 56% distanță, poziția nu poate -depăși ~3,5% din cont. Asta e derivarea mea, nu o cifră din curs — dar e +
Cu un stop de ordinul celui de pe NVDA, aritmetica e brutală și merită scrisă o +dată: dacă accepți să pierzi 2% din cont și stopul e la 35% distanță, poziția nu +poate depăși ~5,7% din cont; la 56%, cât rostește el, ~3,5%. Astea sunt +derivările mele, nu cifre din curs — dar sunt motivul pentru care pasul 6 nu e o formalitate pe timeframe-urile astea.
Partea cea mai practică a lecției, și cea pe care o repetă la final de două ori. @@ -1082,7 +1110,7 @@ citește candela în formare.
Exemplul cu cifre e Tesla, și e instructiv pentru că arată exact ce face alegerea stopului:
-„Uite, buy hammer-ul ăsta n-a mers, de exemplu. Acum depinde unde aveai stop loss-ul. Dacă low-ul ăsta de aici e 217.02, low-ul ăsta de aici este @@ -1308,7 +1332,10 @@ rutină și diagrama de divergență (forma lor; cifrele de volum sunt citirile lui).
Ce rămâne neclar în sursă, fără să inventez o rezolvare: eticheta TP2 e rostită neinteligibil („bit, bich, TPU normal"), iar lămurirea o dă doar -indirect, prin explicația cu media; și litera I din MICIS are două justificări +indirect, prin explicația cu media — nu spune care dintre ținte se recalculează +pe prețul mediu, deci „TP2 sub TP1" rămâne lectura mea, marcată ca atare pe +diagrame; cifra de 56% nu se verifică pe nivelurile rostite în același exemplu; +fraza despre cât stai pe weekly („3 din păie de stat") e neinteligibilă; și litera I din MICIS are două justificări în același paragraf (instituțional și investiții), autorul recunoscând că nu mai ține minte.