Q&A: aceleasi verificari aplicate si pe fisierele mele

audit_diagrams.py - verificare mecanica pe diagrame: text taiat de viewBox,
texte suprapuse, linii goale in <svg>, si raportul pret-vs-pixeli pe
diagramele cu trei niveluri.

Gasit si reparat in propriile sumarizari:
- Black Swan (25.08): stop-loss-ul de 24.00 desenat prea aproape de 27.00 —
  raport 0.21R in preturi, 0.31R desenat. Acum la scara, deci golul de sub
  stop arata cat e in realitate
- eticheta care descria panoul COT era pusa in panoul de pret
- 5 captions taiate de marginea dreapta

Plus moltbot: supervizor de repornire dupa ce workerul a murit fara urma in
loguri (probabil OOM nelogat), cpu_threads 5 -> 4. Documentat in PROGRESS.md.

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 21:31:56 +00:00
parent 9415fea0e7
commit 841a5f828c
12 changed files with 126 additions and 32 deletions

View File

@@ -54,6 +54,17 @@ Zilnică (147). Decizii luate cu el:
`tmux qa_local2`, care așteaptă terminarea primei și reia `transcribe.py` `tmux qa_local2`, care așteaptă terminarea primei și reia `transcribe.py`
ca să prindă fișierele mutate. `transcribe.py` sare peste ce are deja ca să prindă fișierele mutate. `transcribe.py` sare peste ce are deja
transcriere, deci pasele sunt sigure de repetat. transcriere, deci pasele sunt sigure de repetat.
- **Workerul de pe moltbot moare fără urmă în loguri.** S-a întâmplat o dată
pe 2026-09-12 la 19:55, în mijlocul unui fișier de 2h11m: procesul python
ȘI serverul tmux au dispărut, fără traceback, fără linie de OOM (containerul
nu vede `dmesg`), fără reboot (uptime intact). Cel mai probabil OOM
nelogat — 8GB, `medium` int8 cu 5 threaduri. Coada s-a oprit 90 de minute
până am observat.
Fix: `cpu_threads` scăzut la 4, și `/root/atm/run.sh` — un supervizor care
relansează workerul de până la 40 de ori, cu 20s pauză, până apare
`ALL DONE` în log. Workerul e resumabil, deci o cădere pierde doar fișierul
în lucru. Pornește cu `tmux new-session -d -s qa_molt "/root/atm/run.sh"`,
NU cu workerul direct.
- **Workerul de pe moltbot își face `sorted(glob)` o singură dată la start** - **Workerul de pe moltbot își face `sorted(glob)` o singură dată la start**
— dacă muți/ștergi fișiere din `/root/atm/audio` cât rulează, repornește-l — dacă muți/ștergi fișiere din `/root/atm/audio` cât rulează, repornește-l
(`tmux kill-session -t qa_molt` + relansare), nu te baza că observă (`tmux kill-session -t qa_molt` + relansare), nu te baza că observă

85
audit_diagrams.py Normal file
View File

