diff --git a/gen/az_volum.py b/gen/az_volum.py index a5f5e74..6491e9a 100644 --- a/gen/az_volum.py +++ b/gen/az_volum.py @@ -78,10 +78,10 @@ print(f"D1 rez {RES} breakout close {cds[B].c} vol {da_v[B]} = {da_v[B] / vavg:. ch = Chart(candles=cds, levels=[Level(RES, f"rezistență {RES:.2f}", ORANGE, label_at="left"), Level(sl, f"SL {sl:.2f}", RED), - Level(entry, f"intrare {entry:.2f} (1/2 marubozu)", GREEN), + Level(entry, f"intrare {entry:.2f} (1/2 marubozu)", GREEN, label_at="left"), Level(tp, f"TP {tp:.2f} = 2R", BLUE)], marks=[Mark(17, "consolidare, volum mic", GRAY, "below", dy=6), - Mark(B, "breakout", GREEN, "above", dy=-95), + Mark(B, "breakout", GREEN, "above", dy=-35), Mark(PB, "retest", GREEN, "below", dy=4)], mas=[MA(20, ORANGE, dash="4 3", text="SMA-20")], scale=40, title="Exemplu construit (fără ticker) — daily", @@ -236,7 +236,7 @@ ch = Chart(candles=cds, Level(entry, f"intrare {entry:.2f}", GREEN), Level(tp, f"TP {tp:.2f} = 2R", BLUE)], marks=[Mark(L1, f"picior 1: {leg1:.2f}", RED, "below", dy=-2), - Mark(L2, f"picior 2: {leg2:.2f}", RED, "below", dy=12), + Mark(L2, "picior 2", RED, "above", dy=-22), Mark(T, "buy doji", GREEN, "above", dy=-30)], mas=[MA(20, GRAY, dash="4 3", text="SMA-20")], scale=34, title="Exemplu construit (fără ticker) — daily", @@ -325,28 +325,32 @@ svgs["volum_conduce"] = svg_ # ---------------------------------------------------------------- 8. monthly: contextul (volum pozitiv) mo_cl = [30.0, 31.2, 30.6, 32.1, 33.4, 32.8, 34.5, 35.6, 35.0, 36.8, 38.0, # 0-10 uptrend 1 37.2, 36.5, 37.0, 36.1, 36.8, # 11-15 consolidare - 38.4, 39.6, 40.9, 40.2, 41.8, 43.0, # 16-21 breakout, vârf - 42.1, 41.3, 41.8, 40.9, 41.5, 42.4] # 22-27 pullback -mo_w = [(0.4, 0.4)] * len(mo_cl) + 38.4, 39.6, 40.9, 40.2, 41.8, 43.1, # 16-21 breakout, vârf + 42.1, # 22 pullback + 42.3] # 23 hammer: codița atinge locul crimei +mo_w = [(0.4, 0.4)] * 23 + [(0.2, 3.7)] mo_v = [60, 70, 40, 72, 76, 42, 78, 80, 44, 82, 84, 40, 38, 50, 36, 48, 96, 88, 90, 44, 92, 94, - 36, 34, 58, 32, 60, 64] + 36, 58] cds = from_closes(mo_cl, wicks=mo_w, vols=mo_v, start=29.4) CRIME = round(max(c.h for c in cds[8:16]), 2) PEAK = round(max(c.h for c in cds), 2) -assert CRIME == 38.40 and PEAK == 43.40, (CRIME, PEAK) +MBO = 16 +assert CRIME == 38.40 and PEAK == 43.50, (CRIME, PEAK) +assert next(i for i, c in enumerate(cds) if c.c >= CRIME) == MBO and mo_v[MBO] == max(mo_v[:MBO + 1]), \ + "eticheta «breakout cu volum» trebuie să stea pe prima închidere peste 38.40, cu volumul maxim de până atunci" +MO_PB_LOW = round(min(c.l for c in cds[22:]), 2) u_m, d_m = up_down_vol(cds, 0, len(cds)) -u_pb, d_pb = up_down_vol(cds, 22, len(cds)) +d_pb = avg(c.vol for c in cds[22:] if c.c < c.o) assert u_m >= 1.6 * d_m, "pe monthly volumul cumpărătorilor trebuie să domine" assert d_pb < avg(mo_v[16:22]) * 0.5, "pullback-ul monthly are volum de vânzare mic" print(f"D8 monthly: vol cumpărători {u_m:.0f} vs vânzători {d_m:.0f} = {u_m / d_m:.1f}x; locul crimei {CRIME}; vârf {PEAK}") ch = Chart(candles=cds, levels=[Level(CRIME, f"fost vârf {CRIME:.2f}", ORANGE, label_at="left")], - marks=[Mark(12, "consolidare", GRAY, "below", dy=4), - Mark(13, "breakout cu volum", GREEN, "above", dy=-35), - Mark(24, "pullback, volum mic", GRAY, "above", dy=-20)], - mas=[MA(20, GRAY, dash="4 3", text="SMA-20")], + marks=[Mark(12, "consolidare", GRAY, "below", dy=24), + Mark(MBO, "breakout cu volum", GREEN, "below", dy=6), + Mark(23, "hammer", GREEN, "below", dy=0)], scale=14, title="Exemplu construit (fără ticker) — monthly", caption=f"Monthly: barele de cumpărători au volum mediu {u_m / d_m:.1f}x față de barele de vânzători.", **STYLE) @@ -379,6 +383,9 @@ risk = entry - sl R = (top - entry) / risk hit = next(i for i in range(CFW + 1, len(cds)) if cds[i].h >= top) assert R >= 2.0, R +assert MO_PB_LOW == round(cds[HM].l, 2) == CRIME and top == PEAK, \ + "monthly și weekly trebuie să spună același lucru: pullback până la 38.40, vârf la același preț" + print(f"D9 weekly: raliu vol {rally_v:.0f}, pullback vol {pb_v:.0f} ({pb_v / rally_v:.0%}); hammer low {cds[HM].l:.2f}; " f"intrare {entry} SL {sl} risc {risk:.2f} TP {top} = {R:.2f}R atins la {hit}") ch = Chart(candles=cds, @@ -387,7 +394,7 @@ ch = Chart(candles=cds, Level(entry, f"intrare {entry:.2f}", GREEN), Level(top, f"TP {top:.2f} = {R:.1f}R", BLUE)], marks=[Mark(24, "volum în scădere", GRAY, "above", dy=-100), - Mark(HM, "hammer", GREEN, "below", dy=12)], + Mark(HM, "hammer", GREEN, "above", dy=-20)], mas=[MA(20, GRAY, dash="4 3", text="SMA-20")], scale=60, title="Exemplu construit (fără ticker) — weekly", caption="Weekly-ul arată vânzare, dar pe volum mic: e retestul, nu ieșirea instituționalilor.", diff --git a/summaries/08_ANALIZA_ZILNICA/05_volum.html b/summaries/08_ANALIZA_ZILNICA/05_volum.html index 890b313..1b70f85 100644 --- a/summaries/08_ANALIZA_ZILNICA/05_volum.html +++ b/summaries/08_ANALIZA_ZILNICA/05_volum.html @@ -37,8 +37,9 @@ monthly = „nu sunt instituționali" — ideea long slăbește.
  • Divergența de volum la al doilea picior: prețul face minim nou, vânzarea nu. Diferența dintre un double bottom și un bear flag.
  • -
  • Volumul poate ieși primul: urcă în bază, sub rezistență, înainte ca - prețul să spargă.
  • +
  • Volumul iese primul, prețul după: volum în breakout peste vârfurile + lui anterioare, cu prețul încă sub rezistență = mari șanse ca prețul să + urmeze („strategie de sine stătătoare", Q&A 11.06.2025).
  • Monthly bun + weekly deteriorat, dar pozitiv = pullback-ul e doar retestul locului crimei.
  • În același sector, alegi simbolul cu volumul mai bun pe monthly și @@ -144,7 +145,7 @@ volumul", 04.09).

    SL 49.40 - intrare 51.10 (1/2 marubozu) + intrare 51.10 (1/2 marubozu) TP 54.50 = 2R @@ -266,7 +267,7 @@ volumul", 04.09).

    volum consolidare, volum mic - breakout + breakout retest Bara de breakout: volum 3.4x media ultimelor 20 de bare. Intri la retest, nu pe ea.

    @@ -289,7 +290,8 @@ volumul", 04.09).

    „Într-un moment, buy momentum, facem break-out deasupra pivotului -monthly. Volumul e țeavă" (10.09)

    +monthly. Volumul e țeavă, deși nu pompează bani în compania asta de +energie" (10.09)

    „plecăm cu un buy doji, cu volum țeavă și de aici, uitați-vă ce s-a întâmplat, vedeți ce înseamnă volumul" (04.09)

    @@ -777,9 +779,11 @@ interesant să vedem asta, pentru că asta arată implicare instituțională"
  • SL 66.80, deasupra retestului. TP 59.00 = 2R (risc 2.60), atins după 7 săptămâni.
  • -

    Din sesiuni, varianta de pe indici: „breakdown sub pivot, volumul trece -negativ" (19.08, DHI) și „volumul se duce într-o distribuție negativă. Asta -nu-mi place" (02.09, LEU, pe un sell doji).

    +

    Din sesiuni, pe acțiuni, volumul care trece negativ e motiv să nu intri +long: breakdown sub pivot cu volum care trece negativ = trigger NU (19.08, +DHI); pe LEU, într-un sell doji, „volumul da să duce într-o distribuție +negativă. Asta nu-mi place" (02.09). Short-ul pe retest din diagramă e +aplicarea mea a oglinzii.


    5. Divergența de volum la al doilea picior: DA

    @@ -903,7 +907,7 @@ nu-mi place" (02.09, LEU, pe un sell doji).

    volum picior 1: 39.80 - picior 2: 39.10 + picior 2 buy doji Prețul face minim nou, volumul vânzătorilor nu: la picior 2 e 59% din picior 1.

    @@ -1267,117 +1271,112 @@ breakout-ul lui; prețul încă nu.

    Ce faci când vezi asta: pui simbolul pe listă și aștepți trigger-ul de preț. Volumul care iese primul îți spune că breakout-ul, când vine, are combustibil; nu îți dă intrarea.

    -

    Ce spune el, pe bucăți: „volumul este în breakout peste nivelele de aici, pe -instituțional" (19.08, PGNY, înaintea breakout-ului de preț); „am avut o -compresie inclusiv pe volum" (17.08); pe un wedge în compresie, „aș vrea să -văd și volumul mai tare [...] posibil să vedem un breakout masiv" (04.09).

    +

    Regula e a lui, formulată în +Q&A 11.06.2025 / Volumul conduce prețul: +dacă volumul e în breakout peste vârfurile lui anterioare, iar prețul e încă +sub prețul de la acele vârfuri, sunt mari șanse ca prețul să ajungă +acolo. „Asta e strategie de sine stătătoare." Merge pe orice timeframe; a +arătat-o live pe un minut, cu indicatorul de volum din curs și cu OBV +(On Balance Volume: total cumulat, volumul barei se adună când închide mai +sus și se scade când închide mai jos).

    +

    În analiza zilnică: „volumul este in breakout peste nivele de aici, pe +instituțional" (19.08, PGNY, la un posibil cup & handle, înaintea +breakout-ului de preț).


    8. Monthly vs. weekly: care câștigă

    Volumul se citește de sus în jos. Monthly-ul spune dacă instituționalii sunt în simbol. Weekly-ul spune ce fac acum.

    -

    +

    Exemplu construit (fără ticker) — monthly - - fost vârf 38.40 - - SMA-20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - volum - consolidare - breakout cu volum - pullback, volum mic - Monthly: barele de cumpărători au volum mediu 1.9x față de barele de vânzători. + + fost vârf 38.40 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + volum + consolidare + breakout cu volum + hammer + Monthly: barele de cumpărători au volum mediu 1.9x față de barele de vânzători.

    Monthly. Uptrend cu volumul pe cumpărători (barele lor au volum mediu 1.9x față de ale vânzătorilor), breakout cu volum peste fostul vârf de -38.40, apoi pullback pe volum mic.

    +38.40 (prima închidere peste el, pe cel mai mare volum de până atunci), +vârf la 43.50, apoi pullback pe volum mic: ultima bară lunară e un +hammer cu codița exact pe 38.40.

    Exemplu construit (fără ticker) — weekly @@ -1499,12 +1498,13 @@ sunt în simbol. Weekly-ul spune ce fac acum.

    volum volum în scădere - hammer + hammer Weekly-ul arată vânzare, dar pe volum mic: e retestul, nu ieșirea instituționalilor.

    -

    Weekly, aceeași perioadă. Aici pullback-ul arată urât: 7 săptămâni de +

    Weekly, ultimele luni ale graficului monthly (de la vârful de 43.50 la +hammer). Aici pullback-ul arată urât: 7 săptămâni de scădere. Dar volumul mediu pe pullback e 52% din cel de pe raliu. E „deteriorat", nu inversat.