diff --git a/gen/az_structura.py b/gen/az_structura.py index 2742aa0..edb6f15 100644 --- a/gen/az_structura.py +++ b/gen/az_structura.py @@ -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.", diff --git a/summaries/08_ANALIZA_ZILNICA/06_structura_trend.html b/summaries/08_ANALIZA_ZILNICA/06_structura_trend.html index c697be2..5d47ecd 100644 --- a/summaries/08_ANALIZA_ZILNICA/06_structura_trend.html +++ b/summaries/08_ANALIZA_ZILNICA/06_structura_trend.html @@ -218,9 +218,9 @@ low dacă se închide candela de-aici." (10.09)
Intrarea la confirmarea piciorului 2 dă stopul cel mai strâns. Cine așteaptă breakout-ul peste 33.30 intră mai sus, cu același stop, deci cu R mai mic. -Invalidarea din curs (10.09): dacă breakout-ul peste ultimul vârf nu vine, +Invalidarea din analiza zilnică (10.09): dacă breakout-ul peste ultimul vârf nu vine, „rămâne doar double bottom cu al doilea picior mai sus" — nu e încă trend.
@@ -907,7 +907,7 @@ star […] iministar-ul, știți că este un pattern din 3 candele" (19.08) -McClellan nu e pe desen: condiția din curs rămâne obligatorie, diagrama +
McClellan nu e pe desen: condiția din analiza zilnică (19.08) rămâne obligatorie, diagrama arată doar prețul.
7. Cup & handle (ceașca cu mâner)
@@ -1053,7 +1053,7 @@ pivotului, vedeți ce frumusețe de ceașca cu mâner." (03.09)margine ceașca buy doji -mâner +mâner breakout Trigger = închiderea peste mâner, cu cel mai mare volum din serie; ținta = adâncimea ceștii. pivot monthly 47.50 @@ -1065,7 +1065,7 @@ pivotului, vedeți ce frumusețe de ceașca cu mâner." (03.09) urcare înapoi la 50.30. Adâncime 8.10.Buy doji în fundul ceștii — varianta preferată de el: trigger-ul sistemului pornește chiar din bottom. -Mânerul: coborâre mică până la 48.20 (26% din adâncime), + Mânerul: coborâre mică până la 48.20 (26% din adâncime, sub 1/3), deasupra pivotului monthly 47.50, cu volum în scădere. Cine a cumpărat în vârful de la stânga și a stat 20 de săptămâni pe pierdere vinde acum la „break-even"; mânerul e acea vânzare, absorbită. @@ -1232,10 +1232,10 @@ umărul drept mai sus (vezi secțiunea 11).volum buy doji -mâner +mâner breakout fără volum SL atins -Aceeași ceașcă. Breakout-ul are cel mai mic volum de la fundul ceștii încoace: cade înapoi. +Aceeași ceașcă. Breakout-ul are volum sub media mânerului: cade înapoi. pivot monthly 47.50 @@ -1320,7 +1320,7 @@ minute" (03.09)ceașca mică margine -mâner mic +mâner mic Cele 6 săptămâni ale mânerului, pe daily: trigger-ul vine cu 2 zile înainte de cel weekly. trigger daily @@ -1347,8 +1347,9 @@ Direcția rămâne dată de ceașca weekly. Dacă ceașca mică eșuează, pierz8. Wedge și triunghi: compresia
Compresia înseamnă că ambele tabere acceptă un interval tot mai îngust. La ieșire, stop-urile de pe partea spartă se execută toate, deodată. De aceea -curs-ul cere volum la breakout (04.09): „un wedge în compresie cere volum -pentru breakout masiv".
+vrea volum la breakout. Pe 04.09, la un wedge deja în breakout: „aș văd să văd +și volumul mai tare", iar breakout-ul masiv îl leagă de reintrarea în MBT-10: +„posibil dacă reintră în MBT-10 să vedem un breakout masiv de aici".Descending wedge: DA
descending wedge breakout fără volum SL atins -Aceeași compresie. Close peste linie, dar volumul e cel mai mic din serie: fals. +Aceeași compresie. Close peste linie, dar cu volum sub media wedge-ului: fals. @@ -2094,9 +2095,9 @@ asta care este o insulă, care este izolată" (21.08, Cisco) presiunea de vânzare.Coborâre în canal. Nu cumperi aici. Prețul coboară până închide gap-ul vechi: hammer cu low 44.40, exact - în pivotul quarterly 44.50 (marginea de sus a gap-ului). + în pivotul quarterly 44.50 (marginea de jos a gap-ului).Trigger: închidere la 45.90, peste hammer → intrare 45.90. - Din curs: aici poți intra și înainte de MBT-10, imediat după + Din analiza zilnică (21.08): aici poți intra și înainte de MBT-10, imediat după închiderea gap-ului. SL 44.20, sub hammer. TP 50.30, marginea de jos a gap-ului insulei = 2.6R. @@ -2216,38 +2217,40 @@ foarte strong bull" (19.08, Charter)- - - - - - - - + + + + + + + + - - - - - - - + + + + + + + volum lower high triple doji trigger -Trei săptămâni la același preț, cu volum în creștere: cineva absoarbe vânzarea. +Sub low volumul scade, pe doji se stinge; trigger-ul și urcarea vin cu volum: acumulare. @@ -2413,7 +2416,7 @@ drept mai sus și legătura cu ceașca. sub umărul drept. TP 49.20 = neckline + (44.20 − 39.20) = 1.8R.
- Downtrend cu low anterior 36.30 și un lower high la 39.40.
-- Prețul sparge 36.30: stop-urile de sub low se execută.
-- Trei doji consecutive la același preț (~34.20), cu volum în creștere - (50 → 58 → 66). Se vinde tot mai mult și prețul nu mai coboară: cineva - cumpără tot.
+- Prețul sparge 36.30: stop-urile de sub low se execută. + Volumul pe coborârea sub low (52 → 42) e mai mic decât la low-ul anterior + (70): divergență bull de volum.
+- Trei doji consecutive la același preț (~34.20), cu volum în scădere + (36 → 34 → 32): vânzarea se stinge, prețul nu mai coboară.
- Trigger: închidere la 35.30, peste high-ul celor trei doji - (34.80) → intrare 35.30.
+ (34.80), cu volum 84, cel mai mare din serie → intrare 35.30. Pe + urcare, volumul stă pe barele verzi: acumulare din oversold.- SL 33.60, sub cele trei doji. TP 39.40, lower high-ul anterior = 2.4R, atins după 7 săptămâni.
R-ul e mai mic decât la double bottom-ul din secțiunea 3 pentru că stopul -stă departe, sub umăr. Soluția din curs e aceeași ca la ceașcă: inverted H&S +stă departe, sub umăr. Soluția din analiza zilnică e aceeași ca la ceașcă: inverted H&S pe 60 min ca trigger (25.08, 18.08) — intrare mai jos, stop mai strâns, în direcția pattern-ului mare. Și încă o condiție (04.09, CPK): inverted H&S pe monthly cu stochastic overbought și volum deteriorat nu se cumpără — @@ -2547,8 +2550,8 @@ un bull flag" (03.09, MLKN)
volum vârf anterior -picior 1 -picior 2 +picior 1 +picior 2 Linia punctată = SMA-20. Double bottom DUPĂ un impuls, nu după downtrend: e steag. SL 49.80 bull flag @@ -2623,7 +2626,7 @@ pullback-ului în locul crimei, cu stop luat și reintrare, sunt înRounding bottom — menționat de mai multe ori doar ca nume, fără regulă; e ceașca fără mâner. VIX citit invers (21.08) — aceleași pattern-uri, altă aplicație. -McClellan, stochastic, RSP — condiții din curs pentru double top, + McClellan, stochastic, RSP — condiții din analiza zilnică (17.08, 19.08) pentru double top, wedge și triple doji, dar nu se pot desena pe graficul de preț; sunt în text și tabele. H&S normal (short) — e în Modul 4, nu în analiza zilnică. @@ -2678,6 +2681,6 @@ tabelele DA/NU pentru double top, bull flag vs double bottom, și gotcha-urile formulate ca atare. Regulile (confirmarea swing-ului, scărița, variantele de double bottom și top, bear flag-ul, cup & handle cu volum, wedge / triunghi, island top, triple doji, inverted H&S cu umărul drept mai sus, bull flag în -locul crimei) și citatele vin din sesiuni. +locul crimei) și citatele vin din sesiuni.