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:
Claude Agent
2026-09-12 17:57:02 +00:00
parent 69710bead5
commit ff25f3d9c3
8 changed files with 831 additions and 67 deletions

View File

@@ -5,14 +5,14 @@ Pipeline personal de transcriere + sumarizare pentru cursul de trading ATM
pe Gitea. Pagină publicată (Tailscale, doar în tailnet):
**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 |
|---|---|---|
| Modulul 1 | 10 | ✅ |
| Catalizatori economici | 8 | ✅ |
| Modulul 2 | 16 | ✅ |
| Modulul 3 | 6 | ✅ |
| Modulul 3 | 6 (5 video + 1 text) | ✅ |
| Modulul 4 | 4 | ✅ |
| 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ă
`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`)
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

92
extract_text_lessons.py Normal file
View 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()

View File

@@ -5,6 +5,7 @@ Also (re)writes summaries/index.html linking every rendered page.
Run after adding/editing any summary.
"""
import re
from pathlib import Path
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")
check_svgs(md_path, text)
body = markdown.markdown(text, extensions=["extra", "toc"])
title = text.splitlines()[0].lstrip("# ").strip() if text else md_path.stem
html_path = md_path.with_suffix(".html")
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]):
items = "\n".join(
f'<li><a href="{p.relative_to(ROOT)}">{p.parent.name} / {p.stem}</a></li>'
for p in sorted(pages)
)
def write_index(pages: list[tuple[Path, str]]):
"""Grupat pe module, cu titlul H1 al fiecărei pagini — numele fișierului
(o dată, un număr) nu spune nimic despre ce e înăuntru."""
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(
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",
)

View 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&amp;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>

View 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

View 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.