@@ -0,0 +1,85 @@
"""
Verificări mecanice pe diagramele SVG dintr-un fișier de sumarizare.
Prinde exact clasele de bug găsite manual în 01_MODUL_1/05_patternuri_candele.md:
scară inconsistentă între niveluri, text tăiat de viewBox, text suprapus,
linii goale care rup blocul HTML. NU înlocuiește verificarea vizuală — nu
vede dacă un text stă peste o linie de preț.
Rulează: .venv/bin/python audit_diagrams.py summaries/<modul>/<fisier>.md
"""
import re
import sys
from pathlib import Path
CHAR_W = 5.7 # latime medie per caracter la 12px sans-serif (calibrat pe randare)
LINE_H = 13 # înălțimea unei linii de text
def texts(svg: str):
for m in re.finditer(r'<text\b([^>]*)>(.*?)</text>', svg, re.S):
attrs, inner = m.group(1), re.sub(r'<[^>]+>', '', m.group(2))
x = float(re.search(r'\bx="([-\d.]+)"', attrs).group(1)) if re.search(r'\bx="', attrs) else 0.0
y = float(re.search(r'\by="([-\d.]+)"', attrs).group(1)) if re.search(r'\by="', attrs) else 0.0
anchor = (re.search(r'text-anchor="(\w+)"', attrs) or [None, "start"])[1]
w = len(inner) * CHAR_W
x0 = x - w if anchor == "end" else (x - w / 2 if anchor == "middle" else x)
yield x0, x0 + w, y, inner.strip()
def check(path: Path) -> list[str]:
md = path.read_text(encoding="utf-8")
problems = []
for i, svg in enumerate(re.findall(r'<svg .*?</svg>', md, re.S)):
vb = re.search(r'viewBox="0 0 ([\d.]+) ([\d.]+)"', svg)
if not vb:
problems.append(f"svg {i}: fără viewBox")
continue
vw, vh = float(vb.group(1)), float(vb.group(2))
if re.search(r"\n[ \t]*\n", svg):
problems.append(f"svg {i}: linie goală înăuntru — markdown rupe blocul")
tx = list(texts(svg))
for x0, x1, y, s in tx:
if x1 > vw + 2:
problems.append(f'svg {i}: text depășește marginea dreaptă ({x1:.0f} > {vw:.0f}): "{s[:45]}"')
if y > vh + 2 or y < 0:
problems.append(f'svg {i}: text în afara înălțimii (y={y:.0f}, viewBox {vh:.0f}): "{s[:45]}"')
for a in range(len(tx)):
for b in range(a + 1, len(tx)):
xa0, xa1, ya, sa = tx[a]
xb0, xb1, yb, sb = tx[b]
if abs(ya - yb) < LINE_H and xa0 < xb1 - 4 and xb0 < xa1 - 4:
problems.append(f'svg {i}: texte suprapuse — "{sa[:28]}" / "{sb[:28]}"')
# dacă diagrama are exact 3 niveluri de preț orizontale (SL/intrare/TP),
# raportul distanțelor în preț trebuie să fie cel din pixeli
lv = re.findall(r'<line x1="[\d.]+" y1="([\d.]+)"[^>]*?/>\s*<text[^>]*>([^<]*?(\d+\.\d\d)[^<]*)</text>', svg)
if len(lv) == 3:
pts = sorted((float(p), float(y)) for y, _, p in lv)
(plo, ylo), (pmid, ymid), (phi, yhi) = pts
if pmid - plo > 0 and ylo - ymid > 0:
rp = (phi - pmid) / (pmid - plo)
rx = (ymid - yhi) / (ylo - ymid)
if abs(rp - rx) > 0.05:
problems.append(f"svg {i}: SCARĂ GREȘITĂ — raport în prețuri {rp:.2f}R, desenat {rx:.2f}R")
return problems
def main():
files = [Path(a) for a in sys.argv[1:]] or sorted(Path("summaries").glob("*/*.md"))
total = 0
for f in files:
probs = check(f)
total += len(probs)
print(f"\n=== {f} — {len(probs)} probleme" if probs else f"\n=== {f} — curat")
for p in probs:
print(" ", p)
print(f"\nTOTAL: {total} probleme în {len(files)} fișiere")
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@@ -375,7 +375,7 @@ indicatorul Market Picture / Commitment of Traders.</p>
<li><strong>Speculatorii</strong> = toți ceilalți, inclusiv JP Morgan când speculează, <li><strong>Speculatorii</strong> = toți ceilalți, inclusiv JP Morgan când speculează,
inclusiv Warren Buffett, inclusiv retail-ul. "Dar noi suntem mici."</li> inclusiv Warren Buffett, inclusiv retail-ul. "Dar noi suntem mici."</li>
</ul> </ul>
<p><svg viewBox="0 0 640 410" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <p><svg viewBox="0 0 640 428" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="20" y="16" fill="#666">Preț (weekly) ↑</text> <text x="20" y="16" fill="#666">Preț (weekly) ↑</text>
<polyline points="40,50 100,80 160,115 220,150 280,168 330,160 390,130 460,95 540,60" fill="none" stroke="#333" stroke-width="2"/> <polyline points="40,50 100,80 160,115 220,150 280,168 330,160 390,130 460,95 540,60" fill="none" stroke="#333" stroke-width="2"/>
<circle cx="280" cy="168" r="5" fill="#c00"/> <circle cx="280" cy="168" r="5" fill="#c00"/>
@@ -387,14 +387,13 @@ indicatorul Market Picture / Commitment of Traders.</p>
<text x="20" y="232" fill="#666">Commitment of Traders</text> <text x="20" y="232" fill="#666">Commitment of Traders</text>
<line x1="40" y1="300" x2="600" y2="300" stroke="#1a1a1a" stroke-width="1.5"/> <line x1="40" y1="300" x2="600" y2="300" stroke="#1a1a1a" stroke-width="1.5"/>
<text x="545" y="294" fill="#1a1a1a">zero</text> <text x="545" y="294" fill="#1a1a1a">zero</text>
<text x="45" y="280" fill="#555">sub linie = net short / peste = net long</text>
<polyline points="40,360 90,368 140,350 190,330 230,312 270,296 330,285 400,290 470,310 540,340" fill="none" stroke="#1a5fb4" stroke-width="2.5"/> <polyline points="40,360 90,368 140,350 190,330 230,312 270,296 330,285 400,290 470,310 540,340" fill="none" stroke="#1a5fb4" stroke-width="2.5"/>
<text x="45" y="382" fill="#1a5fb4">mari comercianți (commercials)</text> <text x="45" y="382" fill="#1a5fb4">mari comercianți (commercials)</text>
<circle cx="248" cy="304" r="5" fill="#c00"/> <circle cx="248" cy="304" r="5" fill="#c00"/>
<text x="120" y="268" fill="#c00">trec deasupra liniei de zero AICI</text> <text x="120" y="268" fill="#c00">trec deasupra liniei de zero AICI</text>
<line x1="248" y1="304" x2="248" y2="380" stroke="#c00" stroke-width="1" stroke-dasharray="3 3"/> <line x1="248" y1="304" x2="248" y2="380" stroke="#c00" stroke-width="1" stroke-dasharray="3 3"/>
<line x1="248" y1="386" x2="280" y2="386" stroke="#c00" stroke-width="2"/> <line x1="248" y1="386" x2="280" y2="386" stroke="#c00" stroke-width="2"/>
<text x="288" y="390" fill="#c00">3-5 săptămâni până la bottom-ul de preț</text> <text x="288" y="390" fill="#c00">3-5 săptămâni până la bottom-ul de preț</text><text x="45" y="412" fill="#555">Linia albastră sub linia de zero = commercials net short; peste ea = net long.</text>
<text x="430" y="248" fill="#555">după bottom ies iar net short</text> <text x="430" y="248" fill="#555">după bottom ies iar net short</text>
<text x="430" y="264" fill="#555">(fac hedging)</text> <text x="430" y="264" fill="#555">(fac hedging)</text>
</svg></p> </svg></p>
@@ -550,20 +549,20 @@ Fed-ul bagă lichiditate masiv ca să țină piața în uptrend, iar asta poate
sfârși într-un <strong>eveniment de lichiditate</strong>.</p> sfârși într-un <strong>eveniment de lichiditate</strong>.</p>
<p><strong>Definiția lui, care e mai utilă decât cea din manuale:</strong> un Black Swan nu e <p><strong>Definiția lui, care e mai utilă decât cea din manuale:</strong> un Black Swan nu e
"o știre proastă". E <strong>absența ordinelor între două prețuri</strong>.</p> "o știre proastă". E <strong>absența ordinelor între două prețuri</strong>.</p>
<p><svg viewBox="0 0 620 285" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <p><svg viewBox="0 0 700 305" 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> <text x="8" y="14" fill="#666">preț ↑</text>
<rect x="60" y="55" width="490" height="155" fill="#f6e6e6"/> <rect x="60" y="55" width="490" height="155" fill="#f6e6e6"/>
<line x1="60" y1="50" x2="350" y2="50" stroke="#333" stroke-width="2"/> <line x1="60" y1="50" x2="350" y2="50" stroke="#333" stroke-width="2"/>
<text x="62" y="42" fill="#333">27.00 — ultimul preț tranzacționat aseară</text> <text x="62" y="42" fill="#333">27.00 — ultimul preț tranzacționat aseară</text>
<line x1="60" y1="88" x2="350" y2="88" stroke="#888" stroke-width="1.5" stroke-dasharray="4 3"/> <line x1="60" y1="78" x2="350" y2="78" stroke="#888" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="62" y="82" fill="#555">24.00 — unde ți-ai pus stop-loss-ul</text> <text x="62" y="72" fill="#555">24.00 — unde ți-ai pus stop-loss-ul</text>
<text x="95" y="140" fill="#c00" style="font-weight:bold">niciun ordin aici</text> <text x="95" y="140" fill="#c00" style="font-weight:bold">niciun ordin aici</text>
<text x="95" y="158" fill="#c00">nimeni nu cumpără între 27.00 și 10.00</text> <text x="95" y="158" fill="#c00">nimeni nu cumpără între 27.00 și 10.00</text>
<line x1="350" y1="50" x2="350" y2="210" stroke="#c00" stroke-width="2" stroke-dasharray="4 3"/> <line x1="350" y1="50" x2="350" y2="210" stroke="#c00" stroke-width="2" stroke-dasharray="4 3"/>
<line x1="350" y1="210" x2="550" y2="210" stroke="#333" stroke-width="2"/> <line x1="350" y1="210" x2="550" y2="210" stroke="#333" stroke-width="2"/>
<text x="352" y="228" fill="#333">10.00 — prima deschidere de azi</text> <text x="352" y="228" fill="#333">10.00 — prima deschidere de azi</text>
<text x="60" y="258" fill="#c00" style="font-weight:bold">SL-ul de la 24.00 se execută la 10.00, nu la 24.00.</text> <text x="60" y="258" fill="#c00" style="font-weight:bold">SL-ul de la 24.00 se execută la 10.00, nu la 24.00.</text>
<text x="60" y="276" fill="#555">Nu există niciun preț între cele două la care cineva să fi cumpărat.</text> <text x="60" y="276" fill="#555">Nu există niciun preț între cele două la care cineva să fi cumpărat.</text><text x="60" y="294" fill="#555">Desenat la scară: 1.00 = 9.4 px, deci golul de sub stop e la fel de mare pe cât e în realitate.</text>
</svg></p> </svg></p>
<p><strong>De ce e mai mult decât o curiozitate:</strong> stop-loss-ul nu e o garanție de <p><strong>De ce e mai mult decât o curiozitate:</strong> stop-loss-ul nu e o garanție de
preț, e un ordin care se activează la un nivel și se execută la <strong>primul preț preț, e un ordin care se activează la un nivel și se execută la <strong>primul preț

