Lectii text: extract_text_lessons.py + Modul 3 #9 sumarizata
extract_audio.py sarea peste lectiile fara video. Gasita una in curriculum-ul accesibil (Modul 3 #9 - expirari de optiuni, witching, 0DTE), cu 4847 de caractere de continut real. Era numarata gresit ca acoperita. Plus: - render_html.py: index grupat pe module cu titlul H1 al fiecarei pagini - render_html.py: garda pe liniile goale din <svg> (rup blocul HTML tacut) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MtSTyTmt6AbCL9j5ajEDm1
This commit is contained in:
27
PROGRESS.md
27
PROGRESS.md
@@ -5,14 +5,14 @@ Pipeline personal de transcriere + sumarizare pentru cursul de trading ATM
|
|||||||
pe Gitea. Pagină publicată (Tailscale, doar în tailnet):
|
pe Gitea. Pagină publicată (Tailscale, doar în tailnet):
|
||||||
**https://claude-agent.tailf7372d.ts.net/atm/index.html**
|
**https://claude-agent.tailf7372d.ts.net/atm/index.html**
|
||||||
|
|
||||||
## Status: curriculum de bază 100% acoperit (52/52 lecții posibile)
|
## Status: curriculum de bază 100% acoperit (53/53 lecții accesibile)
|
||||||
|
|
||||||
| Modul | Lecții | Status |
|
| Modul | Lecții | Status |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Modulul 1 | 10 | ✅ |
|
| Modulul 1 | 10 | ✅ |
|
||||||
| Catalizatori economici | 8 | ✅ |
|
| Catalizatori economici | 8 | ✅ |
|
||||||
| Modulul 2 | 16 | ✅ |
|
| Modulul 2 | 16 | ✅ |
|
||||||
| Modulul 3 | 6 | ✅ |
|
| Modulul 3 | 6 (5 video + 1 text) | ✅ |
|
||||||
| Modulul 4 | 4 | ✅ |
|
| Modulul 4 | 4 | ✅ |
|
||||||
| Analiză Fundamentală | 9 | ✅ |
|
| Analiză Fundamentală | 9 | ✅ |
|
||||||
|
|
||||||
@@ -107,6 +107,29 @@ acolo un duplicat costă ore, nu minute.
|
|||||||
- `render_html.py`: adăugat extensia `toc`, ca headingurile să primească
|
- `render_html.py`: adăugat extensia `toc`, ca headingurile să primească
|
||||||
`id` — fără ea link-urile din `INDEX_TEMATIC.md` n-au unde ateriza.
|
`id` — fără ea link-urile din `INDEX_TEMATIC.md` n-au unde ateriza.
|
||||||
|
|
||||||
|
## Lecții FĂRĂ video — `extract_text_lessons.py`
|
||||||
|
`extract_audio.py` caută doar un MP4, deci sare peste lecțiile scrise.
|
||||||
|
Găsită una singură în curriculum-ul accesibil: **Modul 3 / #9 — Alte tipuri
|
||||||
|
de catalizatori** (expirări de opțiuni, witching, 0DTE). Avea 4.847 de
|
||||||
|
caractere de conținut real, nu era un quiz gol. Era numărată greșit ca
|
||||||
|
"acoperită" în versiunea anterioară a acestui fișier.
|
||||||
|
|
||||||
|
Conținutul vine din câmpul `html` al `/api/membership/lecture/<id>`,
|
||||||
|
împreună cu tot CSS-ul paginii — scriptul curăță `<style>`/`<script>`, apoi
|
||||||
|
tagurile. Rulează-l după `extract_audio.py`, pe aceleași module:
|
||||||
|
`\.venv/bin/python extract_text_lessons.py [--only "<modul>"]`
|
||||||
|
|
||||||
|
**Rulează-l și pe Q&A / Analiză Zilnică** înainte să declari un modul
|
||||||
|
complet — nu presupune că tot ce e acolo are video.
|
||||||
|
|
||||||
|
## Gardă nouă în `render_html.py`
|
||||||
|
O linie goală în interiorul unui `<svg>` face python-markdown să rupă blocul
|
||||||
|
HTML, iar browserul aruncă restul elementelor — diagrama se randează pe
|
||||||
|
jumătate, **fără nicio eroare**. S-a întâmplat de două ori (a doua oară în
|
||||||
|
2026-09-12, ștergând un `<text>` și lăsând linia cu spații). `render_html.py`
|
||||||
|
crapă acum cu numărul liniei în loc să publice o diagramă stricată.
|
||||||
|
Verificat că garda chiar prinde cazul.
|
||||||
|
|
||||||
## Ce a rămas — blocat de acces (`purchase_required`)
|
## Ce a rămas — blocat de acces (`purchase_required`)
|
||||||
Modul 5 (7), Modul 6 (6), Master ATM 1-4 (4+3+5+3=15) = **28 lecții**.
|
Modul 5 (7), Modul 6 (6), Master ATM 1-4 (4+3+5+3=15) = **28 lecții**.
|
||||||
Dacă userul primește acces: rulează din nou
|
Dacă userul primește acces: rulează din nou
|
||||||
|
|||||||
92
extract_text_lessons.py
Normal file
92
extract_text_lessons.py
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
"""
|
||||||
|
Extrage lecțiile FĂRĂ video (text/quiz) — pe care extract_audio.py le sare,
|
||||||
|
pentru că el caută doar un MP4.
|
||||||
|
|
||||||
|
API-ul de lecție întoarce conținutul în câmpul `html`, împreună cu tot
|
||||||
|
CSS-ul paginii systeme.io. Curățăm style/script, apoi tagurile, și scriem
|
||||||
|
text în același loc cu transcrierile, ca să intre în același flux de
|
||||||
|
sumarizare.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import html as html_mod
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import requests
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
from download import BASE, get_course_id, get_lecture_video_url, get_menu, login, slugify
|
||||||
|
from extract_audio import CORE_MODULES
|
||||||
|
|
||||||
|
logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s")
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def lecture_text(session: requests.Session, lecture_id: int) -> str:
|
||||||
|
raw = session.get(f"{BASE}/api/membership/lecture/{lecture_id}").json().get("html") or ""
|
||||||
|
raw = re.sub(r"(?is)<(style|script)\b.*?</\1>", " ", raw)
|
||||||
|
text = html_mod.unescape(re.sub(r"<[^>]+>", "\n", raw))
|
||||||
|
lines = [ln.strip() for ln in text.split("\n") if ln.strip()]
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
p = argparse.ArgumentParser(description="Extrage lecțiile text din cursul ATM")
|
||||||
|
p.add_argument("--out", default="transcripts")
|
||||||
|
p.add_argument("--only", default=None, help="Un singur modul (ocolește CORE_MODULES)")
|
||||||
|
args = p.parse_args()
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
email, password = os.getenv("ATM_EMAIL", ""), os.getenv("ATM_PASSWORD", "")
|
||||||
|
if not email or not password:
|
||||||
|
log.error("Setează ATM_EMAIL și ATM_PASSWORD în .env")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
session = requests.Session()
|
||||||
|
session.headers.update({"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"})
|
||||||
|
login(session, email, password)
|
||||||
|
modules = get_menu(session, get_course_id(session))
|
||||||
|
|
||||||
|
done = skipped = 0
|
||||||
|
for mod_idx, mod in enumerate(modules, 1):
|
||||||
|
if args.only:
|
||||||
|
if mod["name"] != args.only:
|
||||||
|
continue
|
||||||
|
elif mod["name"] not in CORE_MODULES:
|
||||||
|
continue
|
||||||
|
|
||||||
|
for lec_idx, lec in enumerate(mod["lectures"], 1):
|
||||||
|
try:
|
||||||
|
if get_lecture_video_url(session, lec["id"]):
|
||||||
|
continue # are video -> îl ia extract_audio.py
|
||||||
|
except requests.exceptions.HTTPError as e:
|
||||||
|
if e.response is not None and e.response.status_code == 403:
|
||||||
|
continue # fără acces
|
||||||
|
raise
|
||||||
|
|
||||||
|
dest = Path(args.out) / f"{mod_idx:02d}_{slugify(mod['name'])}" / f"{lec_idx:02d}_{slugify(lec['name'])}.txt"
|
||||||
|
if dest.exists() and dest.stat().st_size > 200:
|
||||||
|
log.info(f" Există deja: {dest.name}")
|
||||||
|
skipped += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
text = lecture_text(session, lec["id"])
|
||||||
|
if len(text) < 200:
|
||||||
|
log.info(f" Prea puțin text, probabil quiz gol: {lec['name']}")
|
||||||
|
continue
|
||||||
|
|
||||||
|
dest.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
dest.write_text(text, encoding="utf-8")
|
||||||
|
log.info(f" Extras ({len(text)} caractere): {dest}")
|
||||||
|
done += 1
|
||||||
|
|
||||||
|
log.info("=" * 60)
|
||||||
|
log.info(f"Lecții text extrase: {done}, sărite: {skipped}.")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
@@ -5,6 +5,7 @@ Also (re)writes summaries/index.html linking every rendered page.
|
|||||||
Run after adding/editing any summary.
|
Run after adding/editing any summary.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import markdown
|
import markdown
|
||||||
@@ -36,22 +37,44 @@ PAGE_TEMPLATE = """<!DOCTYPE html>
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def render_file(md_path: Path) -> Path:
|
def check_svgs(md_path: Path, text: str) -> None:
|
||||||
|
"""O linie goală în interiorul unui <svg> face python-markdown să rupă
|
||||||
|
blocul HTML în paragrafe, iar browserul aruncă restul elementelor —
|
||||||
|
diagrama se randează pe jumătate, fără nicio eroare. S-a întâmplat deja
|
||||||
|
de două ori; mai bine crapă aici decât să publici o diagramă stricată."""
|
||||||
|
for m in re.finditer(r"<svg .*?</svg>", text, re.S):
|
||||||
|
if re.search(r"\n[ \t]*\n", m.group(0)):
|
||||||
|
line = text[: m.start()].count("\n") + 1
|
||||||
|
raise SystemExit(f"{md_path}:{line}: linie goală în interiorul <svg> — markdown va rupe blocul")
|
||||||
|
|
||||||
|
|
||||||
|
def render_file(md_path: Path) -> tuple[Path, str]:
|
||||||
text = md_path.read_text(encoding="utf-8")
|
text = md_path.read_text(encoding="utf-8")
|
||||||
|
check_svgs(md_path, text)
|
||||||
body = markdown.markdown(text, extensions=["extra", "toc"])
|
body = markdown.markdown(text, extensions=["extra", "toc"])
|
||||||
title = text.splitlines()[0].lstrip("# ").strip() if text else md_path.stem
|
title = text.splitlines()[0].lstrip("# ").strip() if text else md_path.stem
|
||||||
html_path = md_path.with_suffix(".html")
|
html_path = md_path.with_suffix(".html")
|
||||||
html_path.write_text(PAGE_TEMPLATE.format(title=title, body=body), encoding="utf-8")
|
html_path.write_text(PAGE_TEMPLATE.format(title=title, body=body), encoding="utf-8")
|
||||||
return html_path
|
return html_path, title
|
||||||
|
|
||||||
|
|
||||||
def write_index(pages: list[Path]):
|
def write_index(pages: list[tuple[Path, str]]):
|
||||||
items = "\n".join(
|
"""Grupat pe module, cu titlul H1 al fiecărei pagini — numele fișierului
|
||||||
f'<li><a href="{p.relative_to(ROOT)}">{p.parent.name} / {p.stem}</a></li>'
|
(o dată, un număr) nu spune nimic despre ce e înăuntru."""
|
||||||
for p in sorted(pages)
|
sections = []
|
||||||
)
|
current = None
|
||||||
|
for path, title in sorted(pages):
|
||||||
|
if path.parent.name != current:
|
||||||
|
if current is not None:
|
||||||
|
sections.append("</ul>")
|
||||||
|
current = path.parent.name
|
||||||
|
sections.append(f"<h2>{current.replace('_', ' ')}</h2><ul>")
|
||||||
|
sections.append(f'<li><a href="{path.relative_to(ROOT)}">{title}</a></li>')
|
||||||
|
if current is not None:
|
||||||
|
sections.append("</ul>")
|
||||||
(ROOT / "index.html").write_text(
|
(ROOT / "index.html").write_text(
|
||||||
PAGE_TEMPLATE.format(title="ATM — Sumarizări", body=f"<h1>ATM — Sumarizări</h1><ul>{items}</ul>"),
|
PAGE_TEMPLATE.format(title="ATM — Sumarizări",
|
||||||
|
body="<h1>ATM — Sumarizări</h1>" + "".join(sections)),
|
||||||
encoding="utf-8",
|
encoding="utf-8",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
275
summaries/04_MODUL_3/06_alte_tipuri_de_catalizatori.html
Normal file
275
summaries/04_MODUL_3/06_alte_tipuri_de_catalizatori.html
Normal file
@@ -0,0 +1,275 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ro">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>Modul 3 / #9 — Alte tipuri de catalizatori: expirările de opțiuni și witching</title>
|
||||||
|
<style>
|
||||||
|
body { max-width: 720px; margin: 0 auto; padding: 16px 20px 60px;
|
||||||
|
font: 18px/1.55 -apple-system, Segoe UI, Roboto, sans-serif;
|
||||||
|
color: #1a1a1a; }
|
||||||
|
h1 { font-size: 1.4em; }
|
||||||
|
h2 { font-size: 1.15em; margin-top: 1.6em; border-top: 1px solid #ddd; padding-top: .8em; }
|
||||||
|
code { font-size: .95em; background: #f0f0f0; padding: .1em .3em; border-radius: 3px; }
|
||||||
|
a { color: #1a5fb4; }
|
||||||
|
hr { border: none; border-top: 1px solid #ddd; margin: 2em 0; }
|
||||||
|
em { color: #555; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 id="modul-3-9-alte-tipuri-de-catalizatori-expirarile-de-optiuni-si-witching">Modul 3 / #9 — Alte tipuri de catalizatori: expirările de opțiuni și witching</h1>
|
||||||
|
<blockquote>
|
||||||
|
<p><strong>Singura lecție din curriculum fără video</strong> — e o lecție scrisă. Pipeline-ul
|
||||||
|
de transcriere o sărea (caută doar MP4); acum e extrasă cu
|
||||||
|
<code>extract_text_lessons.py</code>. Lecția originală trimite la un grafic și la un
|
||||||
|
link extern pe care platforma nu le expune în text — diagramele de mai jos
|
||||||
|
sunt construite de mine.</p>
|
||||||
|
</blockquote>
|
||||||
|
<h2 id="tldr">TLDR</h2>
|
||||||
|
<p>În fiecare vineri expiră opțiuni. A treia vineri din lună e o expirare
|
||||||
|
majoră. În martie, iunie, septembrie și decembrie, a treia vineri e
|
||||||
|
<strong>witching</strong> — mai multe tipuri de derivate expiră simultan. Pe indicii mari
|
||||||
|
expiră opțiuni <strong>în fiecare zi</strong> (0DTE).</p>
|
||||||
|
<p>Efectul principal nu e direcția, e <strong>volumul</strong>. Iar cauza nu e o știre, ci
|
||||||
|
faptul că cineva e <strong>obligat</strong> să tranzacționeze la un moment fix.</p>
|
||||||
|
<hr />
|
||||||
|
<h2 id="ce-e-quadruple-witching">Ce e quadruple witching</h2>
|
||||||
|
<p>Patru tipuri de derivate expiră în aceeași zi:</p>
|
||||||
|
<p><svg viewBox="0 0 620 240" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="20" y="18" fill="#333" style="font-weight:bold">A treia vineri din martie / iunie / septembrie / decembrie</text>
|
||||||
|
<rect x="25" y="45" width="270" height="52" fill="#eef4fb" stroke="#1a5fb4"/>
|
||||||
|
<text x="38" y="66" fill="#1a5fb4" style="font-weight:bold">Futures pe indici bursieri</text>
|
||||||
|
<text x="38" y="86" fill="#555">@ES, @NQ, @YM, @RTY</text>
|
||||||
|
<rect x="320" y="45" width="270" height="52" fill="#eef4fb" stroke="#1a5fb4"/>
|
||||||
|
<text x="333" y="66" fill="#1a5fb4" style="font-weight:bold">Opțiuni pe acțiuni individuale</text>
|
||||||
|
<text x="333" y="86" fill="#555">AAPL, TSLA, NVDA...</text>
|
||||||
|
<rect x="25" y="112" width="270" height="52" fill="#eef4fb" stroke="#1a5fb4"/>
|
||||||
|
<text x="38" y="133" fill="#1a5fb4" style="font-weight:bold">Opțiuni pe futures pe indici</text>
|
||||||
|
<text x="38" y="153" fill="#555">opțiuni al căror suport e @ES / @NQ</text>
|
||||||
|
<rect x="320" y="112" width="270" height="52" fill="#eef4fb" stroke="#1a5fb4"/>
|
||||||
|
<text x="333" y="133" fill="#1a5fb4" style="font-weight:bold">Opțiuni pe indici</text>
|
||||||
|
<text x="333" y="153" fill="#555">SPX, NDX, RUT</text>
|
||||||
|
<text x="25" y="192" fill="#333">Când doar trei dintre ele coincid, se numește <tspan style="font-weight:bold">triple witching</tspan> — aceeași mecanică, intensitate mai mică.</text>
|
||||||
|
<text x="25" y="216" fill="#555">Unele liste adaugă și futures pe acțiuni individuale, dar sunt produse mici, cu impact minim.</text>
|
||||||
|
</svg></p>
|
||||||
|
<p><strong>Datele din 2025</strong>, ca reper: 21 martie, 20 iunie, 19 septembrie,
|
||||||
|
19 decembrie. Regula e stabilă — a treia vineri, la finalul fiecărui
|
||||||
|
trimestru.</p>
|
||||||
|
<p><strong>Cifra care arată magnitudinea:</strong> witching-ul din <strong>20 decembrie 2024</strong> a
|
||||||
|
avut <strong>cel mai mare volum de tranzacționare din tot anul</strong> pe S&P 500.</p>
|
||||||
|
<hr />
|
||||||
|
<h2 id="calendarul-complet-al-expirarilor">Calendarul complet al expirărilor</h2>
|
||||||
|
<p>Lecția enumeră cinci tipuri. Ordonate după cât de des te afectează:</p>
|
||||||
|
<p><svg viewBox="0 0 620 300" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="20" y="18" fill="#333" style="font-weight:bold">O lună obișnuită de tranzacționare</text>
|
||||||
|
<line x1="30" y1="120" x2="600" y2="120" stroke="#888" stroke-width="1.5"/>
|
||||||
|
<rect x="95" y="106" width="8" height="28" fill="#9bb8d4"/>
|
||||||
|
<text x="72" y="152" fill="#1a5fb4">vineri 1</text>
|
||||||
|
<rect x="215" y="106" width="8" height="28" fill="#9bb8d4"/>
|
||||||
|
<text x="192" y="152" fill="#1a5fb4">vineri 2</text>
|
||||||
|
<rect x="335" y="86" width="12" height="68" fill="#c00"/>
|
||||||
|
<text x="300" y="172" fill="#c00" style="font-weight:bold">vineri 3</text>
|
||||||
|
<text x="288" y="188" fill="#c00">expirare majoră</text>
|
||||||
|
<text x="282" y="204" fill="#c00">(witching în mar/iun/sep/dec)</text>
|
||||||
|
<rect x="455" y="106" width="8" height="28" fill="#9bb8d4"/>
|
||||||
|
<text x="432" y="152" fill="#1a5fb4">vineri 4</text>
|
||||||
|
<rect x="555" y="106" width="8" height="28" fill="#9bb8d4"/>
|
||||||
|
<text x="532" y="152" fill="#1a5fb4">vineri 5</text>
|
||||||
|
<rect x="55" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="80" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="130" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="155" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="180" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="250" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="275" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="300" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="375" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="400" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="425" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="490" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="515" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<text x="30" y="62" fill="#b06000">barele mici maro = 0DTE, expirare zilnică pe SPX / NDX / RUT</text>
|
||||||
|
<text x="30" y="80" fill="#1a5fb4">barele albastre = opțiuni săptămânale (weeklies), în fiecare vineri</text>
|
||||||
|
<text x="30" y="252" fill="#555">Dacă vinerea e sărbătoare, weekly-urile expiră joi.</text><text x="30" y="272" fill="#555">SPX are și expirări luni și miercuri, folosite pentru hedging pe CPI și FOMC.</text>
|
||||||
|
</svg></p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Tip</th>
|
||||||
|
<th>Când expiră</th>
|
||||||
|
<th>Ce contează</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Standard (acțiuni + indici)</td>
|
||||||
|
<td>a treia vineri din <strong>fiecare</strong> lună</td>
|
||||||
|
<td>expirarea clasică; witching-ul e doar cazul în care coincid mai multe tipuri</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><strong>Weekly</strong></td>
|
||||||
|
<td>în fiecare vineri (joi dacă e sărbătoare)</td>
|
||||||
|
<td>de aici vine <strong>majoritatea activității moderne</strong>; maturități scurte, gamma concentrată</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><strong>0DTE</strong></td>
|
||||||
|
<td>în fiecare zi de tranzacționare</td>
|
||||||
|
<td>doar SPX, NDX, RUT. Produce pinning și mișcări accelerate la final de sesiune</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Luni / miercuri</td>
|
||||||
|
<td>pe SPX</td>
|
||||||
|
<td>hedging pe evenimente (CPI, FOMC) și poziționare tactică</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Trimestriale non-witching</td>
|
||||||
|
<td>final de trimestru</td>
|
||||||
|
<td>rebalansări de portofolii; volume mari dar "mai curate"</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<hr />
|
||||||
|
<h2 id="de-ce-apare-volumul-rolling">De ce apare volumul: rolling</h2>
|
||||||
|
<p>Mecanismul principal, explicat în lecție, și e util pentru că nu are nimic
|
||||||
|
de-a face cu o părere despre piață:</p>
|
||||||
|
<p>Un trader de futures care vrea să <strong>își păstreze</strong> poziția după expirarea
|
||||||
|
trimestrială nu poate pur și simplu s-o lase. Trebuie să <strong>vândă contractul
|
||||||
|
care expiră și să cumpere contractul nou</strong>. Asta se numește <strong>rolling</strong>.</p>
|
||||||
|
<p><svg viewBox="0 0 620 250" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="20" y="18" fill="#333" style="font-weight:bold">Rolling — aceeași expunere, două tranzacții obligatorii</text>
|
||||||
|
<rect x="30" y="50" width="180" height="60" fill="#fbeaea" stroke="#c00"/>
|
||||||
|
<text x="44" y="74" fill="#c00" style="font-weight:bold">@ES contractul care expiră</text>
|
||||||
|
<text x="44" y="94" fill="#555">poziția ta long, azi</text>
|
||||||
|
<polygon points="230,68 230,92 265,80" fill="#333"/>
|
||||||
|
<text x="222" y="128" fill="#333">VINDE</text>
|
||||||
|
<rect x="285" y="50" width="180" height="60" fill="#e9f5ec" stroke="#188a3e"/>
|
||||||
|
<text x="299" y="74" fill="#188a3e" style="font-weight:bold">@ES contractul următor</text>
|
||||||
|
<text x="299" y="94" fill="#555">aceeași poziție, mâine</text>
|
||||||
|
<text x="300" y="128" fill="#333">CUMPĂRĂ</text>
|
||||||
|
<text x="30" y="172" fill="#333">Expunerea lui în piață nu s-a schimbat deloc. Dar în volumul zilei apar două tranzacții.</text>
|
||||||
|
<text x="30" y="196" fill="#333" style="font-weight:bold">Înmulțit cu toți cei care au poziții deschise = volumul de witching.</text>
|
||||||
|
<text x="30" y="228" fill="#555">De asta volumul mare de witching nu îți spune nimic despre direcție: nimeni nu și-a schimbat părerea.</text>
|
||||||
|
</svg></p>
|
||||||
|
<p><strong>Consecința practică, și e cea mai importantă din lecție (completarea mea,
|
||||||
|
dar decurge direct):</strong> volumul din ziua de witching <strong>nu confirmă un
|
||||||
|
breakout</strong>. Peste tot în curs, volumul mare la spargerea unui nivel e
|
||||||
|
semnalul că mișcarea e reală. În ziua de witching, volumul e generat de
|
||||||
|
obligații contractuale, nu de convingere.</p>
|
||||||
|
<p><svg viewBox="0 0 620 330" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="20" y="18" fill="#188a3e" style="font-weight:bold">DA — breakout cu volum, zi obișnuită</text>
|
||||||
|
<line x1="25" y1="105" x2="285" y2="105" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="28" y="99" fill="#1a5fb4">nivel spart</text>
|
||||||
|
<polyline points="35,165 75,158 115,148 155,130 195,95 235,70 272,52" fill="none" stroke="#333" stroke-width="2"/>
|
||||||
|
<line x1="25" y1="200" x2="285" y2="200" stroke="#ddd"/>
|
||||||
|
<rect x="45" y="238" width="16" height="30" fill="#188a3e"/>
|
||||||
|
<rect x="90" y="234" width="16" height="34" fill="#188a3e"/>
|
||||||
|
<rect x="135" y="228" width="16" height="40" fill="#188a3e"/>
|
||||||
|
<rect x="180" y="212" width="16" height="56" fill="#188a3e"/>
|
||||||
|
<rect x="225" y="206" width="16" height="62" fill="#188a3e"/>
|
||||||
|
<line x1="25" y1="268" x2="285" y2="268" stroke="#888"/>
|
||||||
|
<text x="28" y="292" fill="#188a3e">Volumul crește ODATĂ cu mișcarea</text>
|
||||||
|
<text x="28" y="308" fill="#188a3e">și rămâne mare după.</text>
|
||||||
|
<text x="350" y="18" fill="#c00" style="font-weight:bold">NU — vinerea de witching</text>
|
||||||
|
<line x1="355" y1="105" x2="610" y2="105" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="358" y="99" fill="#1a5fb4">același nivel</text>
|
||||||
|
<polyline points="365,145 405,140 445,120 485,92 520,100 555,128 595,150" fill="none" stroke="#333" stroke-width="2"/>
|
||||||
|
<circle cx="485" cy="92" r="4.5" fill="#c00"/>
|
||||||
|
<text x="440" y="72" fill="#c00">spargere care nu ține</text>
|
||||||
|
<line x1="355" y1="200" x2="610" y2="200" stroke="#ddd"/>
|
||||||
|
<rect x="375" y="240" width="16" height="28" fill="#888"/>
|
||||||
|
<rect x="420" y="238" width="16" height="30" fill="#888"/>
|
||||||
|
<rect x="465" y="204" width="16" height="64" fill="#c00"/>
|
||||||
|
<rect x="510" y="208" width="16" height="60" fill="#c00"/>
|
||||||
|
<rect x="555" y="242" width="16" height="26" fill="#888"/>
|
||||||
|
<line x1="355" y1="268" x2="610" y2="268" stroke="#888"/>
|
||||||
|
<text x="358" y="292" fill="#c00">Volum uriaș doar în ziua expirării,</text>
|
||||||
|
<text x="358" y="308" fill="#c00">apoi revine la normal. Prețul se întoarce.</text>
|
||||||
|
</svg></p>
|
||||||
|
<p><strong>Testul practic:</strong> volumul de witching e <strong>izolat într-o singură zi</strong> și
|
||||||
|
dispare luni. Volumul care confirmă un breakout <strong>persistă</strong> în zilele
|
||||||
|
următoare. Dacă nu ești sigur, aștepți ziua de luni.</p>
|
||||||
|
<hr />
|
||||||
|
<h2 id="pinning-si-hedging-ul-market-makerilor">Pinning și hedging-ul market makerilor</h2>
|
||||||
|
<p>Lecția menționează efectele de <strong>pinning</strong> pe 0DTE și "volatilitate
|
||||||
|
artificială creată de hedging-ul market makerilor", fără să explice
|
||||||
|
mecanismul. Îl completez, pentru că e ce face 0DTE-ul relevant pentru un
|
||||||
|
trader care nu tranzacționează opțiuni deloc.</p>
|
||||||
|
<p>Market makerii vând opțiuni și rămân cu expunere pe direcție. Ca să fie
|
||||||
|
neutri, își acoperă poziția cumpărând sau vânzând activul suport. Cât timp
|
||||||
|
prețul e <strong>aproape de un strike cu volum mare</strong>, acoperirea lor merge
|
||||||
|
<strong>împotriva</strong> mișcării:</p>
|
||||||
|
<p><svg viewBox="0 0 620 290" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="8" y="14" fill="#666">preț ↑</text>
|
||||||
|
<line x1="60" y1="145" x2="580" y2="145" stroke="#b06000" stroke-width="2.5"/>
|
||||||
|
<text x="60" y="60" fill="#b06000" style="font-weight:bold">strike 600 — cel mai mare volum de opțiuni deschise</text>
|
||||||
|
<polyline points="70,175 110,150 150,122 190,146 230,170 270,145 310,120 350,144 390,168 430,146 470,124 510,145 550,160" fill="none" stroke="#333" stroke-width="2"/>
|
||||||
|
<polygon points="144,112 156,112 150,126" fill="#c00"/>
|
||||||
|
<text x="60" y="100" fill="#c00">peste strike: market makerii VÂND — împing prețul în jos</text>
|
||||||
|
<polygon points="224,182 236,182 230,168" fill="#188a3e"/>
|
||||||
|
<text x="200" y="208" fill="#188a3e">sub strike: market makerii CUMPĂRĂ — împing prețul în sus</text>
|
||||||
|
<text x="60" y="256" fill="#333">Prețul e tras înapoi spre strike de fiecare dată când se depărtează. Asta e <tspan style="font-weight:bold">pinning</tspan>.</text>
|
||||||
|
<text x="60" y="278" fill="#555">Efectul dispare la închiderea sesiunii, când opțiunile expiră — de aici mișcările bruște de la final de zi.</text>
|
||||||
|
</svg></p>
|
||||||
|
<p><strong>Ce faci cu asta, concret:</strong></p>
|
||||||
|
<ol>
|
||||||
|
<li><strong>Nu pune un take-profit chiar dincolo de un strike rotund</strong> într-o zi de
|
||||||
|
expirare mare. Prețul tinde să fie ținut sub el până la închidere.</li>
|
||||||
|
<li><strong>Nu interpreta lipsa de mișcare ca lipsă de interes.</strong> Un preț care stă
|
||||||
|
lipit de un nivel toată ziua într-o vineri de expirare nu e consolidare —
|
||||||
|
e pinning, și se termină brusc.</li>
|
||||||
|
<li><strong>Mișcările de la final de sesiune</strong> în zilele de expirare sunt
|
||||||
|
mecanice, nu informaționale. Nu le citi ca semnal pentru ziua următoare.</li>
|
||||||
|
</ol>
|
||||||
|
<hr />
|
||||||
|
<h2 id="ideea-care-leaga-toata-lectia">Ideea care leagă toată lecția</h2>
|
||||||
|
<p>Formularea din curs, care merită reținută ca principiu general:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Prețul nu se mișcă doar din „știri”, ci din <strong>cine este forțat să acționeze
|
||||||
|
și când</strong>. Expirările sunt exact acele momente.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>E același mecanism ca la short squeeze (cei short <strong>trebuie</strong> să cumpere ca
|
||||||
|
să iasă), ca la stop hunt (stop-loss-urile <strong>trebuie</strong> să se execute), și ca
|
||||||
|
la Commitment of Traders (companiile <strong>trebuie</strong> să-și acopere marfa). În
|
||||||
|
toate cazurile, mișcarea vine din obligație, nu din opinie — și de-asta e
|
||||||
|
previzibilă în timp, chiar dacă nu în amplitudine.</p>
|
||||||
|
<p><strong>Witching-ul nu e o anomalie.</strong> E o suprapunere de expirări care se întâmplă
|
||||||
|
oricum, în fiecare vineri. Diferă doar intensitatea.</p>
|
||||||
|
<hr />
|
||||||
|
<h2 id="cum-folosesti-calendarul-practic">Cum folosești calendarul, practic</h2>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Înainte de o intrare de swing</strong>, verifică dacă a treia vineri e aproape.
|
||||||
|
Dacă ținta ta e la câteva zile distanță și trece peste o expirare majoră,
|
||||||
|
te aștepți la zgomot suplimentar, nu la un drum curat.</li>
|
||||||
|
<li><strong>În martie, iunie, septembrie, decembrie</strong>, a treia vineri e zi de
|
||||||
|
volum extrem. Nu e zi de inițiat poziții pe baza volumului.</li>
|
||||||
|
<li><strong>Luni după witching</strong> e ziua în care vezi ce a rămas din mișcare.</li>
|
||||||
|
<li>Pe <strong>SPX</strong>, expirările de luni și miercuri există special pentru hedging pe
|
||||||
|
CPI și FOMC — dacă tranzacționezi în jurul acelor date, poziționarea pe
|
||||||
|
opțiuni e deja făcută înainte de anunț.</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h2 id="ce-e-completare-a-mea-dincolo-de-lectie">Ce e completare a mea, dincolo de lecție</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Mecanismul de pinning și gamma hedging (lecția menționează efectele, nu
|
||||||
|
cauza) și cele trei consecințe practice.</li>
|
||||||
|
<li>Testul DA/NU pentru a distinge volumul de rolling de volumul care confirmă
|
||||||
|
un breakout — lecția spune că volumul crește, nu și că asta îți poate
|
||||||
|
strica citirea unui setup.</li>
|
||||||
|
<li>Legătura cu short squeeze, stop hunt și Commitment of Traders ca instanțe
|
||||||
|
ale aceluiași principiu.</li>
|
||||||
|
<li>Secțiunea de folosire practică a calendarului.</li>
|
||||||
|
<li>Toate diagramele. Lecția originală trimite la un grafic de volum pe care
|
||||||
|
platforma nu îl expune în text.</li>
|
||||||
|
</ul>
|
||||||
|
<p>Datele (21.03 / 20.06 / 19.09 / 19.12.2025), recordul de volum din
|
||||||
|
20.12.2024, simbolurile de futures și lista tipurilor de expirare sunt din
|
||||||
|
lecție.</p>
|
||||||
|
<h2 id="referinte">Referințe</h2>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://www.investopedia.com/terms/q/quadruplewitching.asp">Investopedia — Quadruple Witching</a></li>
|
||||||
|
<li><a href="https://www.cmegroup.com/education/courses/introduction-to-equity-index-products/understanding-the-quarterly-roll.html">CME Group — Equity Index futures roll dates</a></li>
|
||||||
|
<li><a href="https://www.investopedia.com/what-are-0dte-options-7482529">Investopedia — 0DTE Options</a></li>
|
||||||
|
<li><a href="https://www.investopedia.com/terms/g/gammahedging.asp">Investopedia — Gamma Hedging</a></li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
258
summaries/04_MODUL_3/06_alte_tipuri_de_catalizatori.md
Normal file
258
summaries/04_MODUL_3/06_alte_tipuri_de_catalizatori.md
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
# Modul 3 / #9 — Alte tipuri de catalizatori: expirările de opțiuni și witching
|
||||||
|
|
||||||
|
> **Singura lecție din curriculum fără video** — e o lecție scrisă. Pipeline-ul
|
||||||
|
> de transcriere o sărea (caută doar MP4); acum e extrasă cu
|
||||||
|
> `extract_text_lessons.py`. Lecția originală trimite la un grafic și la un
|
||||||
|
> link extern pe care platforma nu le expune în text — diagramele de mai jos
|
||||||
|
> sunt construite de mine.
|
||||||
|
|
||||||
|
## TLDR
|
||||||
|
|
||||||
|
În fiecare vineri expiră opțiuni. A treia vineri din lună e o expirare
|
||||||
|
majoră. În martie, iunie, septembrie și decembrie, a treia vineri e
|
||||||
|
**witching** — mai multe tipuri de derivate expiră simultan. Pe indicii mari
|
||||||
|
expiră opțiuni **în fiecare zi** (0DTE).
|
||||||
|
|
||||||
|
Efectul principal nu e direcția, e **volumul**. Iar cauza nu e o știre, ci
|
||||||
|
faptul că cineva e **obligat** să tranzacționeze la un moment fix.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ce e quadruple witching
|
||||||
|
|
||||||
|
Patru tipuri de derivate expiră în aceeași zi:
|
||||||
|
|
||||||
|
<svg viewBox="0 0 620 240" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="20" y="18" fill="#333" style="font-weight:bold">A treia vineri din martie / iunie / septembrie / decembrie</text>
|
||||||
|
<rect x="25" y="45" width="270" height="52" fill="#eef4fb" stroke="#1a5fb4"/>
|
||||||
|
<text x="38" y="66" fill="#1a5fb4" style="font-weight:bold">Futures pe indici bursieri</text>
|
||||||
|
<text x="38" y="86" fill="#555">@ES, @NQ, @YM, @RTY</text>
|
||||||
|
<rect x="320" y="45" width="270" height="52" fill="#eef4fb" stroke="#1a5fb4"/>
|
||||||
|
<text x="333" y="66" fill="#1a5fb4" style="font-weight:bold">Opțiuni pe acțiuni individuale</text>
|
||||||
|
<text x="333" y="86" fill="#555">AAPL, TSLA, NVDA...</text>
|
||||||
|
<rect x="25" y="112" width="270" height="52" fill="#eef4fb" stroke="#1a5fb4"/>
|
||||||
|
<text x="38" y="133" fill="#1a5fb4" style="font-weight:bold">Opțiuni pe futures pe indici</text>
|
||||||
|
<text x="38" y="153" fill="#555">opțiuni al căror suport e @ES / @NQ</text>
|
||||||
|
<rect x="320" y="112" width="270" height="52" fill="#eef4fb" stroke="#1a5fb4"/>
|
||||||
|
<text x="333" y="133" fill="#1a5fb4" style="font-weight:bold">Opțiuni pe indici</text>
|
||||||
|
<text x="333" y="153" fill="#555">SPX, NDX, RUT</text>
|
||||||
|
<text x="25" y="192" fill="#333">Când doar trei dintre ele coincid, se numește <tspan style="font-weight:bold">triple witching</tspan> — aceeași mecanică, intensitate mai mică.</text>
|
||||||
|
<text x="25" y="216" fill="#555">Unele liste adaugă și futures pe acțiuni individuale, dar sunt produse mici, cu impact minim.</text>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
**Datele din 2025**, ca reper: 21 martie, 20 iunie, 19 septembrie,
|
||||||
|
19 decembrie. Regula e stabilă — a treia vineri, la finalul fiecărui
|
||||||
|
trimestru.
|
||||||
|
|
||||||
|
**Cifra care arată magnitudinea:** witching-ul din **20 decembrie 2024** a
|
||||||
|
avut **cel mai mare volum de tranzacționare din tot anul** pe S&P 500.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Calendarul complet al expirărilor
|
||||||
|
|
||||||
|
Lecția enumeră cinci tipuri. Ordonate după cât de des te afectează:
|
||||||
|
|
||||||
|
<svg viewBox="0 0 620 300" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="20" y="18" fill="#333" style="font-weight:bold">O lună obișnuită de tranzacționare</text>
|
||||||
|
<line x1="30" y1="120" x2="600" y2="120" stroke="#888" stroke-width="1.5"/>
|
||||||
|
<rect x="95" y="106" width="8" height="28" fill="#9bb8d4"/>
|
||||||
|
<text x="72" y="152" fill="#1a5fb4">vineri 1</text>
|
||||||
|
<rect x="215" y="106" width="8" height="28" fill="#9bb8d4"/>
|
||||||
|
<text x="192" y="152" fill="#1a5fb4">vineri 2</text>
|
||||||
|
<rect x="335" y="86" width="12" height="68" fill="#c00"/>
|
||||||
|
<text x="300" y="172" fill="#c00" style="font-weight:bold">vineri 3</text>
|
||||||
|
<text x="288" y="188" fill="#c00">expirare majoră</text>
|
||||||
|
<text x="282" y="204" fill="#c00">(witching în mar/iun/sep/dec)</text>
|
||||||
|
<rect x="455" y="106" width="8" height="28" fill="#9bb8d4"/>
|
||||||
|
<text x="432" y="152" fill="#1a5fb4">vineri 4</text>
|
||||||
|
<rect x="555" y="106" width="8" height="28" fill="#9bb8d4"/>
|
||||||
|
<text x="532" y="152" fill="#1a5fb4">vineri 5</text>
|
||||||
|
<rect x="55" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="80" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="130" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="155" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="180" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="250" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="275" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="300" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="375" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="400" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="425" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="490" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<rect x="515" y="114" width="4" height="12" fill="#b06000"/>
|
||||||
|
<text x="30" y="62" fill="#b06000">barele mici maro = 0DTE, expirare zilnică pe SPX / NDX / RUT</text>
|
||||||
|
<text x="30" y="80" fill="#1a5fb4">barele albastre = opțiuni săptămânale (weeklies), în fiecare vineri</text>
|
||||||
|
<text x="30" y="252" fill="#555">Dacă vinerea e sărbătoare, weekly-urile expiră joi.</text><text x="30" y="272" fill="#555">SPX are și expirări luni și miercuri, folosite pentru hedging pe CPI și FOMC.</text>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
| Tip | Când expiră | Ce contează |
|
||||||
|
|---|---|---|
|
||||||
|
| Standard (acțiuni + indici) | a treia vineri din **fiecare** lună | expirarea clasică; witching-ul e doar cazul în care coincid mai multe tipuri |
|
||||||
|
| **Weekly** | în fiecare vineri (joi dacă e sărbătoare) | de aici vine **majoritatea activității moderne**; maturități scurte, gamma concentrată |
|
||||||
|
| **0DTE** | în fiecare zi de tranzacționare | doar SPX, NDX, RUT. Produce pinning și mișcări accelerate la final de sesiune |
|
||||||
|
| Luni / miercuri | pe SPX | hedging pe evenimente (CPI, FOMC) și poziționare tactică |
|
||||||
|
| Trimestriale non-witching | final de trimestru | rebalansări de portofolii; volume mari dar "mai curate" |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## De ce apare volumul: rolling
|
||||||
|
|
||||||
|
Mecanismul principal, explicat în lecție, și e util pentru că nu are nimic
|
||||||
|
de-a face cu o părere despre piață:
|
||||||
|
|
||||||
|
Un trader de futures care vrea să **își păstreze** poziția după expirarea
|
||||||
|
trimestrială nu poate pur și simplu s-o lase. Trebuie să **vândă contractul
|
||||||
|
care expiră și să cumpere contractul nou**. Asta se numește **rolling**.
|
||||||
|
|
||||||
|
<svg viewBox="0 0 620 250" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="20" y="18" fill="#333" style="font-weight:bold">Rolling — aceeași expunere, două tranzacții obligatorii</text>
|
||||||
|
<rect x="30" y="50" width="180" height="60" fill="#fbeaea" stroke="#c00"/>
|
||||||
|
<text x="44" y="74" fill="#c00" style="font-weight:bold">@ES contractul care expiră</text>
|
||||||
|
<text x="44" y="94" fill="#555">poziția ta long, azi</text>
|
||||||
|
<polygon points="230,68 230,92 265,80" fill="#333"/>
|
||||||
|
<text x="222" y="128" fill="#333">VINDE</text>
|
||||||
|
<rect x="285" y="50" width="180" height="60" fill="#e9f5ec" stroke="#188a3e"/>
|
||||||
|
<text x="299" y="74" fill="#188a3e" style="font-weight:bold">@ES contractul următor</text>
|
||||||
|
<text x="299" y="94" fill="#555">aceeași poziție, mâine</text>
|
||||||
|
<text x="300" y="128" fill="#333">CUMPĂRĂ</text>
|
||||||
|
<text x="30" y="172" fill="#333">Expunerea lui în piață nu s-a schimbat deloc. Dar în volumul zilei apar două tranzacții.</text>
|
||||||
|
<text x="30" y="196" fill="#333" style="font-weight:bold">Înmulțit cu toți cei care au poziții deschise = volumul de witching.</text>
|
||||||
|
<text x="30" y="228" fill="#555">De asta volumul mare de witching nu îți spune nimic despre direcție: nimeni nu și-a schimbat părerea.</text>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
**Consecința practică, și e cea mai importantă din lecție (completarea mea,
|
||||||
|
dar decurge direct):** volumul din ziua de witching **nu confirmă un
|
||||||
|
breakout**. Peste tot în curs, volumul mare la spargerea unui nivel e
|
||||||
|
semnalul că mișcarea e reală. În ziua de witching, volumul e generat de
|
||||||
|
obligații contractuale, nu de convingere.
|
||||||
|
|
||||||
|
<svg viewBox="0 0 620 330" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="20" y="18" fill="#188a3e" style="font-weight:bold">DA — breakout cu volum, zi obișnuită</text>
|
||||||
|
<line x1="25" y1="105" x2="285" y2="105" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="28" y="99" fill="#1a5fb4">nivel spart</text>
|
||||||
|
<polyline points="35,165 75,158 115,148 155,130 195,95 235,70 272,52" fill="none" stroke="#333" stroke-width="2"/>
|
||||||
|
<line x1="25" y1="200" x2="285" y2="200" stroke="#ddd"/>
|
||||||
|
<rect x="45" y="238" width="16" height="30" fill="#188a3e"/>
|
||||||
|
<rect x="90" y="234" width="16" height="34" fill="#188a3e"/>
|
||||||
|
<rect x="135" y="228" width="16" height="40" fill="#188a3e"/>
|
||||||
|
<rect x="180" y="212" width="16" height="56" fill="#188a3e"/>
|
||||||
|
<rect x="225" y="206" width="16" height="62" fill="#188a3e"/>
|
||||||
|
<line x1="25" y1="268" x2="285" y2="268" stroke="#888"/>
|
||||||
|
<text x="28" y="292" fill="#188a3e">Volumul crește ODATĂ cu mișcarea</text>
|
||||||
|
<text x="28" y="308" fill="#188a3e">și rămâne mare după.</text>
|
||||||
|
<text x="350" y="18" fill="#c00" style="font-weight:bold">NU — vinerea de witching</text>
|
||||||
|
<line x1="355" y1="105" x2="610" y2="105" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="358" y="99" fill="#1a5fb4">același nivel</text>
|
||||||
|
<polyline points="365,145 405,140 445,120 485,92 520,100 555,128 595,150" fill="none" stroke="#333" stroke-width="2"/>
|
||||||
|
<circle cx="485" cy="92" r="4.5" fill="#c00"/>
|
||||||
|
<text x="440" y="72" fill="#c00">spargere care nu ține</text>
|
||||||
|
<line x1="355" y1="200" x2="610" y2="200" stroke="#ddd"/>
|
||||||
|
<rect x="375" y="240" width="16" height="28" fill="#888"/>
|
||||||
|
<rect x="420" y="238" width="16" height="30" fill="#888"/>
|
||||||
|
<rect x="465" y="204" width="16" height="64" fill="#c00"/>
|
||||||
|
<rect x="510" y="208" width="16" height="60" fill="#c00"/>
|
||||||
|
<rect x="555" y="242" width="16" height="26" fill="#888"/>
|
||||||
|
<line x1="355" y1="268" x2="610" y2="268" stroke="#888"/>
|
||||||
|
<text x="358" y="292" fill="#c00">Volum uriaș doar în ziua expirării,</text>
|
||||||
|
<text x="358" y="308" fill="#c00">apoi revine la normal. Prețul se întoarce.</text>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
**Testul practic:** volumul de witching e **izolat într-o singură zi** și
|
||||||
|
dispare luni. Volumul care confirmă un breakout **persistă** în zilele
|
||||||
|
următoare. Dacă nu ești sigur, aștepți ziua de luni.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Pinning și hedging-ul market makerilor
|
||||||
|
|
||||||
|
Lecția menționează efectele de **pinning** pe 0DTE și "volatilitate
|
||||||
|
artificială creată de hedging-ul market makerilor", fără să explice
|
||||||
|
mecanismul. Îl completez, pentru că e ce face 0DTE-ul relevant pentru un
|
||||||
|
trader care nu tranzacționează opțiuni deloc.
|
||||||
|
|
||||||
|
Market makerii vând opțiuni și rămân cu expunere pe direcție. Ca să fie
|
||||||
|
neutri, își acoperă poziția cumpărând sau vânzând activul suport. Cât timp
|
||||||
|
prețul e **aproape de un strike cu volum mare**, acoperirea lor merge
|
||||||
|
**împotriva** mișcării:
|
||||||
|
|
||||||
|
<svg viewBox="0 0 620 290" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<text x="8" y="14" fill="#666">preț ↑</text>
|
||||||
|
<line x1="60" y1="145" x2="580" y2="145" stroke="#b06000" stroke-width="2.5"/>
|
||||||
|
<text x="60" y="60" fill="#b06000" style="font-weight:bold">strike 600 — cel mai mare volum de opțiuni deschise</text>
|
||||||
|
<polyline points="70,175 110,150 150,122 190,146 230,170 270,145 310,120 350,144 390,168 430,146 470,124 510,145 550,160" fill="none" stroke="#333" stroke-width="2"/>
|
||||||
|
<polygon points="144,112 156,112 150,126" fill="#c00"/>
|
||||||
|
<text x="60" y="100" fill="#c00">peste strike: market makerii VÂND — împing prețul în jos</text>
|
||||||
|
<polygon points="224,182 236,182 230,168" fill="#188a3e"/>
|
||||||
|
<text x="200" y="208" fill="#188a3e">sub strike: market makerii CUMPĂRĂ — împing prețul în sus</text>
|
||||||
|
<text x="60" y="256" fill="#333">Prețul e tras înapoi spre strike de fiecare dată când se depărtează. Asta e <tspan style="font-weight:bold">pinning</tspan>.</text>
|
||||||
|
<text x="60" y="278" fill="#555">Efectul dispare la închiderea sesiunii, când opțiunile expiră — de aici mișcările bruște de la final de zi.</text>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
**Ce faci cu asta, concret:**
|
||||||
|
|
||||||
|
1. **Nu pune un take-profit chiar dincolo de un strike rotund** într-o zi de
|
||||||
|
expirare mare. Prețul tinde să fie ținut sub el până la închidere.
|
||||||
|
2. **Nu interpreta lipsa de mișcare ca lipsă de interes.** Un preț care stă
|
||||||
|
lipit de un nivel toată ziua într-o vineri de expirare nu e consolidare —
|
||||||
|
e pinning, și se termină brusc.
|
||||||
|
3. **Mișcările de la final de sesiune** în zilele de expirare sunt
|
||||||
|
mecanice, nu informaționale. Nu le citi ca semnal pentru ziua următoare.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ideea care leagă toată lecția
|
||||||
|
|
||||||
|
Formularea din curs, care merită reținută ca principiu general:
|
||||||
|
|
||||||
|
> Prețul nu se mișcă doar din „știri”, ci din **cine este forțat să acționeze
|
||||||
|
> și când**. Expirările sunt exact acele momente.
|
||||||
|
|
||||||
|
E același mecanism ca la short squeeze (cei short **trebuie** să cumpere ca
|
||||||
|
să iasă), ca la stop hunt (stop-loss-urile **trebuie** să se execute), și ca
|
||||||
|
la Commitment of Traders (companiile **trebuie** să-și acopere marfa). În
|
||||||
|
toate cazurile, mișcarea vine din obligație, nu din opinie — și de-asta e
|
||||||
|
previzibilă în timp, chiar dacă nu în amplitudine.
|
||||||
|
|
||||||
|
**Witching-ul nu e o anomalie.** E o suprapunere de expirări care se întâmplă
|
||||||
|
oricum, în fiecare vineri. Diferă doar intensitatea.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cum folosești calendarul, practic
|
||||||
|
|
||||||
|
- **Înainte de o intrare de swing**, verifică dacă a treia vineri e aproape.
|
||||||
|
Dacă ținta ta e la câteva zile distanță și trece peste o expirare majoră,
|
||||||
|
te aștepți la zgomot suplimentar, nu la un drum curat.
|
||||||
|
- **În martie, iunie, septembrie, decembrie**, a treia vineri e zi de
|
||||||
|
volum extrem. Nu e zi de inițiat poziții pe baza volumului.
|
||||||
|
- **Luni după witching** e ziua în care vezi ce a rămas din mișcare.
|
||||||
|
- Pe **SPX**, expirările de luni și miercuri există special pentru hedging pe
|
||||||
|
CPI și FOMC — dacă tranzacționezi în jurul acelor date, poziționarea pe
|
||||||
|
opțiuni e deja făcută înainte de anunț.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ce e completare a mea, dincolo de lecție
|
||||||
|
|
||||||
|
- Mecanismul de pinning și gamma hedging (lecția menționează efectele, nu
|
||||||
|
cauza) și cele trei consecințe practice.
|
||||||
|
- Testul DA/NU pentru a distinge volumul de rolling de volumul care confirmă
|
||||||
|
un breakout — lecția spune că volumul crește, nu și că asta îți poate
|
||||||
|
strica citirea unui setup.
|
||||||
|
- Legătura cu short squeeze, stop hunt și Commitment of Traders ca instanțe
|
||||||
|
ale aceluiași principiu.
|
||||||
|
- Secțiunea de folosire practică a calendarului.
|
||||||
|
- Toate diagramele. Lecția originală trimite la un grafic de volum pe care
|
||||||
|
platforma nu îl expune în text.
|
||||||
|
|
||||||
|
Datele (21.03 / 20.06 / 19.09 / 19.12.2025), recordul de volum din
|
||||||
|
20.12.2024, simbolurile de futures și lista tipurilor de expirare sunt din
|
||||||
|
lecție.
|
||||||
|
|
||||||
|
## Referințe
|
||||||
|
|
||||||
|
- [Investopedia — Quadruple Witching](https://www.investopedia.com/terms/q/quadruplewitching.asp)
|
||||||
|
- [CME Group — Equity Index futures roll dates](https://www.cmegroup.com/education/courses/introduction-to-equity-index-products/understanding-the-quarterly-roll.html)
|
||||||
|
- [Investopedia — 0DTE Options](https://www.investopedia.com/what-are-0dte-options-7482529)
|
||||||
|
- [Investopedia — Gamma Hedging](https://www.investopedia.com/terms/g/gammahedging.asp)
|
||||||
File diff suppressed because one or more lines are too long
149
transcripts/04_MODUL_3/06_9_ALTE_TIPURI_DE_CATALIZATORI.txt
Normal file
149
transcripts/04_MODUL_3/06_9_ALTE_TIPURI_DE_CATALIZATORI.txt
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
Alte evenimente pe bursa din SUA
|
||||||
|
Lecția 1
|
||||||
|
Ziua celor 3 Vrăjitoare - Tripple Witching
|
||||||
|
Ce este Quadruple Witching?
|
||||||
|
Quadruple witching
|
||||||
|
este un eveniment din piețele financiare în care
|
||||||
|
patru tipuri diferite de contracte futures și opțiuni expiră în aceeași zi
|
||||||
|
.
|
||||||
|
Contractele futures și opțiunile sunt
|
||||||
|
instrumente derivate
|
||||||
|
, legate de prețurile acțiunilor de bază. Atunci când aceste instrumente expiră, traderii trebuie să își închidă sau să își ajusteze pozițiile. Acest lucru poate declanșa
|
||||||
|
volume mari de tranzacționare și fluxuri importante de ordine
|
||||||
|
.
|
||||||
|
Cele patru tipuri de instrumente derivate care expiră în ziua de
|
||||||
|
quadruple witching
|
||||||
|
sunt:
|
||||||
|
contracte futures pe indici bursieri
|
||||||
|
opțiuni pe acțiuni individuale
|
||||||
|
opțiuni pe contracte futures pe indici bursieri
|
||||||
|
opțiuni pe indici bursieri
|
||||||
|
Notă:
|
||||||
|
Unele liste includ și contractele futures pe acțiuni individuale în categoria expirărilor de
|
||||||
|
quadruple witching
|
||||||
|
. Totuși, acestea sunt produse relativ mici, cu un impact minim asupra pieței.
|
||||||
|
Când au loc zilele de Quadruple Witching în 2025?
|
||||||
|
Zilele de
|
||||||
|
quadruple witching
|
||||||
|
sunt
|
||||||
|
a treia zi de vineri din lunile martie, iunie, septembrie și decembrie
|
||||||
|
. Astfel, ele apar aproape de finalul fiecărui trimestru al anului.
|
||||||
|
În 2025, acestea sunt:
|
||||||
|
21 martie
|
||||||
|
20 iunie
|
||||||
|
19 septembrie
|
||||||
|
19 decembrie
|
||||||
|
Impactul asupra pieței al Quadruple Witching
|
||||||
|
Expirarea simultană a contractelor futures pe indici, a opțiunilor pe futures pe indici, a opțiunilor pe acțiuni individuale și a opțiunilor pe indici poate genera
|
||||||
|
volatilitate și volume semnificative
|
||||||
|
.
|
||||||
|
De exemplu, ziua de
|
||||||
|
quadruple witching
|
||||||
|
din
|
||||||
|
20 decembrie 2024
|
||||||
|
a înregistrat
|
||||||
|
cel mai mare volum de tranzacționare din întregul an pe S&P 500
|
||||||
|
. Și celelalte zile de
|
||||||
|
quadruple witching
|
||||||
|
au avut activitate peste medie (vezi graficul de mai jos).
|
||||||
|
Denumirea folclorică „
|
||||||
|
witching
|
||||||
|
” (vrăjitorie) provine din ideea că anumite momente sunt asociate cu forțe întunecate sau supranaturale. Metaforic, acest concept se poate aplica piețelor atunci când traderii sunt forțați să închidă poziții mari în instrumente derivate. Astfel de evenimente pot provoca uneori mișcări neașteptate, deși regulile mai noi au redus mult din haosul de altădată.
|
||||||
|
În majoritatea cazurilor, efectul principal este
|
||||||
|
creșterea masivă a volumului
|
||||||
|
.
|
||||||
|
Contracte Futures pe Indici Bursieri
|
||||||
|
Acestea includ produse tranzacționate intens, precum:
|
||||||
|
E-Mini S&P 500 (@ES)
|
||||||
|
E-Mini Nasdaq-100 (@NQ)
|
||||||
|
Există, de asemenea, contracte futures pentru:
|
||||||
|
Dow Jones Industrial Average (@YM)
|
||||||
|
Russell 2000 (@RTY)
|
||||||
|
Traderii de futures pot deschide poziții
|
||||||
|
long
|
||||||
|
sau
|
||||||
|
short
|
||||||
|
aproape non-stop, de duminică seara până vineri după-amiaza.
|
||||||
|
Dacă doresc să mențină o poziție după expirarea trimestrială, ei trebuie să
|
||||||
|
vândă contractul care expiră și să cumpere contractul nou
|
||||||
|
. Acest proces, numit
|
||||||
|
„rolling”
|
||||||
|
, este unul dintre principalele motive pentru volumul ridicat din zilele de
|
||||||
|
quadruple witching
|
||||||
|
.
|
||||||
|
Ai aici si link-ul direct în limba engleză
|
||||||
|
Lecția 2
|
||||||
|
Alte date de expirare opțiuni
|
||||||
|
1. Expirarea standard a opțiunilor pe acțiuni și indici
|
||||||
|
Cea mai clasică regulă:
|
||||||
|
A treia zi de vineri din FIECARE lună
|
||||||
|
Aici expiră:
|
||||||
|
opțiunile pe acțiuni (AAPL, TSLA etc.)
|
||||||
|
opțiunile pe indici (SPX, NDX etc.)
|
||||||
|
Triple / quadruple witching este doar un
|
||||||
|
caz special
|
||||||
|
al acestei reguli, când
|
||||||
|
coincid mai multe tipuri de derivate
|
||||||
|
.
|
||||||
|
2. Opțiuni săptămânale (Weekly Options)
|
||||||
|
Majoritatea activității moderne vine de aici.
|
||||||
|
Expiră:
|
||||||
|
în fiecare vineri
|
||||||
|
cu excepția cazului în care vineri este sărbătoare → expiră joi
|
||||||
|
Aceste opțiuni:
|
||||||
|
au maturități foarte scurte
|
||||||
|
concentrează mult
|
||||||
|
gamma
|
||||||
|
și
|
||||||
|
hedging agresiv
|
||||||
|
pot genera mișcări rapide de preț
|
||||||
|
SPY, QQQ, AAPL, TSLA, NVDA sunt „teren de joacă” clasic pentru weekly options.
|
||||||
|
3. Opțiuni zilnice (0DTE – zero days to expiration)
|
||||||
|
Pentru unii indici mari:
|
||||||
|
SPX
|
||||||
|
NDX
|
||||||
|
RUT
|
||||||
|
Expiră:
|
||||||
|
în fiecare zi de tranzacționare
|
||||||
|
Aici apar:
|
||||||
|
efecte puternice de
|
||||||
|
pinning
|
||||||
|
mișcări accelerate la final de sesiune
|
||||||
|
volatilitate „artificială” creată de hedging-ul market makerilor
|
||||||
|
4. Opțiuni pe indici cu expirare luni / miercuri
|
||||||
|
Unele piețe oferă:
|
||||||
|
expirări
|
||||||
|
luni
|
||||||
|
expirări
|
||||||
|
miercuri
|
||||||
|
Foarte populare pe SPX.
|
||||||
|
Sunt folosite pentru:
|
||||||
|
hedging pe evenimente (CPI, FOMC)
|
||||||
|
poziționare tactică pe termen scurt
|
||||||
|
5. Expirări trimestriale (non-witching)
|
||||||
|
Chiar dacă nu e witching, există:
|
||||||
|
expirări
|
||||||
|
la final de trimestru
|
||||||
|
mai ales pe indici și ETF-uri mari
|
||||||
|
Pot genera:
|
||||||
|
rebalansări de portofolii
|
||||||
|
ajustări de hedging
|
||||||
|
volume crescute, dar mai „curate” decât witching
|
||||||
|
Concluzie
|
||||||
|
În fiecare vineri
|
||||||
|
expiră opțiuni
|
||||||
|
A treia vineri din lună
|
||||||
|
= expirare majoră
|
||||||
|
Martie / Iunie / Septembrie / Decembrie
|
||||||
|
= witching
|
||||||
|
Zilnic
|
||||||
|
(pe indici mari) = 0DTE → impact intraday
|
||||||
|
Witching nu este o anomalie, ci
|
||||||
|
o suprapunere de expirări
|
||||||
|
.
|
||||||
|
Piața modernă este influențată constant de expirarea opțiunilor — diferența este
|
||||||
|
intensitatea
|
||||||
|
.
|
||||||
|
Contextul mai larg: prețul nu se mișcă doar din „știri”, ci din
|
||||||
|
cine este forțat să acționeze și când
|
||||||
|
. Expirările sunt exact acele momente.
|
||||||
Reference in New Issue
Block a user