View File

@@ -425,7 +425,7 @@ indicatorul Market Picture / Commitment of Traders.
- **Speculatorii** = toți ceilalți, inclusiv JP Morgan când speculează, - **Speculatorii** = toți ceilalți, inclusiv JP Morgan când speculează,
inclusiv Warren Buffett, inclusiv retail-ul. "Dar noi suntem mici." inclusiv Warren Buffett, inclusiv retail-ul. "Dar noi suntem mici."
<svg viewBox="0 0 640 410" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <svg viewBox="0 0 640 428" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="20" y="16" fill="#666">Preț (weekly) ↑</text> <text x="20" y="16" fill="#666">Preț (weekly) ↑</text>
<polyline points="40,50 100,80 160,115 220,150 280,168 330,160 390,130 460,95 540,60" fill="none" stroke="#333" stroke-width="2"/> <polyline points="40,50 100,80 160,115 220,150 280,168 330,160 390,130 460,95 540,60" fill="none" stroke="#333" stroke-width="2"/>
<circle cx="280" cy="168" r="5" fill="#c00"/> <circle cx="280" cy="168" r="5" fill="#c00"/>
@@ -437,14 +437,13 @@ indicatorul Market Picture / Commitment of Traders.
<text x="20" y="232" fill="#666">Commitment of Traders</text> <text x="20" y="232" fill="#666">Commitment of Traders</text>
<line x1="40" y1="300" x2="600" y2="300" stroke="#1a1a1a" stroke-width="1.5"/> <line x1="40" y1="300" x2="600" y2="300" stroke="#1a1a1a" stroke-width="1.5"/>
<text x="545" y="294" fill="#1a1a1a">zero</text> <text x="545" y="294" fill="#1a1a1a">zero</text>
<text x="45" y="280" fill="#555">sub linie = net short / peste = net long</text>
<polyline points="40,360 90,368 140,350 190,330 230,312 270,296 330,285 400,290 470,310 540,340" fill="none" stroke="#1a5fb4" stroke-width="2.5"/> <polyline points="40,360 90,368 140,350 190,330 230,312 270,296 330,285 400,290 470,310 540,340" fill="none" stroke="#1a5fb4" stroke-width="2.5"/>
<text x="45" y="382" fill="#1a5fb4">mari comercianți (commercials)</text> <text x="45" y="382" fill="#1a5fb4">mari comercianți (commercials)</text>
<circle cx="248" cy="304" r="5" fill="#c00"/> <circle cx="248" cy="304" r="5" fill="#c00"/>
<text x="120" y="268" fill="#c00">trec deasupra liniei de zero AICI</text> <text x="120" y="268" fill="#c00">trec deasupra liniei de zero AICI</text>
<line x1="248" y1="304" x2="248" y2="380" stroke="#c00" stroke-width="1" stroke-dasharray="3 3"/> <line x1="248" y1="304" x2="248" y2="380" stroke="#c00" stroke-width="1" stroke-dasharray="3 3"/>
<line x1="248" y1="386" x2="280" y2="386" stroke="#c00" stroke-width="2"/> <line x1="248" y1="386" x2="280" y2="386" stroke="#c00" stroke-width="2"/>
<text x="288" y="390" fill="#c00">3-5 săptămâni până la bottom-ul de preț</text> <text x="288" y="390" fill="#c00">3-5 săptămâni până la bottom-ul de preț</text><text x="45" y="412" fill="#555">Linia albastră sub linia de zero = commercials net short; peste ea = net long.</text>
<text x="430" y="248" fill="#555">după bottom ies iar net short</text> <text x="430" y="248" fill="#555">după bottom ies iar net short</text>
<text x="430" y="264" fill="#555">(fac hedging)</text> <text x="430" y="264" fill="#555">(fac hedging)</text>
</svg> </svg>
@@ -579,20 +578,20 @@ sfârși într-un **eveniment de lichiditate**.
**Definiția lui, care e mai utilă decât cea din manuale:** un Black Swan nu e **Definiția lui, care e mai utilă decât cea din manuale:** un Black Swan nu e
"o știre proastă". E **absența ordinelor între două prețuri**. "o știre proastă". E **absența ordinelor între două prețuri**.
<svg viewBox="0 0 620 285" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <svg viewBox="0 0 700 305" 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> <text x="8" y="14" fill="#666">preț ↑</text>
<rect x="60" y="55" width="490" height="155" fill="#f6e6e6"/> <rect x="60" y="55" width="490" height="155" fill="#f6e6e6"/>
<line x1="60" y1="50" x2="350" y2="50" stroke="#333" stroke-width="2"/> <line x1="60" y1="50" x2="350" y2="50" stroke="#333" stroke-width="2"/>
<text x="62" y="42" fill="#333">27.00 — ultimul preț tranzacționat aseară</text> <text x="62" y="42" fill="#333">27.00 — ultimul preț tranzacționat aseară</text>
<line x1="60" y1="88" x2="350" y2="88" stroke="#888" stroke-width="1.5" stroke-dasharray="4 3"/> <line x1="60" y1="78" x2="350" y2="78" stroke="#888" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="62" y="82" fill="#555">24.00 — unde ți-ai pus stop-loss-ul</text> <text x="62" y="72" fill="#555">24.00 — unde ți-ai pus stop-loss-ul</text>
<text x="95" y="140" fill="#c00" style="font-weight:bold">niciun ordin aici</text> <text x="95" y="140" fill="#c00" style="font-weight:bold">niciun ordin aici</text>
<text x="95" y="158" fill="#c00">nimeni nu cumpără între 27.00 și 10.00</text> <text x="95" y="158" fill="#c00">nimeni nu cumpără între 27.00 și 10.00</text>
<line x1="350" y1="50" x2="350" y2="210" stroke="#c00" stroke-width="2" stroke-dasharray="4 3"/> <line x1="350" y1="50" x2="350" y2="210" stroke="#c00" stroke-width="2" stroke-dasharray="4 3"/>
<line x1="350" y1="210" x2="550" y2="210" stroke="#333" stroke-width="2"/> <line x1="350" y1="210" x2="550" y2="210" stroke="#333" stroke-width="2"/>
<text x="352" y="228" fill="#333">10.00 — prima deschidere de azi</text> <text x="352" y="228" fill="#333">10.00 — prima deschidere de azi</text>
<text x="60" y="258" fill="#c00" style="font-weight:bold">SL-ul de la 24.00 se execută la 10.00, nu la 24.00.</text> <text x="60" y="258" fill="#c00" style="font-weight:bold">SL-ul de la 24.00 se execută la 10.00, nu la 24.00.</text>
<text x="60" y="276" fill="#555">Nu există niciun preț între cele două la care cineva să fi cumpărat.</text> <text x="60" y="276" fill="#555">Nu există niciun preț între cele două la care cineva să fi cumpărat.</text><text x="60" y="294" fill="#555">Desenat la scară: 1.00 = 9.4 px, deci golul de sub stop e la fel de mare pe cât e în realitate.</text>
</svg> </svg>
**De ce e mai mult decât o curiozitate:** stop-loss-ul nu e o garanție de **De ce e mai mult decât o curiozitate:** stop-loss-ul nu e o garanție de

View File

@@ -158,7 +158,7 @@ Opțiunea amplifică; nu ea dă direcția.</p>
MBT-10, intri fără altă confirmare.</strong></p> MBT-10, intri fără altă confirmare.</strong></p>
<p>Dar cu o nuanță care contează: <strong>prima MBT-10 de după gap down poate să nu <p>Dar cu o nuanță care contează: <strong>prima MBT-10 de după gap down poate să nu
meargă. În general merge a doua sau a treia.</strong></p> meargă. În general merge a doua sau a treia.</strong></p>
<p><svg viewBox="0 0 620 280" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <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="8" y="14" fill="#666">preț ↑</text> <text x="8" y="14" fill="#666">preț ↑</text>
<polyline points="30,60 70,68 95,75" fill="none" stroke="#333" stroke-width="2"/> <polyline points="30,60 70,68 95,75" fill="none" stroke="#333" stroke-width="2"/>
<line x1="95" y1="75" x2="115" y2="180" stroke="#c00" stroke-width="2" stroke-dasharray="4 3"/> <line x1="95" y1="75" x2="115" y2="180" stroke="#c00" stroke-width="2" stroke-dasharray="4 3"/>
@@ -173,7 +173,7 @@ meargă. În general merge a doua sau a treia.</strong></p>
<circle cx="285" cy="215" r="5" fill="#188a3e"/> <circle cx="285" cy="215" r="5" fill="#188a3e"/>
<text x="258" y="240" fill="#188a3e">#3 — ține</text> <text x="258" y="240" fill="#188a3e">#3 — ține</text>
<text x="360" y="205" fill="#188a3e">de aici pornește mișcarea</text> <text x="360" y="205" fill="#188a3e">de aici pornește mișcarea</text>
<text x="30" y="275" fill="#555">Consecință practică: dimensionează poziția știind că s-ar putea să dai 2-3 încercări înainte să prindă una.</text> <text x="30" y="268" fill="#555">Consecință practică: dimensionează poziția știind că s-ar putea</text><text x="30" y="286" fill="#555">să dai 2-3 încercări înainte să prindă una.</text>
</svg></p> </svg></p>
<p><strong>De ce contează nuanța asta (completarea mea):</strong> dacă intri cu toată <p><strong>De ce contează nuanța asta (completarea mea):</strong> dacă intri cu toată
mărimea pe prima MBT-10 și te scoate, ai pierdut și banii, și încrederea să mărimea pe prima MBT-10 și te scoate, ai pierdut și banii, și încrederea să
@@ -203,7 +203,7 @@ candlestick. Problema lor: sunt extrem de rare.</p>
<text x="450" y="128" fill="#555">cozi în ambele părți</text> <text x="450" y="128" fill="#555">cozi în ambele părți</text>
<text x="350" y="205" fill="#188a3e">Se întâmplă des, pe orice asset.</text> <text x="350" y="205" fill="#188a3e">Se întâmplă des, pe orice asset.</text>
<text x="350" y="245" fill="#188a3e" style="font-weight:bold">&gt;65% probabilitate, testat istoric.</text> <text x="350" y="245" fill="#188a3e" style="font-weight:bold">&gt;65% probabilitate, testat istoric.</text>
<text x="20" y="285" fill="#333">Un pattern cu rată bună de reușită dar care apare o dată la doi ani nu-ți produce nimic. Frecvența contează la fel de mult ca rata.</text> <text x="20" y="278" fill="#333">Un pattern cu rată bună de reușită dar care apare o dată la doi ani</text><text x="20" y="296" fill="#333">nu-ți produce nimic. Frecvența contează la fel de mult ca rata.</text>
</svg></p> </svg></p>
<p><strong>Argumentul lui, verbatim:</strong> "când am o chestie care mi se întâmplă foarte <p><strong>Argumentul lui, verbatim:</strong> "când am o chestie care mi se întâmplă foarte
rar, cât de des pot să fac eu bani cu ea? Ce sens are să stau să mă rar, cât de des pot să fac eu bani cu ea? Ce sens are să stau să mă

View File

@@ -151,7 +151,7 @@ MBT-10, intri fără altă confirmare.**
Dar cu o nuanță care contează: **prima MBT-10 de după gap down poate să nu Dar cu o nuanță care contează: **prima MBT-10 de după gap down poate să nu
meargă. În general merge a doua sau a treia.** meargă. În general merge a doua sau a treia.**
<svg viewBox="0 0 620 280" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <svg viewBox="0 0 620 300" 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> <text x="8" y="14" fill="#666">preț ↑</text>
<polyline points="30,60 70,68 95,75" fill="none" stroke="#333" stroke-width="2"/> <polyline points="30,60 70,68 95,75" fill="none" stroke="#333" stroke-width="2"/>
<line x1="95" y1="75" x2="115" y2="180" stroke="#c00" stroke-width="2" stroke-dasharray="4 3"/> <line x1="95" y1="75" x2="115" y2="180" stroke="#c00" stroke-width="2" stroke-dasharray="4 3"/>
@@ -166,7 +166,7 @@ meargă. În general merge a doua sau a treia.**
<circle cx="285" cy="215" r="5" fill="#188a3e"/> <circle cx="285" cy="215" r="5" fill="#188a3e"/>
<text x="258" y="240" fill="#188a3e">#3 — ține</text> <text x="258" y="240" fill="#188a3e">#3 — ține</text>
<text x="360" y="205" fill="#188a3e">de aici pornește mișcarea</text> <text x="360" y="205" fill="#188a3e">de aici pornește mișcarea</text>
<text x="30" y="275" fill="#555">Consecință practică: dimensionează poziția știind că s-ar putea să dai 2-3 încercări înainte să prindă una.</text> <text x="30" y="268" fill="#555">Consecință practică: dimensionează poziția știind că s-ar putea</text><text x="30" y="286" fill="#555">să dai 2-3 încercări înainte să prindă una.</text>
</svg> </svg>
**De ce contează nuanța asta (completarea mea):** dacă intri cu toată **De ce contează nuanța asta (completarea mea):** dacă intri cu toată
@@ -203,7 +203,7 @@ candlestick. Problema lor: sunt extrem de rare.
<text x="450" y="128" fill="#555">cozi în ambele părți</text> <text x="450" y="128" fill="#555">cozi în ambele părți</text>
<text x="350" y="205" fill="#188a3e">Se întâmplă des, pe orice asset.</text> <text x="350" y="205" fill="#188a3e">Se întâmplă des, pe orice asset.</text>
<text x="350" y="245" fill="#188a3e" style="font-weight:bold">&gt;65% probabilitate, testat istoric.</text> <text x="350" y="245" fill="#188a3e" style="font-weight:bold">&gt;65% probabilitate, testat istoric.</text>
<text x="20" y="285" fill="#333">Un pattern cu rată bună de reușită dar care apare o dată la doi ani nu-ți produce nimic. Frecvența contează la fel de mult ca rata.</text> <text x="20" y="278" fill="#333">Un pattern cu rată bună de reușită dar care apare o dată la doi ani</text><text x="20" y="296" fill="#333">nu-ți produce nimic. Frecvența contează la fel de mult ca rata.</text>
</svg> </svg>
**Argumentul lui, verbatim:** "când am o chestie care mi se întâmplă foarte **Argumentul lui, verbatim:** "când am o chestie care mi se întâmplă foarte

View File

@@ -57,7 +57,7 @@ higher highs / higher lows să se stabilească vizibil, nu doar să presupui.</p
<p><strong>Cifra de context:</strong> piața de bonduri e de <strong>5-10 ori mai mare</strong> decât piața <p><strong>Cifra de context:</strong> piața de bonduri e de <strong>5-10 ori mai mare</strong> decât piața
de equities. Ce se decide acolo nu urmează piața de acțiuni — o precede.</p> de equities. Ce se decide acolo nu urmează piața de acțiuni — o precede.</p>
<h3 id="relatia-pret-randament">Relația preț ↔ randament</h3> <h3 id="relatia-pret-randament">Relația preț ↔ randament</h3>
<p><svg viewBox="0 0 620 290" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <p><svg viewBox="0 0 620 310" 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">Prețul bondului și randamentul (yield) sunt invers proporționale</text> <text x="20" y="18" fill="#333" style="font-weight:bold">Prețul bondului și randamentul (yield) sunt invers proporționale</text>
<text x="30" y="52" fill="#1a5fb4" style="font-weight:bold">TLT — prețul bondurilor</text> <text x="30" y="52" fill="#1a5fb4" style="font-weight:bold">TLT — prețul bondurilor</text>
<polyline points="40,120 90,105 140,88 190,70 240,60" fill="none" stroke="#1a5fb4" stroke-width="2.5"/> <polyline points="40,120 90,105 140,88 190,70 240,60" fill="none" stroke="#1a5fb4" stroke-width="2.5"/>
@@ -74,7 +74,7 @@ de equities. Ce se decide acolo nu urmează piața de acțiuni — o precede.</p
<text x="330" y="214" fill="#333">TLT care urcă înseamnă că cineva</text> <text x="330" y="214" fill="#333">TLT care urcă înseamnă că cineva</text>
<text x="330" y="232" fill="#333">cumpără bonduri — adică piața de</text> <text x="330" y="232" fill="#333">cumpără bonduri — adică piața de</text>
<text x="330" y="250" fill="#333">bonduri anticipează dobânzi mai mici.</text> <text x="330" y="250" fill="#333">bonduri anticipează dobânzi mai mici.</text>
<text x="30" y="278" fill="#555">Dacă prețul urcă, dobânzile scad. Dacă dobânzile urcă, prețurile scad. Nu sunt două fenomene, e același.</text> <text x="30" y="278" fill="#555">Dacă prețul urcă, dobânzile scad. Dacă dobânzile urcă, scad prețurile.</text><text x="30" y="296" fill="#555">Nu sunt două fenomene, e același.</text>
</svg></p> </svg></p>
<p><strong>Cum a citit-o live:</strong> pe futures-ul de bonduri la 30 de ani, fiecare <p><strong>Cum a citit-o live:</strong> pe futures-ul de bonduri la 30 de ani, fiecare
respingere fusese <strong>cumpărată</strong> — semn că instituționalii cumpără bonduri. respingere fusese <strong>cumpărată</strong> — semn că instituționalii cumpără bonduri.

View File

@@ -51,7 +51,7 @@ de equities. Ce se decide acolo nu urmează piața de acțiuni — o precede.
### Relația preț ↔ randament ### Relația preț ↔ randament
<svg viewBox="0 0 620 290" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <svg viewBox="0 0 620 310" 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">Prețul bondului și randamentul (yield) sunt invers proporționale</text> <text x="20" y="18" fill="#333" style="font-weight:bold">Prețul bondului și randamentul (yield) sunt invers proporționale</text>
<text x="30" y="52" fill="#1a5fb4" style="font-weight:bold">TLT — prețul bondurilor</text> <text x="30" y="52" fill="#1a5fb4" style="font-weight:bold">TLT — prețul bondurilor</text>
<polyline points="40,120 90,105 140,88 190,70 240,60" fill="none" stroke="#1a5fb4" stroke-width="2.5"/> <polyline points="40,120 90,105 140,88 190,70 240,60" fill="none" stroke="#1a5fb4" stroke-width="2.5"/>
@@ -68,7 +68,7 @@ de equities. Ce se decide acolo nu urmează piața de acțiuni — o precede.
<text x="330" y="214" fill="#333">TLT care urcă înseamnă că cineva</text> <text x="330" y="214" fill="#333">TLT care urcă înseamnă că cineva</text>
<text x="330" y="232" fill="#333">cumpără bonduri — adică piața de</text> <text x="330" y="232" fill="#333">cumpără bonduri — adică piața de</text>
<text x="330" y="250" fill="#333">bonduri anticipează dobânzi mai mici.</text> <text x="330" y="250" fill="#333">bonduri anticipează dobânzi mai mici.</text>
<text x="30" y="278" fill="#555">Dacă prețul urcă, dobânzile scad. Dacă dobânzile urcă, prețurile scad. Nu sunt două fenomene, e același.</text> <text x="30" y="278" fill="#555">Dacă prețul urcă, dobânzile scad. Dacă dobânzile urcă, scad prețurile.</text><text x="30" y="296" fill="#555">Nu sunt două fenomene, e același.</text>
</svg> </svg>
**Cum a citit-o live:** pe futures-ul de bonduri la 30 de ani, fiecare **Cum a citit-o live:** pe futures-ul de bonduri la 30 de ani, fiecare

View File

@@ -113,7 +113,7 @@ consolidare.</p>
sprinturi nu se oprește — <strong>aleargă ușor</strong> între ele. Consolidarea e alergarea sprinturi nu se oprește — <strong>aleargă ușor</strong> între ele. Consolidarea e alergarea
ușoară. După ea vine un nou sprint, care poate fi în direcția trendului sau ușoară. După ea vine un nou sprint, care poate fi în direcția trendului sau
invers.</p> invers.</p>
<p><svg viewBox="0 0 620 230" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <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="8" y="14" fill="#666">preț ↑</text> <text x="8" y="14" fill="#666">preț ↑</text>
<polyline points="30,180 70,150 110,115 150,80" fill="none" stroke="#188a3e" stroke-width="2.5"/> <polyline points="30,180 70,150 110,115 150,80" fill="none" stroke="#188a3e" stroke-width="2.5"/>
<text x="35" y="200" fill="#188a3e">sprint (trend)</text> <text x="35" y="200" fill="#188a3e">sprint (trend)</text>
@@ -124,7 +124,7 @@ invers.</p>
<polyline points="360,92 400,125 440,155 470,178" fill="none" stroke="#c00" stroke-width="2.5" stroke-dasharray="5 3"/> <polyline points="360,92 400,125 440,155 470,178" fill="none" stroke="#c00" stroke-width="2.5" stroke-dasharray="5 3"/>
<text x="440" y="195" fill="#c00">sau sprint invers (reversal)</text> <text x="440" y="195" fill="#c00">sau sprint invers (reversal)</text>
<text x="190" y="42" fill="#188a3e">sprint nou, în direcția trendului</text> <text x="190" y="42" fill="#188a3e">sprint nou, în direcția trendului</text>
<text x="30" y="222" fill="#333">Din trend se trece prin consolidare, apoi ori continuă trendul, ori se schimbă. Direcția nu se știe dinainte.</text> <text x="30" y="222" fill="#333">Din trend se trece prin consolidare, apoi ori continuă trendul,</text><text x="30" y="240" fill="#333">ori se schimbă. Direcția nu se știe dinainte.</text>
</svg></p> </svg></p>
<p><strong>Definiția de uptrend pe care a repetat-o</strong> ("scărița"): high-ul de azi mai <p><strong>Definiția de uptrend pe care a repetat-o</strong> ("scărița"): high-ul de azi mai
sus decât high-ul de ieri <strong>și</strong> low-ul de azi mai sus decât low-ul de ieri. sus decât high-ul de ieri <strong>și</strong> low-ul de azi mai sus decât low-ul de ieri.

View File

@@ -119,7 +119,7 @@ sprinturi nu se oprește — **aleargă ușor** între ele. Consolidarea e alerg
ușoară. După ea vine un nou sprint, care poate fi în direcția trendului sau ușoară. După ea vine un nou sprint, care poate fi în direcția trendului sau
invers. invers.
<svg viewBox="0 0 620 230" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <svg viewBox="0 0 620 250" 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> <text x="8" y="14" fill="#666">preț ↑</text>
<polyline points="30,180 70,150 110,115 150,80" fill="none" stroke="#188a3e" stroke-width="2.5"/> <polyline points="30,180 70,150 110,115 150,80" fill="none" stroke="#188a3e" stroke-width="2.5"/>
<text x="35" y="200" fill="#188a3e">sprint (trend)</text> <text x="35" y="200" fill="#188a3e">sprint (trend)</text>
@@ -130,7 +130,7 @@ invers.
<polyline points="360,92 400,125 440,155 470,178" fill="none" stroke="#c00" stroke-width="2.5" stroke-dasharray="5 3"/> <polyline points="360,92 400,125 440,155 470,178" fill="none" stroke="#c00" stroke-width="2.5" stroke-dasharray="5 3"/>
<text x="440" y="195" fill="#c00">sau sprint invers (reversal)</text> <text x="440" y="195" fill="#c00">sau sprint invers (reversal)</text>
<text x="190" y="42" fill="#188a3e">sprint nou, în direcția trendului</text> <text x="190" y="42" fill="#188a3e">sprint nou, în direcția trendului</text>
<text x="30" y="222" fill="#333">Din trend se trece prin consolidare, apoi ori continuă trendul, ori se schimbă. Direcția nu se știe dinainte.</text> <text x="30" y="222" fill="#333">Din trend se trece prin consolidare, apoi ori continuă trendul,</text><text x="30" y="240" fill="#333">ori se schimbă. Direcția nu se știe dinainte.</text>
</svg> </svg>
**Definiția de uptrend pe care a repetat-o** ("scărița"): high-ul de azi mai **Definiția de uptrend pe care a repetat-o** ("scărița"): high-ul de azi mai

View File

@@ -261,7 +261,7 @@ de 2% se încalcă cel mai ușor.</p>
<h2 id="citirea-de-bottom-din-ziua-aceea">Citirea de bottom din ziua aceea</h2> <h2 id="citirea-de-bottom-din-ziua-aceea">Citirea de bottom din ziua aceea</h2>
<p>Confluența pe care a folosit-o ca să spună că suntem într-o zonă de suport <p>Confluența pe care a folosit-o ca să spună că suntem într-o zonă de suport
importantă:</p> importantă:</p>
<p><svg viewBox="0 0 620 290" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <p><svg viewBox="0 0 620 310" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="20" y="20" fill="#333" style="font-weight:bold">Cinci semnale în același punct</text> <text x="20" y="20" fill="#333" style="font-weight:bold">Cinci semnale în același punct</text>
<rect x="25" y="42" width="270" height="42" fill="#eef4fb" stroke="#1a5fb4"/> <rect x="25" y="42" width="270" height="42" fill="#eef4fb" stroke="#1a5fb4"/>
<text x="38" y="60" fill="#1a5fb4" style="font-weight:bold">Pivotul quarterly</text> <text x="38" y="60" fill="#1a5fb4" style="font-weight:bold">Pivotul quarterly</text>
@@ -283,7 +283,7 @@ importantă:</p>
<text x="333" y="184" fill="#555">pe structura de preț</text> <text x="333" y="184" fill="#555">pe structura de preț</text>
<text x="25" y="228" fill="#333">Contextul: S&amp;P urcase 33-40% de la bottom, cu <tspan style="font-weight:bold">7 luni consecutive</tspan> de creștere — rar istoric.</text> <text x="25" y="228" fill="#333">Contextul: S&amp;P urcase 33-40% de la bottom, cu <tspan style="font-weight:bold">7 luni consecutive</tspan> de creștere — rar istoric.</text>
<text x="25" y="250" fill="#333">Căzuse doar 4-5%. Părerea lui: o corecție de 10-12% ar fi fost sănătoasă.</text> <text x="25" y="250" fill="#333">Căzuse doar 4-5%. Părerea lui: o corecție de 10-12% ar fi fost sănătoasă.</text>
<text x="25" y="276" fill="#c00">Scenariul de risc: dacă e Head &amp; Shoulders, mișcarea măsurată duce fix în pivotul quarterly, încă ~2% mai jos.</text> <text x="25" y="276" fill="#c00">Scenariul de risc: dacă e Head &amp; Shoulders, mișcarea măsurată</text><text x="25" y="294" fill="#c00">duce fix în pivotul quarterly, încă ~2% mai jos.</text>
</svg></p> </svg></p>
<p><strong>Regula de acțiune pe care a dat-o:</strong> dacă prețul ajunge în <strong>pivotul <p><strong>Regula de acțiune pe care a dat-o:</strong> dacă prețul ajunge în <strong>pivotul
quarterly</strong>, acolo se cumpără pe <strong>ATMI</strong> (strategia de investiții pe termen quarterly</strong>, acolo se cumpără pe <strong>ATMI</strong> (strategia de investiții pe termen

View File

@@ -266,7 +266,7 @@ de 2% se încalcă cel mai ușor.
Confluența pe care a folosit-o ca să spună că suntem într-o zonă de suport Confluența pe care a folosit-o ca să spună că suntem într-o zonă de suport
importantă: importantă:
<svg viewBox="0 0 620 290" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"> <svg viewBox="0 0 620 310" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="20" y="20" fill="#333" style="font-weight:bold">Cinci semnale în același punct</text> <text x="20" y="20" fill="#333" style="font-weight:bold">Cinci semnale în același punct</text>
<rect x="25" y="42" width="270" height="42" fill="#eef4fb" stroke="#1a5fb4"/> <rect x="25" y="42" width="270" height="42" fill="#eef4fb" stroke="#1a5fb4"/>
<text x="38" y="60" fill="#1a5fb4" style="font-weight:bold">Pivotul quarterly</text> <text x="38" y="60" fill="#1a5fb4" style="font-weight:bold">Pivotul quarterly</text>
@@ -288,7 +288,7 @@ importantă:
<text x="333" y="184" fill="#555">pe structura de preț</text> <text x="333" y="184" fill="#555">pe structura de preț</text>
<text x="25" y="228" fill="#333">Contextul: S&amp;P urcase 33-40% de la bottom, cu <tspan style="font-weight:bold">7 luni consecutive</tspan> de creștere — rar istoric.</text> <text x="25" y="228" fill="#333">Contextul: S&amp;P urcase 33-40% de la bottom, cu <tspan style="font-weight:bold">7 luni consecutive</tspan> de creștere — rar istoric.</text>
<text x="25" y="250" fill="#333">Căzuse doar 4-5%. Părerea lui: o corecție de 10-12% ar fi fost sănătoasă.</text> <text x="25" y="250" fill="#333">Căzuse doar 4-5%. Părerea lui: o corecție de 10-12% ar fi fost sănătoasă.</text>
<text x="25" y="276" fill="#c00">Scenariul de risc: dacă e Head &amp; Shoulders, mișcarea măsurată duce fix în pivotul quarterly, încă ~2% mai jos.</text> <text x="25" y="276" fill="#c00">Scenariul de risc: dacă e Head &amp; Shoulders, mișcarea măsurată</text><text x="25" y="294" fill="#c00">duce fix în pivotul quarterly, încă ~2% mai jos.</text>
</svg> </svg>
**Regula de acțiune pe care a dat-o:** dacă prețul ajunge în **pivotul **Regula de acțiune pe care a dat-o:** dacă prețul ajunge în **pivotul