etichete: cele trei care mint, si doua bug-uri de infrastructura

Cele trei, toate verificate pe ecran dupa reparatie: "minimul din care a
pornit miscarea 99.80" intra sub o candela si se citea "99.8" (m2d_directie);
"2 saptamani" era acoperita de caseta de citat si se citea "2 saptaman"
(atmi_orizont); cele doua stopuri de la buy_doji_stop stateau la 12 px cu
liniile incrucisate peste etichete, iar diagrama e tocmai despre diferenta
dintre ele - acum fiecare sta la capatul propriei linii.

Doua bug-uri gasite pe drum, mai grave decat ce reparam:

1. render_html trecea SVG-urile prin markdown. In mp2_pivoti_excel cele doua
   asteriscuri din formulele Excel (=2*E2-C2) deveneau un <em> pus peste
   </text>, iar parserul browserului arunca restul SVG-ului: jumatate de tabel
   lipsea din pagina, fara niciun semn in .md sau in audit. Acum SVG-urile sunt
   scoase din calea lui markdown si puse inapoi dupa, cu assert ca nu ramane
   niciun marcaj.
2. eticheta_libera nu citea <g transform>, deci la diagramele cu panouri
   compara coordonate din sisteme diferite si rata suprapuneri reale. Acum
   aplatizeaza translate/scale pe <g>-uri imbricate. Prima diagrama pe care a
   prins-o dupa reparatie e chiar una deja comisa, din capitolul 10.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
Claude Agent
2026-10-02 05:59:11 +00:00
parent 1b57878118
commit 29dc93dfad
15 changed files with 469 additions and 289 deletions

View File

@@ -12,6 +12,10 @@ Verificarea e opt-in, pe etichete numite: pe un grafic de candele aproape
orice text atinge ceva, iar o regulă globală ar bloca tot repo-ul.
eticheta_libera(svg, "wedge_desc", {"baza = 4.00"}, rects=True)
Coordonatele se aplatizează înainte de comparație: la diagramele cu panouri
wrapper-ul e `<g transform="translate(0,h)">`, deci fără asta se comparau
coordonate din sisteme diferite și suprapunerile reale treceau nevăzute.
"""
import re
@@ -19,15 +23,95 @@ CW = 6.2 # lățimea unui caracter bold de 11-12px
WICK = "#1a1a1a" # fitilele: desenul le traversează oricum, prin construcție
# --- aplatizarea transformărilor -------------------------------------------
XA = ("x", "x1", "x2", "cx")
YA = ("y", "y1", "y2", "cy")
WA = ("width", "rx")
HA = ("height", "ry")
ID = (0.0, 0.0, 1.0, 1.0)
_ATTR = re.compile(r'([a-zA-Z][\w-]*)="(-?[\d.]+)"')
_TAG = re.compile(r'<(/?)([a-zA-Z]+)((?:"[^"]*"|[^>"])*)>')
def _ctm(attrs, base):
"""Transformarea cumulată: cea de pe `<g>` compusă peste cea moștenită."""
tx, ty, sx, sy = base
t = re.search(r'transform="([^"]*)"', attrs)
for fn, args in re.findall(r"(\w+)\(([^)]*)\)", t.group(1) if t else ""):
v = [float(a) for a in re.split(r"[,\s]+", args.strip()) if a]
if fn == "translate" and v:
tx, ty = tx + sx * v[0], ty + sy * (v[1] if len(v) > 1 else 0.0)
elif fn == "scale" and v:
sx, sy = sx * v[0], sy * (v[1] if len(v) > 1 else v[0])
# rotate/matrix/skew: ignorate, ca înainte — nu apar în repo, iar
# caseta unui text rotit n-ar fi oricum un dreptunghi drept.
return tx, ty, sx, sy
def _rescrie(attrs, ctm, tag):
tx, ty, sx, sy = ctm
def unu(m):
k, v = m.group(1), float(m.group(2))
if k in XA:
v = tx + sx * v
elif k in YA:
v = ty + sy * v
elif k in WA:
v = abs(sx) * v
elif k in HA:
v = abs(sy) * v
else:
return m.group(0)
return f'{k}="{v:.4f}"'
out = _ATTR.sub(unu, attrs)
out = re.sub(r'points="([^"]+)"', lambda m: 'points="%s"' % " ".join(
"{:.4f},{:.4f}".format(tx + sx * float(p.split(",")[0]),
ty + sy * float(p.split(",")[1]))
for p in m.group(1).split()), out)
if tag == "text" and sx != 1.0:
out += f' data-sx="{sx:g}"' # lățimea casetei se scalează cu el
return out
def _aplatizeaza(svg):
"""Rescrie coordonatele în sistemul rădăcinii, ținând cont de `<g transform>`.
`<g>`-urile pot fi imbricate; `<svg>`-urile imbricate rămân sisteme
separate, ca până acum (scanarea se face oricum panou cu panou).
"""
if "transform=" not in svg:
return svg
taieturi, stiva = [], [ID]
for m in _TAG.finditer(svg):
inchis, tag, attrs = m.group(1), m.group(2).lower(), m.group(3)
gol = attrs.rstrip().endswith("/")
if tag == "g":
if inchis:
if len(stiva) > 1:
stiva.pop()
elif not gol:
stiva.append(_ctm(attrs, stiva[-1]))
continue
if inchis or stiva[-1] == ID:
continue
taieturi.append((m.start(3), m.end(3), _rescrie(attrs, stiva[-1], tag)))
for a, b, nou in reversed(taieturi):
svg = svg[:a] + nou + svg[b:]
return svg
def _bbox(m, min_px):
"""Caseta etichetei, lărgită cu marginea cerută."""
tx, ty, attrs, s = float(m.group(1)), float(m.group(2)), m.group(3), m.group(4)
w = CW * len(s)
k = float(re.search(r'data-sx="([\d.]+)"', attrs).group(1)) if "data-sx=" in attrs else 1.0
w = CW * len(s) * k
# fara text-anchor, SVG aliniaza la stanga (start), nu centrat. Presupunerea
# ca e centrat dadea alarme false pe etichetele de Level cu label_at="left",
# care se deseneaza fara anchor.
x0 = tx - w if 'anchor="end"' in attrs else tx if 'anchor="middle"' not in attrs else tx - w / 2
return s, (x0 - min_px, x0 + w + min_px, ty - 9 - min_px, ty + 3 + min_px)
return s, (x0 - min_px, x0 + w + min_px, ty - 9 * k - min_px, ty + 3 * k + min_px)
def _segmente(svg):
@@ -60,6 +144,7 @@ def eticheta_libera(svg, name, etichete, min_px=5.0, rects=False, segmente=True)
`segmente=False` pentru etichetele de nivel: alea stau lipite de linia lor
prin construcție (y − 6), deci doar candelele sunt o suprapunere reală.
"""
svg = _aplatizeaza(svg)
segs = list(_segmente(svg)) if segmente else []
boxes = []
if rects:
@@ -99,6 +184,35 @@ def demo():
else:
raise AssertionError(f"'{et}' trebuia prinsa")
eticheta_libera(svg, "demo", {"libera"}, rects=True)
# --- transformări: un panou mutat cu <g transform="translate(...)"> ------
# 1. etichetă și linie în ACELAȘI <g> (imbricat), suprapuse: trebuie prinsă.
# 2. etichetă și linie în <g>-uri DIFERITE, care s-ar suprapune în
# coordonate brute (ambele pe y≈50) dar nu în cele finale.
mutat = ('<svg><g transform="translate(10,0)"><g transform="translate(0,300)">'
'<line x1="0" y1="50" x2="100" y2="50" stroke="#c00"/>'
'<text x="10" y="55">in panoul mutat</text></g></g>'
'<g transform="translate(0,0)"><text x="10" y="55">sus</text></g>'
'<g transform="translate(0,200)">'
'<line x1="0" y1="50" x2="100" y2="50" stroke="#c00"/></g></svg>')
try:
eticheta_libera(mutat, "demo", {"in panoul mutat"})
except AssertionError:
pass
else:
raise AssertionError("'in panoul mutat' trebuia prinsa (translate ignorat?)")
eticheta_libera(mutat, "demo", {"sus"}) # 250px mai jos decat linia ei
# scale: o candela de 20x40 scalata x2 ajunge sub eticheta de la y=620
scalat = ('<svg><g transform="scale(2)">'
'<rect x="0" y="300" width="20" height="40" fill="#188a3e"/>'
'<text x="5" y="310">pe candela scalata</text></g></svg>')
try:
eticheta_libera(scalat, "demo", {"pe candela scalata"}, rects=True)
except AssertionError:
pass
else:
raise AssertionError("'pe candela scalata' trebuia prinsa")
print("eticheta_libera: ok")

View File

@@ -20,9 +20,13 @@ Barele sunt pe o axă comună 0 → 1 an, ca diferența să fie vizibilă; bara
Rulare: python3 gen/strategii/atmi_orizont.py -> gen/strategii/atmi_orizont.svg
"""
import re
import sys
from pathlib import Path
from xml.sax.saxutils import escape
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from eticheta_libera import eticheta_libera # noqa: E402
OUT = Path(__file__).with_suffix(".svg")
W, H = 700, 670
@@ -114,7 +118,9 @@ def build():
p.append(line(AX_X0 + LEN_PROP, 290, AX_X0 + LEN_PROP, 360, ORANGE, 1.2, "4 3"))
p.append(line(AX_X0 + LEN_PROP, BAR_PROP_Y + BAR_H / 2, CARD_X,
BAR_PROP_Y + BAR_H / 2, ORANGE, 1.0, "3 3"))
p.append(txt(AX_X0 + 30, 312, "2 săptămâni", 11, "700", ORANGE, "start"))
# sub bară, nu lângă ea: la y=312 ultimele litere intrau sub marginea din
# stânga a cardului (CARD_X=160) și se citea „2 săptămân"
p.append(txt(AX_X0 + 12, 368, "2 săptămâni", 11, "700", ORANGE, "start"))
p.append(f'<rect x="{CARD_X}" y="{CARD_Y}" width="{CARD_W}" height="{CARD_H}" '
f'rx="8" fill="{WHITE}" stroke="{ORANGE}" stroke-width="1.5"/>')
@@ -221,6 +227,13 @@ def verify(svg):
assert not re.search(r"\.(md|txt):\d", svg), \
"eticheta SVG nu are voie să conțină trimitere fișier:linie"
# 6c. etichetele cu cifre nu stau sub niciun dreptunghi desenat (cardul de
# citat a mâncat odată „i"-ul din „2 săptămâni"). Fundalul paginii se scoate:
# e un dreptunghi cât toată pânza, altfel iese sub orice etichetă.
eticheta_libera(re.sub(r'<rect x="0" y="0"[^/]*/>', "", svg), "atmi_orizont",
{"2 săptămâni", "TP1 atins — aproximativ un an mai târziu"},
rects=True, segmente=False)
# 7. fără cifre de preț inventate
for interzis in ("$", "USD", "SL ", "intrare "):
assert interzis not in svg, f"nu ar trebui să apară preț: {interzis!r}"

View File

@@ -30,7 +30,7 @@
<rect x="60.0" y="298.0" width="22.7" height="42" rx="6" fill="#fdf0e0" stroke="#b06000" stroke-width="1.5"/>
<line x1="82.7" y1="290.0" x2="82.7" y2="360.0" stroke="#b06000" stroke-width="1.2" stroke-dasharray="4 3"/>
<line x1="82.7" y1="319.0" x2="160.0" y2="319.0" stroke="#b06000" stroke-width="1.0" stroke-dasharray="3 3"/>
<text x="90.0" y="312.0" font-size="11" font-weight="700" fill="#b06000" text-anchor="start">2 săptămâni</text>
<text x="72.0" y="368.0" font-size="11" font-weight="700" fill="#b06000" text-anchor="start">2 săptămâni</text>
<rect x="160.0" y="292.0" width="500.0" height="112.0" rx="8" fill="#ffffff" stroke="#b06000" stroke-width="1.5"/>
<text x="410.0" y="316.0" font-size="13" font-weight="400" fill="#000000" text-anchor="middle">„aștepți o corecție și intri pe ATMI la suport quarterly,</text>
<text x="410.0" y="334.0" font-size="13" font-weight="400" fill="#000000" text-anchor="middle">swing, 2 săptămâni în poziție”</text>

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@@ -17,6 +17,8 @@ from pathlib import Path
sys.path.insert(0, "/workspace/atm-curs-dl")
sys.path.insert(0, str(Path(__file__).parent))
from svg_candles import Candle, Chart, Level, Zone, Arrow # noqa: E402
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from eticheta_libera import eticheta_libera # noqa: E402
from buy_doji_ansamblu import serie, DOJI, CONF, DOJI_L, ENTRY, SL, TP1, R # noqa: E402
OUT = Path(__file__).with_suffix(".svg")
@@ -84,7 +86,11 @@ gata = Chart(
candles=jos,
levels=[Level(TP1, "ținta 1: 51.60", GREEN, "2 2", "left"),
Level(ENTRY, "intrarea: 50.40", GREY, "4 3", "left"),
Level(OCHI, "stop pus la ochi: 49.70", ORANGE, "4 3", "left"),
# linia „la ochi" pornește de la bara de intrare, iar eticheta ei
# stă în dreapta: pe toată lățimea, în stânga, cele două stopuri
# cădeau la 12 px unul sub altul și linia portocalie trecea prin
# eticheta celui din regulă — nu puteai atribui liniile
Level(OCHI, "stop pus la ochi: 49.70", ORANGE, "4 3", i0=cf),
Level(SL, "stopul din regulă: 49.20", RED, "4 3", "left")],
# eticheta zonei o punem manual: Zone o ridică deasupra candelelor din
# dreptul textului, adică departe de banda pe care o marchează
@@ -111,7 +117,11 @@ def panou(ch, sus_de=0.0):
h = float(re.search(r'viewBox="0 0 [\d.]+ ([\d.]+)"', svg).group(1))
# render() mută `top` intern și îl restaurează; offsetul se citește din
# prima linie de Level, altfel tot ce desenăm pe urmă iese mai sus cu ~22px
off = float(re.search(r'<line x1="24" y1="([\d.]+)"', svg).group(1)) - ch._y(ch.levels[0].price)
# „24.0", nu „24": svg_candles formatează începutul liniei cu :.1f de când
# are Level.i0 — generatorul crăpa aici, nu mai era rulabil
m = re.search(r'<line x1="24(?:\.0)?" y1="([\d.]+)"', svg)
assert m, "nu găsesc prima linie de Level: s-a schimbat formatul din svg_candles"
off = float(m.group(1)) - ch._y(ch.levels[0].price)
return svg[svg.index(">") + 1:svg.rindex("</svg>")].strip(), h, off
@@ -131,7 +141,7 @@ nums.append(f'<text x="24" y="{y_sub:.1f}" fill="#555">'
h_sus = max(h_sus, y_sub + 12)
body_jos, h_jos, off_jos = panou(gata, h_sus + VGAP)
zx = gata._cx(cf + 3) + 10
zx = gata._cx(cf + 4) + 10 # dupa corpul candelei 14, nu peste el
banda = (f'<text x="{zx:.1f}" y="{gata._y(OCHI) + off_jos - 6:.1f}" fill="{RED}" '
f'style="font-weight:bold">pe aici trece al doilea picior</text>')
H = h_jos + 8
@@ -145,5 +155,17 @@ svg = "\n ".join([
assert "\n\n" not in svg and "<svg" in svg, "linie goală în SVG"
for x, y in re.findall(r'<text x="([-\d.]+)" y="([-\d.]+)"', svg):
assert 0 <= float(x) <= W and 0 <= float(y) <= H, f"text în afara pânzei la ({x}, {y})"
# etichetele de nivel stau lipite de linia lor prin construcție, deci pentru
# ele contează doar corpurile candelelor; pentru restul, și liniile
eticheta_libera(svg, "buy_doji_stop", {"stop pus la ochi: 49.70",
"stopul din regulă: 49.20",
"intrarea: 50.40", "ținta 1: 51.60",
"stopul: 49.20"}, rects=True, segmente=False,
min_px=2.0) # marja mică: etichetele de nivel trec la ~8 px de
# corpul candelei 7, iar CW supraestimează lățimea
# eticheta benzii stă lipită deasupra liniei „la ochi", ca orice etichetă de
# nivel: pentru ea contează doar candelele
eticheta_libera(svg, "buy_doji_stop", {"pe aici trece al doilea picior"},
rects=True, segmente=False)
OUT.write_text(svg, encoding="utf-8")
print(f"scris {OUT} ({W}x{H:.0f})")

View File

@@ -2,8 +2,8 @@
<text x="24" y="48" fill="#333" style="font-weight:bold">Pasul 5 — stopul: numeri 4 candele înapoi de la confirmare</text>
<rect x="178.0" y="289.2" width="80.0" height="88.0" fill="#1a5fb4" fill-opacity="0.08" stroke="#1a5fb4" stroke-width="1"/>
<text x="178.0" y="284.2" fill="#1a5fb4" style="font-weight:bold">numeri 4 candele, începând cu confirmarea</text>
<line x1="24" y1="371.0" x2="706" y2="371.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="365.0" fill="#c00">stopul: 49.20</text>
<line x1="24.0" y1="371.0" x2="706" y2="371.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="365.0" fill="#c00">stopul: 49.20</text>
<line x1="48.0" y1="56.0" x2="48.0" y2="119.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="43.0" y="65.0" width="10" height="43.2" fill="#c00"/>
<line x1="68.0" y1="99.2" x2="68.0" y2="158.6" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -48,14 +48,14 @@
<line x1="24" y1="562" x2="706" y2="562" stroke="#ddd"/>
<text x="24" y="617" fill="#333" style="font-weight:bold">Același trade: stop „la ochi” (sub candela de confirmare) vs stopul din regulă</text>
<rect x="258.0" y="922.0" width="40.0" height="18.0" fill="#c00" fill-opacity="0.08" stroke="#c00" stroke-width="1"/>
<line x1="24" y1="853.6" x2="706" y2="853.6" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="2 2"/>
<text x="30" y="847.6" fill="#188a3e">ținta 1: 51.60</text>
<line x1="24" y1="896.8" x2="706" y2="896.8" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="890.8" fill="#555">intrarea: 50.40</text>
<line x1="24" y1="922.0" x2="706" y2="922.0" stroke="#b06000" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="916.0" fill="#b06000">stop pus la ochi: 49.70</text>
<line x1="24" y1="940.0" x2="706" y2="940.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="934.0" fill="#c00">stopul din regulă: 49.20</text>
<line x1="24.0" y1="853.6" x2="706" y2="853.6" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="2 2"/>
<text x="30.0" y="847.6" fill="#188a3e">ținta 1: 51.60</text>
<line x1="24.0" y1="896.8" x2="706" y2="896.8" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="890.8" fill="#555">intrarea: 50.40</text>
<line x1="243.0" y1="922.0" x2="706" y2="922.0" stroke="#b06000" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="692" y="916.0" fill="#b06000" text-anchor="end">stop pus la ochi: 49.70</text>
<line x1="24.0" y1="940.0" x2="706" y2="940.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="934.0" fill="#c00">stopul din regulă: 49.20</text>
<line x1="48.0" y1="625.0" x2="48.0" y2="688.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="43.0" y="634.0" width="10" height="43.2" fill="#c00"/>
<line x1="68.0" y1="668.2" x2="68.0" y2="727.6" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -108,5 +108,5 @@
<text x="518.0" y="804.6" fill="#188a3e" text-anchor="middle" style="font-weight:bold">dar numai cu stopul corect</text>
<text x="518.0" y="818.6" fill="#188a3e" text-anchor="middle" style="font-weight:bold">mai erai în trade</text>
<text x="24" y="1143" fill="#555">Barele de după intrare și stopul la ochi sunt construite, pentru contrast.</text>
<text x="318.0" y="916.0" fill="#c00" style="font-weight:bold">pe aici trece al doilea picior</text>
<text x="338.0" y="916.0" fill="#c00" style="font-weight:bold">pe aici trece al doilea picior</text>
</svg>

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -20,9 +20,11 @@ sys.path.insert(0, "/workspace/atm-curs-dl")
sys.path.insert(0, str(Path(__file__).resolve().parent))
from svg_candles import Arrow, Candle, Chart, Mark # noqa: E402
import m2d_duo as duo # noqa: E402
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from eticheta_libera import eticheta_libera # noqa: E402
OUT = Path(__file__).with_suffix(".svg")
W, SCALE, GAP, LEFT = 680, 46.0, 46, 74
W, SCALE, GAP, LEFT = 680, 46.0, 46, 60 # LEFT 74->60: eticheta cyan din dreapta atingea corpul ultimei candele
GREEN, RED, BLUE, CYAN, GREY = "#188a3e", "#c00", "#1a5fb4", "#0891b2", "#555"
# --- aceleași candele de 15 min ca în diagrama de ansamblu -----------------
@@ -49,6 +51,9 @@ assert DA[:SIG + 2] == NU[:SIG + 2], "panourile nu pornesc din aceeași serie"
SEMNAL = BASE[SIG][3] # 100.60 — același nivel ca în diagrama de ansamblu
REF_LOW = BASE[SIG][2] # 99.80 — minimul din care a pornit mișcarea
assert BASE[SIG][3] > BASE[SIG][0], "candela de semnal nu e verde"
# pe un rând, eticheta ajungea cu „99.80" sub corpul candelei 4 (99.30-99.85)
# și se citea „99.8"; pe două rânduri se termină înainte de candela 2
REF_TXT = ["minimul din care a pornit", "mișcarea 99.80"]
# DA: nicio candelă de după semnal nu se închide sub minimul de referință
assert all(b[3] > REF_LOW for b in DA[SIG + 1:]), "DA: o candelă închide sub referință"
@@ -94,14 +99,12 @@ extra_da = (duo.titlu(TITLU_DA, color=GREEN)
+ duo.zone(ch_da, SIG, 7, "zona în care ai voie long", GREEN, pad=20, lift=26)
+ duo.level(ch_da, SEMNAL, ["close-ul candelei de semnal 100.60"], CYAN, W,
below=False, at_left=False)
+ duo.level(ch_da, REF_LOW, ["minimul din care a pornit mișcarea 99.80"],
GREY, W, below=True, dash="2 3"))
+ duo.level(ch_da, REF_LOW, REF_TXT, GREY, W, below=True, dash="2 3"))
extra_nu = (duo.titlu(TITLU_NU, color=RED)
+ duo.zone(ch_nu, 7, 8, "setup anulat", RED, pad=20)
+ duo.level(ch_nu, SEMNAL, ["close-ul candelei de semnal 100.60"], CYAN, W,
below=False, at_left=False)
+ duo.level(ch_nu, REF_LOW, ["minimul din care a pornit mișcarea 99.80"],
GREY, W, below=True, dash="2 3"))
+ duo.level(ch_nu, REF_LOW, REF_TXT, GREY, W, below=True, dash="2 3"))
svg, H, n = duo.build(
[("DA", body_da, h_da, extra_da), ("NU", body_nu, h_nu, extra_nu)],
@@ -109,6 +112,10 @@ svg, H, n = duo.build(
"Pe 15 min se citește DIRECȚIA, nu intrarea. Intrarea vine de pe 3 min (pasul 3)."],
W)
duo.fara_preturi_straine(svg, [SEMNAL, REF_LOW, NU[7][3]])
# etichetele de nivel stau lipite de linia lor prin construcție, deci pentru ele
# contează doar corpurile candelelor (`segmente=False`)
eticheta_libera(svg, "m2d_directie", set(REF_TXT) | {
"close-ul candelei de semnal 100.60"}, rects=True, segmente=False)
OUT.write_text(svg, encoding="utf-8")
print(f"scris {OUT} ({W}x{H:.0f}), {n} etichete | semnal {SEMNAL:.2f}, referință {REF_LOW:.2f} | "
f"DA: ultima închidere {DA[-1][3]:.2f} | NU: candela 7 închide {NU[7][3]:.2f}")

View File

@@ -1,65 +1,65 @@
<svg viewBox="0 0 680 681" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">DA — 15 min e încă în Buy când vine trigger-ul de pe 3 min</text><rect x="284.0" y="48.4" width="132.0" height="85.7" fill="#188a3e" fill-opacity="0.12" stroke="#188a3e" stroke-width="1"/><text x="290.0" y="41.4" fill="#188a3e" style="font-weight:bold">zona în care ai voie long</text><line x1="24" y1="89.3" x2="666" y2="89.3" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="83.3" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="126.1" x2="666" y2="126.1" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="147.1" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit mișcarea 99.80</text>
<line x1="74.0" y1="192.8" x2="74.0" y2="215.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="66.5" y="197.4" width="15" height="11.5" fill="#188a3e"/>
<line x1="120.0" y1="176.7" x2="120.0" y2="202.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="112.5" y="181.3" width="15" height="16.1" fill="#188a3e"/>
<line x1="166.0" y1="158.3" x2="166.0" y2="185.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="158.5" y="162.9" width="15" height="18.4" fill="#188a3e"/>
<line x1="212.0" y1="142.2" x2="212.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="204.5" y="149.1" width="15" height="13.8" fill="#188a3e"/>
<line x1="258.0" y1="119.2" x2="258.0" y2="153.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="250.5" y="123.8" width="15" height="25.3" fill="#188a3e"/>
<line x1="304.0" y1="82.4" x2="304.0" y2="126.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="296.5" y="89.3" width="15" height="34.5" fill="#188a3e"/>
<line x1="350.0" y1="84.7" x2="350.0" y2="116.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="342.5" y="89.3" width="15" height="25.3" fill="#c00"/>
<line x1="396.0" y1="96.2" x2="396.0" y2="121.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="388.5" y="98.5" width="15" height="16.1" fill="#188a3e"/>
<line x1="442.0" y1="64.0" x2="442.0" y2="100.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="434.5" y="70.9" width="15" height="27.6" fill="#188a3e"/>
<line x1="244.0" y1="247.9" x2="300.4" y2="137.2" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="304.0,130.1 303.9,139.0 296.8,135.4" fill="#0891b2"/>
<text x="244.0" y="261.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="244.0" y="275.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="320.0" y1="201.5" x2="347.2" y2="128.4" stroke="#555" stroke-width="1.8"/>
<polygon points="350.0,120.9 351.0,129.8 343.5,127.0" fill="#555"/>
<text x="320.0" y="215.5" fill="#555" text-anchor="middle" style="font-weight:bold">candelă roșie pe 15 min, dar close-ul</text>
<text x="320.0" y="229.5" fill="#555" text-anchor="middle" style="font-weight:bold">rămâne peste 99.80: pullback, nu întoarcere</text>
<line x1="372.0" y1="74.0" x2="389.6" y2="87.4" stroke="#188a3e" stroke-width="1.8"/>
<polygon points="396.0,92.2 387.2,90.6 392.0,84.2" fill="#188a3e"/>
<text x="372.0" y="69.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">aici cade trigger-ul de pe 3 min</text>
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">DA — 15 min e încă în Buy când vine trigger-ul de pe 3 min</text><rect x="270.0" y="48.4" width="132.0" height="85.7" fill="#188a3e" fill-opacity="0.12" stroke="#188a3e" stroke-width="1"/><text x="276.0" y="41.4" fill="#188a3e" style="font-weight:bold">zona în care ai voie long</text><line x1="24" y1="89.3" x2="666" y2="89.3" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="83.3" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="126.1" x2="666" y2="126.1" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="147.1" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit</text><text x="30" y="161.1" fill="#555" text-anchor="start" style="font-weight:bold">mișcarea 99.80</text>
<line x1="60.0" y1="192.8" x2="60.0" y2="215.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="52.5" y="197.4" width="15" height="11.5" fill="#188a3e"/>
<line x1="106.0" y1="176.7" x2="106.0" y2="202.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="98.5" y="181.3" width="15" height="16.1" fill="#188a3e"/>
<line x1="152.0" y1="158.3" x2="152.0" y2="185.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="144.5" y="162.9" width="15" height="18.4" fill="#188a3e"/>
<line x1="198.0" y1="142.2" x2="198.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="190.5" y="149.1" width="15" height="13.8" fill="#188a3e"/>
<line x1="244.0" y1="119.2" x2="244.0" y2="153.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="236.5" y="123.8" width="15" height="25.3" fill="#188a3e"/>
<line x1="290.0" y1="82.4" x2="290.0" y2="126.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="282.5" y="89.3" width="15" height="34.5" fill="#188a3e"/>
<line x1="336.0" y1="84.7" x2="336.0" y2="116.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="328.5" y="89.3" width="15" height="25.3" fill="#c00"/>
<line x1="382.0" y1="96.2" x2="382.0" y2="121.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="374.5" y="98.5" width="15" height="16.1" fill="#188a3e"/>
<line x1="428.0" y1="64.0" x2="428.0" y2="100.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="420.5" y="70.9" width="15" height="27.6" fill="#188a3e"/>
<line x1="230.0" y1="247.9" x2="286.4" y2="137.2" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="290.0,130.1 289.9,139.0 282.8,135.4" fill="#0891b2"/>
<text x="230.0" y="261.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="230.0" y="275.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="306.0" y1="201.5" x2="333.2" y2="128.4" stroke="#555" stroke-width="1.8"/>
<polygon points="336.0,120.9 337.0,129.8 329.5,127.0" fill="#555"/>
<text x="306.0" y="215.5" fill="#555" text-anchor="middle" style="font-weight:bold">candelă roșie pe 15 min, dar close-ul</text>
<text x="306.0" y="229.5" fill="#555" text-anchor="middle" style="font-weight:bold">rămâne peste 99.80: pullback, nu întoarcere</text>
<line x1="358.0" y1="74.0" x2="375.6" y2="87.4" stroke="#188a3e" stroke-width="1.8"/>
<polygon points="382.0,92.2 373.2,90.6 378.0,84.2" fill="#188a3e"/>
<text x="358.0" y="69.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">aici cade trigger-ul de pe 3 min</text>
</g>
<g transform="translate(0,311)"><text x="24" y="22" fill="#c00" style="font-weight:bold">NU — 15 min s-a închis Sell: setup-ul long e anulat</text><rect x="376.0" y="85.9" width="86.0" height="85.0" fill="#c00" fill-opacity="0.12" stroke="#c00" stroke-width="1"/><text x="382.0" y="78.9" fill="#c00" style="font-weight:bold">setup anulat</text><line x1="24" y1="70.9" x2="666" y2="70.9" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="64.9" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="107.7" x2="666" y2="107.7" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="128.7" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit mișcarea 99.80</text>
<line x1="74.0" y1="174.4" x2="74.0" y2="197.4" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="66.5" y="179.0" width="15" height="11.5" fill="#188a3e"/>
<line x1="120.0" y1="158.3" x2="120.0" y2="183.6" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="112.5" y="162.9" width="15" height="16.1" fill="#188a3e"/>
<line x1="166.0" y1="139.9" x2="166.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="158.5" y="144.5" width="15" height="18.4" fill="#188a3e"/>
<line x1="212.0" y1="123.8" x2="212.0" y2="149.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="204.5" y="130.7" width="15" height="13.8" fill="#188a3e"/>
<line x1="258.0" y1="100.8" x2="258.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="250.5" y="105.4" width="15" height="25.3" fill="#188a3e"/>
<line x1="304.0" y1="64.0" x2="304.0" y2="107.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="296.5" y="70.9" width="15" height="34.5" fill="#188a3e"/>
<line x1="350.0" y1="66.3" x2="350.0" y2="98.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="342.5" y="70.9" width="15" height="25.3" fill="#c00"/>
<line x1="396.0" y1="93.9" x2="396.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="388.5" y="96.2" width="15" height="34.5" fill="#c00"/>
<line x1="442.0" y1="126.1" x2="442.0" y2="162.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="434.5" y="130.7" width="15" height="25.3" fill="#c00"/>
<line x1="244.0" y1="229.5" x2="300.4" y2="118.8" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="304.0,111.7 303.9,120.6 296.8,117.0" fill="#0891b2"/>
<text x="244.0" y="243.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="244.0" y="257.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="356.0" y1="190.9" x2="391.1" y2="145.6" stroke="#c00" stroke-width="1.8"/>
<polygon points="396.0,139.3 394.3,148.1 387.9,143.2" fill="#c00"/>
<text x="356.0" y="204.9" fill="#c00" text-anchor="middle" style="font-weight:bold">close 99.30, sub 99.80: direcția mare</text>
<text x="356.0" y="218.9" fill="#c00" text-anchor="middle" style="font-weight:bold">s-a răsucit — nu mai intri long</text>
<line x1="322.0" y1="274.9" x2="436.1" y2="172.3" stroke="#c00" stroke-width="1.8"/>
<polygon points="442.0,166.9 438.7,175.2 433.4,169.3" fill="#c00"/>
<text x="322.0" y="288.9" fill="#c00" text-anchor="middle" style="font-weight:bold">de aici cauți short, nu long</text>
<g transform="translate(0,311)"><text x="24" y="22" fill="#c00" style="font-weight:bold">NU — 15 min s-a închis Sell: setup-ul long e anulat</text><rect x="362.0" y="85.9" width="86.0" height="85.0" fill="#c00" fill-opacity="0.12" stroke="#c00" stroke-width="1"/><text x="368.0" y="78.9" fill="#c00" style="font-weight:bold">setup anulat</text><line x1="24" y1="70.9" x2="666" y2="70.9" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="64.9" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="107.7" x2="666" y2="107.7" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="128.7" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit</text><text x="30" y="142.7" fill="#555" text-anchor="start" style="font-weight:bold">mișcarea 99.80</text>
<line x1="60.0" y1="174.4" x2="60.0" y2="197.4" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="52.5" y="179.0" width="15" height="11.5" fill="#188a3e"/>
<line x1="106.0" y1="158.3" x2="106.0" y2="183.6" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="98.5" y="162.9" width="15" height="16.1" fill="#188a3e"/>
<line x1="152.0" y1="139.9" x2="152.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="144.5" y="144.5" width="15" height="18.4" fill="#188a3e"/>
<line x1="198.0" y1="123.8" x2="198.0" y2="149.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="190.5" y="130.7" width="15" height="13.8" fill="#188a3e"/>
<line x1="244.0" y1="100.8" x2="244.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="236.5" y="105.4" width="15" height="25.3" fill="#188a3e"/>
<line x1="290.0" y1="64.0" x2="290.0" y2="107.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="282.5" y="70.9" width="15" height="34.5" fill="#188a3e"/>
<line x1="336.0" y1="66.3" x2="336.0" y2="98.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="328.5" y="70.9" width="15" height="25.3" fill="#c00"/>
<line x1="382.0" y1="93.9" x2="382.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="374.5" y="96.2" width="15" height="34.5" fill="#c00"/>
<line x1="428.0" y1="126.1" x2="428.0" y2="162.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="420.5" y="130.7" width="15" height="25.3" fill="#c00"/>
<line x1="230.0" y1="229.5" x2="286.4" y2="118.8" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="290.0,111.7 289.9,120.6 282.8,117.0" fill="#0891b2"/>
<text x="230.0" y="243.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="230.0" y="257.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="342.0" y1="190.9" x2="377.1" y2="145.6" stroke="#c00" stroke-width="1.8"/>
<polygon points="382.0,139.3 380.3,148.1 373.9,143.2" fill="#c00"/>
<text x="342.0" y="204.9" fill="#c00" text-anchor="middle" style="font-weight:bold">close 99.30, sub 99.80: direcția mare</text>
<text x="342.0" y="218.9" fill="#c00" text-anchor="middle" style="font-weight:bold">s-a răsucit — nu mai intri long</text>
<line x1="308.0" y1="274.9" x2="422.1" y2="172.3" stroke="#c00" stroke-width="1.8"/>
<polygon points="428.0,166.9 424.7,175.2 419.4,169.3" fill="#c00"/>
<text x="308.0" y="288.9" fill="#c00" text-anchor="middle" style="font-weight:bold">de aici cauți short, nu long</text>
</g>
<text x="24" y="641" fill="#555">Același grafic de 15 minute ca în diagrama de ansamblu; serie construită, fără ticker.</text>
<text x="24" y="658" fill="#555">Pe 15 min se citește DIRECȚIA, nu intrarea. Intrarea vine de pe 3 min (pasul 3).</text>

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -146,10 +146,32 @@ def link_md_to_html(md_path: Path, body: str) -> str:
return re.sub(r'href="(?!https?:)([^":]+?)\.md(#[^"]*)?"', sub, body)
def stash_svgs(text: str) -> tuple[str, list[str]]:
"""Scoate <svg>...</svg> din calea lui markdown și lasă un marcaj în loc.
Fără asta, markdown vede caracterele lui înăuntrul desenului: în
`mp2_pivoti_excel` cele două `*` din formulele Excel (`=2*E2-C2` …
`=2*E3-B3`) deveneau un `<em>` pus peste `</text>`, iar parserul
browserului arunca tot restul SVG-ului — jumătate de tabel lipsea din
pagină, fără niciun semn în .md sau în audit (02.10.2026).
"""
pastrate: list[str] = []
def scoate(m: re.Match) -> str:
pastrate.append(m.group(0))
return f"<!--SVG{len(pastrate) - 1}-->"
return re.sub(r"<svg .*?</svg>", scoate, text, flags=re.S), pastrate
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"])
fara_svg, svgs = stash_svgs(text)
body = markdown.markdown(fara_svg, extensions=["extra", "toc"])
body = re.sub(r"(?:<p>\s*)?<!--SVG(\d+)-->(?:\s*</p>)?",
lambda m: svgs[int(m.group(1))], body)
assert "<!--SVG" not in body, f"{md_path}: marcaj de SVG rămas în pagină"
body = link_md_to_html(md_path, body)
title = text.splitlines()[0].lstrip("# ").strip() if text else md_path.stem
top, bottom = nav_html(md_path, title)

View File

@@ -47,7 +47,7 @@ Trimiterile la lecțiile din care vine fiecare pas stau separat, în
corpul e o linie subțire, iar fitilele ies și în sus, și în jos. Spune că în
perioada aceea cumpărătorii și vânzătorii au fost la egalitate.</p>
<!-- DIAGRAMA: doji_forma -->
<p><svg viewBox="0 0 1000 533" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 1000 533" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24.0" y="30.0" fill="#333" text-anchor="start" style="font-weight:bold;font-size:14px">Ce e un doji și ce nu — aceeași bară, 50.10 sus și 49.25 jos</text>
<rect x="292.0" y="180.0" width="260.0" height="307.0" fill="#188a3e" fill-opacity="0.10" stroke="#188a3e" stroke-width="1"/>
<text x="298.0" y="173.0" fill="#188a3e" text-anchor="start" style="font-weight:bold;font-size:12px">doji</text>
@@ -98,7 +98,7 @@ perioada aceea cumpărătorii și vânzătorii au fost la egalitate.</p>
<text x="860.0" y="152.0" fill="#c00" text-anchor="middle" style="font-weight:bold;font-size:12px">fără fitil sus</text>
<text x="860.0" y="166.0" fill="#c00" text-anchor="middle">regula cere fitil în ambele părți</text>
<text x="24.0" y="517.0" fill="#555" text-anchor="start">Doji = corpul e cel mult 10 % din înălțimea totală a barei (aici înălțimea e 0.85) și are fitil și sus, și jos.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: doji_forma -->
<h2 id="ce-face-strategia">Ce face strategia</h2>
@@ -113,7 +113,7 @@ spune că merge în cam 65-70 % din cazuri, deci cam un trade din trei pierde.
De aceea stopul e obligatoriu.</p>
<p>Tot trade-ul, pe un exemplu construit:</p>
<!-- DIAGRAMA: ansamblu -->
<p><svg viewBox="0 0 709 739" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 709 739" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="48" fill="#333" style="font-weight:bold">Buy Doji — un trade de la cap la coadă (daily, exemplu construit)</text>
<rect x="94.5" y="120.0" width="154.0" height="388.0" fill="#c00" fill-opacity="0.08" stroke="#c00" stroke-width="1"/>
<text x="94.5" y="115.0" fill="#c00" style="font-weight:bold">1. scăderea: vânzătorii obosesc</text>
@@ -256,7 +256,7 @@ De aceea stopul e obligatoriu.</p>
<text x="125.0" y="486.0" fill="#c00" style="font-weight:bold">1R = 1.20 (riscul)</text>
<polyline points="114.0,412.0 119.0,412.0 119.0,456.0 114.0,456.0" fill="none" stroke="#1a5fb4" stroke-width="1.5"/>
<text x="125.0" y="438.0" fill="#1a5fb4" style="font-weight:bold">1R = 1.20 (ținta)</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: ansamblu -->
<p>De la stânga la dreapta: 14 zile de scădere, doji-ul (high 50.10, low 49.25),
@@ -353,7 +353,7 @@ contra unui Sell Doji weekly și nu shortezi contra unui Buy Doji weekly.
Un Sell Doji weekly „nu înseamnă neapărat că se va materializa", dar la
început îl tratezi ca pe un stop.</p>
<!-- DIAGRAMA: directie -->
<p><svg viewBox="0 0 900 633" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 900 633" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="20.0" y="24.0" fill="#333" style="font-weight:bold;font-size:14px">NU: Sell Doji daily contra unui Buy Doji weekly — exemplu construit</text>
<text x="20.0" y="50.0" fill="#555" style="font-weight:bold">weekly: direcția</text>
<rect x="164.0" y="186.8" width="32.0" height="72.0" fill="#188a3e" fill-opacity="0.12" stroke="#188a3e" stroke-width="1.5" rx="3"/>
@@ -458,7 +458,7 @@ Un Sell Doji weekly „nu înseamnă neapărat că se va materializa", dar la
<text x="520.0" y="554.8" fill="#d06a00" style="font-size:11px">a scăzut o singură zi, până la 82.00</text>
<text x="20.0" y="592.8" fill="#555" style="font-size:11px">Liniile albastre punctate sunt aceleași niveluri pe ambele panouri: high-ul și low-ul doji-ului daily.</text>
<text x="20.0" y="610.8" fill="#555" style="font-size:11px">Seria e construită: un singur caz ilustrează regula, nu o dovedește.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: directie -->
<p>Diagrama e pe alt simbol decât exemplul din ceilalți pași, deci are alte
@@ -480,7 +480,7 @@ semnal mai slab. Dacă scanerul tău cere
<code>Since Bear ≥ 8</code> (cel puțin 8 candele de la ultimul semnal de scădere), pe
astea nu ți le arată deloc.</p>
<!-- DIAGRAMA: trend -->
<p><svg viewBox="0 0 540 622" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 540 622" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<rect x="70.0" y="61.0" width="164.0" height="185.5" fill="#188a3e" fill-opacity="0.08" stroke="#188a3e" stroke-width="1"/>
<text x="70.0" y="56.0" fill="#188a3e" style="font-weight:bold">9 candele de scădere — ideal</text>
<line x1="62.0" y1="54.0" x2="62.0" y2="78.0" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -565,7 +565,7 @@ astea nu ți le arată deloc.</p>
<text x="24" y="371.0" fill="#333" style="font-weight:bold">Același doji, după un range</text>
<text x="24" y="592.0" fill="#b06000" style="font-weight:bold">ACCEPTAT, semnal mai slab</text>
<text x="24" y="609.0" fill="#555">scannerul cu Since Bear ≥ 8 nu-l vede</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: trend -->
<p>Doji-ul îl verifici cu o împărțire, nu din ochi: corpul împărțit la
@@ -592,7 +592,7 @@ singur; formula e la nivelul 3, la BVB.</p>
<p>Un doji departe de orice nivel e o simplă pauză; pe un nivel, cumpărătorii
au motiv să apară.</p>
<!-- DIAGRAMA: locatie -->
<p><svg viewBox="0 0 760 415" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 760 415" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="22" fill="#333" style="font-weight:bold">Doji la nivel vs. doji în aer — daily, pivoți lunari (exemplu construit)</text>
<text x="24" y="48" fill="#188a3e" style="font-weight:bold">DA — doji la nivel</text>
<text x="402" y="48" fill="#c00" style="font-weight:bold">NU — doji în aer</text>
@@ -664,7 +664,7 @@ au motiv să apară.</p>
<text x="604.0" y="294.4" fill="#c00" text-anchor="middle" style="font-weight:bold">nu are cine să-l susțină</text>
<text x="24" y="383" fill="#555">daily: e „la nivel" dacă low-ul dojiului e la cel mult 1-2 % de pivotul lunar (aici 0,51 %; în dreapta 7,07 %).</text>
<text x="24" y="401" fill="#555">Aceeași serie, aceeași scară; nivelurile 49.00 / 46.00 / 53.50 sunt construite.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: locatie -->
<p>Aceeași formă, de două ori. În stânga, low-ul doji-ului e la 49.25, iar
@@ -684,7 +684,7 @@ fi urmată de încă un val în jos. Contează închiderea, nu atingerea — o
candelă care trece peste high în timpul zilei și se închide sub el nu e
trigger.</p>
<!-- DIAGRAMA: fereastra -->
<p><svg viewBox="0 0 640 750" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 640 750" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><rect x="248.0" y="141.0" width="112.0" height="106.0" fill="#1a5fb4" fill-opacity="0.12" stroke="#1a5fb4" stroke-width="1"/><text x="254.0" y="134.0" fill="#1a5fb4" style="font-weight:bold">fereastra: 3 candele</text><line x1="24" y1="200.0" x2="626" y2="200.0" stroke="#b06000" stroke-width="1.5" stroke-dasharray="4 3"/><text x="30" y="215.0" fill="#b06000" text-anchor="start" style="font-weight:bold">high-ul dojiului 50.10</text><text x="30" y="229.0" fill="#b06000" text-anchor="start" style="font-weight:bold">trebuie ÎNCHIS peste,</text><text x="30" y="243.0" fill="#b06000" text-anchor="start" style="font-weight:bold">nu doar atins</text><line x1="24" y1="251.0" x2="626" y2="251.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/><text x="30" y="266.0" fill="#c00" text-anchor="start" style="font-weight:bold">low-ul dojiului 49.25</text>
<text x="24" y="48" fill="#333" style="font-weight:bold">DA — confirmare la +2, în fereastră</text>
<line x1="64.0" y1="56.0" x2="64.0" y2="83.0" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -748,7 +748,7 @@ trigger.</p>
</g>
<text x="24" y="728" fill="#555">Serii construite: open = close-ul barei anterioare.</text>
<text x="24" y="745" fill="#555">Doji: h 50.10 / l 49.25. Fereastra = maximum 3 candele după doji.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: fereastra -->
<p>Sus, setup-ul valid: doji cu high 50.10; prima candelă se închide la 49.90,
@@ -767,12 +767,12 @@ execută ca ordine de cumpărare. De aceea mișcarea se întoarce brusc.
<p><strong>Numeri 4 candele înapoi, începând cu cea de confirmare, iei cel mai jos low
dintre ele și pui stopul puțin sub el.</strong></p>
<!-- DIAGRAMA: stop -->
<p><svg viewBox="0 0 720 1163" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 720 1163" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="48" fill="#333" style="font-weight:bold">Pasul 5 — stopul: numeri 4 candele înapoi de la confirmare</text>
<rect x="178.0" y="289.2" width="80.0" height="88.0" fill="#1a5fb4" fill-opacity="0.08" stroke="#1a5fb4" stroke-width="1"/>
<text x="178.0" y="284.2" fill="#1a5fb4" style="font-weight:bold">numeri 4 candele, începând cu confirmarea</text>
<line x1="24" y1="371.0" x2="706" y2="371.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="365.0" fill="#c00">stopul: 49.20</text>
<line x1="24.0" y1="371.0" x2="706" y2="371.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="365.0" fill="#c00">stopul: 49.20</text>
<line x1="48.0" y1="56.0" x2="48.0" y2="119.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="43.0" y="65.0" width="10" height="43.2" fill="#c00"/>
<line x1="68.0" y1="99.2" x2="68.0" y2="158.6" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -817,14 +817,14 @@ dintre ele și pui stopul puțin sub el.</strong></p>
<line x1="24" y1="562" x2="706" y2="562" stroke="#ddd"/>
<text x="24" y="617" fill="#333" style="font-weight:bold">Același trade: stop „la ochi” (sub candela de confirmare) vs stopul din regulă</text>
<rect x="258.0" y="922.0" width="40.0" height="18.0" fill="#c00" fill-opacity="0.08" stroke="#c00" stroke-width="1"/>
<line x1="24" y1="853.6" x2="706" y2="853.6" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="2 2"/>
<text x="30" y="847.6" fill="#188a3e">ținta 1: 51.60</text>
<line x1="24" y1="896.8" x2="706" y2="896.8" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="890.8" fill="#555">intrarea: 50.40</text>
<line x1="24" y1="922.0" x2="706" y2="922.0" stroke="#b06000" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="916.0" fill="#b06000">stop pus la ochi: 49.70</text>
<line x1="24" y1="940.0" x2="706" y2="940.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="934.0" fill="#c00">stopul din regulă: 49.20</text>
<line x1="24.0" y1="853.6" x2="706" y2="853.6" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="2 2"/>
<text x="30.0" y="847.6" fill="#188a3e">ținta 1: 51.60</text>
<line x1="24.0" y1="896.8" x2="706" y2="896.8" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="890.8" fill="#555">intrarea: 50.40</text>
<line x1="243.0" y1="922.0" x2="706" y2="922.0" stroke="#b06000" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="692" y="916.0" fill="#b06000" text-anchor="end">stop pus la ochi: 49.70</text>
<line x1="24.0" y1="940.0" x2="706" y2="940.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="934.0" fill="#c00">stopul din regulă: 49.20</text>
<line x1="48.0" y1="625.0" x2="48.0" y2="688.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="43.0" y="634.0" width="10" height="43.2" fill="#c00"/>
<line x1="68.0" y1="668.2" x2="68.0" y2="727.6" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -877,8 +877,8 @@ dintre ele și pui stopul puțin sub el.</strong></p>
<text x="518.0" y="804.6" fill="#188a3e" text-anchor="middle" style="font-weight:bold">dar numai cu stopul corect</text>
<text x="518.0" y="818.6" fill="#188a3e" text-anchor="middle" style="font-weight:bold">mai erai în trade</text>
<text x="24" y="1143" fill="#555">Barele de după intrare și stopul la ochi sunt construite, pentru contrast.</text>
<text x="318.0" y="916.0" fill="#c00" style="font-weight:bold">pe aici trece al doilea picior</text>
</svg></p>
<text x="338.0" y="916.0" fill="#c00" style="font-weight:bold">pe aici trece al doilea picior</text>
</svg>
<!-- /DIAGRAMA: stop -->
<p>Sus, candelele numerotate de la confirmare. Cel mai jos low e al doji-ului,
@@ -924,7 +924,7 @@ iar după ce e atinsă lași restul pe trailing stop.</strong></p>
<p>Limita de timp: dacă în 8 candele de la intrare nu s-a atins nici ținta,
nici stopul, ieși oricum, la close-ul celei de-a 8-a.</p>
<!-- DIAGRAMA: iesire -->
<p><svg viewBox="0 0 760 779" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 760 779" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="48" fill="#333" style="font-weight:bold">A — prima treime la țintă, a doua pe trailing stop</text>
<rect x="146.5" y="176.0" width="73.0" height="96.0" fill="#188a3e" fill-opacity="0.08" stroke="#188a3e" stroke-width="1"/>
<rect x="218.5" y="122.0" width="163.0" height="84.0" fill="#1a5fb4" fill-opacity="0.08" stroke="#1a5fb4" stroke-width="1"/>
@@ -1045,7 +1045,7 @@ nici stopul, ieși oricum, la close-ul celei de-a 8-a.</p>
<text x="264.0" y="678.0" fill="#c00" text-anchor="middle" style="font-weight:bold">6</text>
<text x="282.0" y="678.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">7</text>
<text x="300.0" y="678.0" fill="#c00" text-anchor="middle" style="font-weight:bold">8</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: iesire -->
<p>Sus, prima treime iese la 51.60. Apar două candele cu gap, care urcă linia
@@ -1075,7 +1075,7 @@ construite. Împărțirea în trei treimi e a sumarizatorului lecției; ținta
<li>ținta e la aceeași distanță, în jos, iar linia de trail coboară.</li>
</ul>
<!-- DIAGRAMA: sell -->
<p><svg viewBox="0 0 840 571" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 840 571" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="72" fill="#333" style="font-weight:bold">Sell Doji pe short — daily (exemplu construit)</text>
<rect x="34.5" y="98.2" width="279.0" height="338.8" fill="#1a5fb4" fill-opacity="0.08" stroke="#1a5fb4" stroke-width="1"/>
<text x="34.5" y="93.2" fill="#1a5fb4" style="font-weight:bold">1. creșterea: 14 candele</text>
@@ -1203,7 +1203,7 @@ construite. Împărțirea în trei treimi e a sumarizatorului lecției; ținta
<text x="544.0" y="329.0" fill="#555" text-anchor="middle" style="font-weight:bold">trail-ul a coborât după preț (96.45);</text>
<text x="544.0" y="343.0" fill="#555" text-anchor="middle" style="font-weight:bold">prima închidere peste el: ieși cu restul, 96.60</text>
<text x="24" y="559" fill="#555">Pe short câștigi când prețul COBOARĂ: stopul stă SUS, ținta JOS, trail-ul coboară după preț. Roșu = ce riști, verde = ce câștigi.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: sell -->
<p>Pe diagramă, doji-ul e între 99.20 și 100.10. A doua candelă se închide la
@@ -1238,7 +1238,7 @@ același trade, cu atât e mai bun — dar materialul nu cere o poziție mai mar
Cele două panouri din diagramă sunt alte simboluri, cu alte prețuri (42 $ și
78 $).</p>
<!-- DIAGRAMA: aplus -->
<p><svg viewBox="0 0 1160 519" width="1160" height="519" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"><text x="580" y="20" fill="#333" text-anchor="middle" style="font-weight:bold">Setup A+ vs. setup mediocru (două panouri, exemple construite)</text><g transform="translate(8,38)">
<svg viewBox="0 0 1160 519" width="1160" height="519" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif"><text x="580" y="20" fill="#333" text-anchor="middle" style="font-weight:bold">Setup A+ vs. setup mediocru (două panouri, exemple construite)</text><g transform="translate(8,38)">
<text x="24" y="48" fill="#333" style="font-weight:bold">A+ — doji la suport, volum în acumulare</text>
<rect x="184.5" y="256.2" width="19.0" height="33.0" fill="#188a3e" fill-opacity="0.08" stroke="#188a3e" stroke-width="1"/>
<line x1="24" y1="282.6" x2="546" y2="282.6" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/>
@@ -1412,7 +1412,7 @@ Cele două panouri din diagramă sunt alte simboluri, cu alte prețuri (42 $ și
<polygon points="314.0,113.2 322.4,116.2 316.7,121.8" fill="#c00"/>
<text x="354.0" y="168.6" fill="#c00" text-anchor="middle" style="font-weight:bold">cade înapoi sub rezistența 78.50:</text>
<text x="354.0" y="182.6" fill="#c00" text-anchor="middle" style="font-weight:bold">semnalul a mințit</text>
<text x="260.5" y="392.0" fill="#c00" style="font-weight:bold">volum slab: nimeni mare nu cumpără</text></g></svg></p>
<text x="260.5" y="392.0" fill="#c00" style="font-weight:bold">volum slab: nimeni mare nu cumpără</text></g></svg>
<!-- /DIAGRAMA: aplus -->
<table>
@@ -1496,7 +1496,7 @@ patru ori mai multe acțiuni.</p>
daily. „MICI" e numele dat de curs variantei ținute luni de zile, pornită
dintr-un Buy Doji weekly.</p>
<!-- DIAGRAMA: perechi_tf -->
<p><svg viewBox="0 0 720 994" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 720 994" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<defs><marker id="pt-red" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#c00"/></marker></defs>
<text x="20.0" y="22.0" fill="#333" style="font-size:13px;font-weight:bold">Aceeași regulă pe trei perechi — graficul mic e lupa pe ultimele candele mari</text>
<text x="20.0" y="54.0" fill="#333" style="font-size:13px;font-weight:bold">A. weekly → daily</text>
@@ -1774,7 +1774,7 @@ dintr-un Buy Doji weekly.</p>
<text x="424.5" y="935.0" fill="#555" text-anchor="middle" style="font-size:11px">fără să rupă low-ul doji-ului daily (bifa din stânga)</text>
<text x="20.0" y="952.0" fill="#555" style="font-size:11px">bifa de sub doji = 100.76, minimul care nu se rupe</text>
<text x="20.0" y="972.0" fill="#777" style="font-size:10px">(șapte bare de 60 min pe zi: ședința 9:30-16:00 are 6 ore și jumătate — ultima bară a zilei e de 30 min)</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: perechi_tf -->
<table>
@@ -1828,7 +1828,7 @@ multe doji-uri false; rata de 65-70 % nu e dată pe timeframe.</p>
</blockquote>
<h2 id="scanerul-pe-scurt">Scanerul, pe scurt</h2>
<!-- DIAGRAMA: scaner -->
<p><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 670" width="640" height="670" role="img" aria-label="Scanerul Buy Doji în TradeStation — ordinea filtrelor și capcanele">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 670" width="640" height="670" role="img" aria-label="Scanerul Buy Doji în TradeStation — ordinea filtrelor și capcanele">
<rect x="0" y="0" width="640" height="670" fill="#ffffff"/>
<text x="320" y="30" font-family="system-ui, sans-serif" font-size="18" font-weight="700" fill="#000000" text-anchor="middle">Scanerul Buy Doji în TradeStation</text>
<text x="320" y="52" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#666666" text-anchor="middle">ordinea filtrelor și capcanele</text>
@@ -1887,7 +1887,7 @@ multe doji-uri false; rata de 65-70 % nu e dată pe timeframe.</p>
<text x="165" y="604.8" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#188a3e" text-anchor="middle">→ o verifici pe grafic</text>
<text x="165" y="620.8" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#188a3e" text-anchor="middle">(pașii 2-6).</text>
<text x="165" y="636.8" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#188a3e" text-anchor="middle">Scanerul nu e undă verde.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: scaner -->
<p>Capcanele: intervalul indicatorului nu se aliniază singur cu TF-ul
@@ -1899,7 +1899,7 @@ Buy Doji nu apar deloc și le vezi doar cu ochiul.</p>
restul cu ordine limită (se execută doar la prețul dat sau mai bun) mai jos,
în corpul candelei de confirmare.</p>
<!-- DIAGRAMA: transe -->
<p><svg viewBox="0 0 1372 1031" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 1372 1031" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="48" fill="#333" style="font-weight:bold">Intrarea în trei tranșe — același trade (doji 50.10 / 49.25)</text>
<rect x="218.3" y="572.0" width="20.0" height="120.0" fill="#188a3e" fill-opacity="0.08" stroke="#188a3e" stroke-width="1"/>
<line x1="24" y1="284.0" x2="1358" y2="284.0" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="2 2"/>
@@ -1964,7 +1964,7 @@ restul cu ordine limită (se execută doar la prețul dat sau mai bun) mai jos,
<line x1="608.3" y1="605.6" x2="958.3" y2="605.6" stroke="#1a5fb4" stroke-width="1.2" stroke-dasharray="2 3"/>
<text x="608.3" y="621.6" fill="#1a5fb4">prețul mediu al celor trei tranșe: 50.26</text>
<text x="24" y="1019.0" fill="#555">Paranteza de pe candela de confirmare e corpul ei (49.90 → 50.40): pe el se măsoară 1/3 și 1/2. Stopul e unul singur. Exemplu construit.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: transe -->
<p>Candela de confirmare are corpul între 49.90 și 50.40. O treime o cumperi la
@@ -1981,7 +1981,7 @@ prețuri calculezi ținta. Alege înainte de trade și ține-te de ea. Detalii:
</blockquote>
<h2 id="exemplul-real-labu-de-la-doji-la-30">Exemplul real: LABU, de la doji la +30 %</h2>
<!-- DIAGRAMA: labu -->
<p><svg viewBox="0 0 990 622" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 990 622" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="70" fill="#333" style="font-weight:bold">LABU — daily</text>
<rect x="34.5" y="129.6" width="274.0" height="240.0" fill="#777" fill-opacity="0.08" stroke="#777" stroke-width="1"/>
<text x="34.5" y="124.6" fill="#777" style="font-weight:bold">1. setup: scădere lungă, apoi primul test al pivotului 86.00</text>
@@ -2205,7 +2205,7 @@ prețuri calculezi ținta. Alege înainte de trade și ține-te de ea. Detalii:
<text x="24" y="568.2" fill="#c00">doji = corp mic (o 86.10, c 86.00): cumpărătorii și vânzătorii sunt la egalitate, exact pe pivotul lunar 86.00</text>
<text x="24" y="585.2" fill="#188a3e">ținta 1:1 (97.55) e atinsă a 6-a bară după intrare: acolo vinzi o treime, restul merge mai departe — de asta nu vinzi tot la 1:1</text>
<text x="24" y="610" fill="#555">Procentele (stop 9 %, +30 %) sunt ale cursului; nivelurile de preț sunt puse de sumarizator.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: labu -->
<p><strong>Ce e real:</strong> doar procentele — stop de 9 %, +30 % într-o lună. Prețurile

View File

@@ -782,8 +782,8 @@ dintre ele și pui stopul puțin sub el.**
<text x="24" y="48" fill="#333" style="font-weight:bold">Pasul 5 — stopul: numeri 4 candele înapoi de la confirmare</text>
<rect x="178.0" y="289.2" width="80.0" height="88.0" fill="#1a5fb4" fill-opacity="0.08" stroke="#1a5fb4" stroke-width="1"/>
<text x="178.0" y="284.2" fill="#1a5fb4" style="font-weight:bold">numeri 4 candele, începând cu confirmarea</text>
<line x1="24" y1="371.0" x2="706" y2="371.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="365.0" fill="#c00">stopul: 49.20</text>
<line x1="24.0" y1="371.0" x2="706" y2="371.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="365.0" fill="#c00">stopul: 49.20</text>
<line x1="48.0" y1="56.0" x2="48.0" y2="119.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="43.0" y="65.0" width="10" height="43.2" fill="#c00"/>
<line x1="68.0" y1="99.2" x2="68.0" y2="158.6" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -828,14 +828,14 @@ dintre ele și pui stopul puțin sub el.**
<line x1="24" y1="562" x2="706" y2="562" stroke="#ddd"/>
<text x="24" y="617" fill="#333" style="font-weight:bold">Același trade: stop „la ochi” (sub candela de confirmare) vs stopul din regulă</text>
<rect x="258.0" y="922.0" width="40.0" height="18.0" fill="#c00" fill-opacity="0.08" stroke="#c00" stroke-width="1"/>
<line x1="24" y1="853.6" x2="706" y2="853.6" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="2 2"/>
<text x="30" y="847.6" fill="#188a3e">ținta 1: 51.60</text>
<line x1="24" y1="896.8" x2="706" y2="896.8" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="890.8" fill="#555">intrarea: 50.40</text>
<line x1="24" y1="922.0" x2="706" y2="922.0" stroke="#b06000" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="916.0" fill="#b06000">stop pus la ochi: 49.70</text>
<line x1="24" y1="940.0" x2="706" y2="940.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30" y="934.0" fill="#c00">stopul din regulă: 49.20</text>
<line x1="24.0" y1="853.6" x2="706" y2="853.6" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="2 2"/>
<text x="30.0" y="847.6" fill="#188a3e">ținta 1: 51.60</text>
<line x1="24.0" y1="896.8" x2="706" y2="896.8" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="890.8" fill="#555">intrarea: 50.40</text>
<line x1="243.0" y1="922.0" x2="706" y2="922.0" stroke="#b06000" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="692" y="916.0" fill="#b06000" text-anchor="end">stop pus la ochi: 49.70</text>
<line x1="24.0" y1="940.0" x2="706" y2="940.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="30.0" y="934.0" fill="#c00">stopul din regulă: 49.20</text>
<line x1="48.0" y1="625.0" x2="48.0" y2="688.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="43.0" y="634.0" width="10" height="43.2" fill="#c00"/>
<line x1="68.0" y1="668.2" x2="68.0" y2="727.6" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -888,7 +888,7 @@ dintre ele și pui stopul puțin sub el.**
<text x="518.0" y="804.6" fill="#188a3e" text-anchor="middle" style="font-weight:bold">dar numai cu stopul corect</text>
<text x="518.0" y="818.6" fill="#188a3e" text-anchor="middle" style="font-weight:bold">mai erai în trade</text>
<text x="24" y="1143" fill="#555">Barele de după intrare și stopul la ochi sunt construite, pentru contrast.</text>
<text x="318.0" y="916.0" fill="#c00" style="font-weight:bold">pe aici trece al doilea picior</text>
<text x="338.0" y="916.0" fill="#c00" style="font-weight:bold">pe aici trece al doilea picior</text>
</svg>
<!-- /DIAGRAMA: stop -->

View File

@@ -77,7 +77,7 @@ panoul de 15 minute: pe panoul mic e sub scara desenată, deci e marcat pe cel
mare și trimis acolo prin etichetă, nu printr-un conector. E o lupă, nu o
eroare de desen.</p>
<!-- DIAGRAMA: ansamblu -->
<p><svg viewBox="0 0 720 368" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 720 368" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<defs><marker id="pt" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#c00"/></marker><marker id="pt-o" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#b06000"/></marker></defs>
<text x="20.0" y="24.0" fill="#333" style="font-size:14px;font-weight:bold">M2D long, tot trade-ul: 15 min dă direcția, 3 min dă intrarea</text>
<text x="20.0" y="42.0" fill="#555" style="font-size:11px">Graficul din dreapta nu e altă bucată de piață: e aceeași, mărită. O candelă de 15 min = 5 candele de 3 min.</text>
@@ -187,7 +187,7 @@ eroare de desen.</p>
<text x="367.0" y="320.0" fill="#188a3e" style="font-size:11px">pentru că 15 min e încă în Buy.</text>
<text x="367.0" y="334.0" fill="#555" style="font-size:11px">Wick-urile nu contează: se citește close-ul.</text>
<text x="20.0" y="350.0" fill="#555" style="font-size:11px">Serie construită, fără ticker. Risc = 100.40 − 99.90 = 0.50; TP1 la aceeași distanță în sus; ieșirea pe trail la 1.4R.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: ansamblu -->
<p>De la stânga la dreapta: pe 15 minute prețul urcă și dă semnalul de Buy
@@ -337,72 +337,72 @@ pentru pullback; pentru day trading 3×15, 5×25, 5×60 și 15×60; pentru swing
lista nu e închisă (sesiunile de întrebări adaugă 5×40 și 15×75), dar fiecare
pereche își are propria statistică, iar tu n-ai măsurat-o pe a ta.</p>
<!-- DIAGRAMA: directie -->
<p><svg viewBox="0 0 680 681" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">DA — 15 min e încă în Buy când vine trigger-ul de pe 3 min</text><rect x="284.0" y="48.4" width="132.0" height="85.7" fill="#188a3e" fill-opacity="0.12" stroke="#188a3e" stroke-width="1"/><text x="290.0" y="41.4" fill="#188a3e" style="font-weight:bold">zona în care ai voie long</text><line x1="24" y1="89.3" x2="666" y2="89.3" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="83.3" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="126.1" x2="666" y2="126.1" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="147.1" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit mișcarea 99.80</text>
<line x1="74.0" y1="192.8" x2="74.0" y2="215.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="66.5" y="197.4" width="15" height="11.5" fill="#188a3e"/>
<line x1="120.0" y1="176.7" x2="120.0" y2="202.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="112.5" y="181.3" width="15" height="16.1" fill="#188a3e"/>
<line x1="166.0" y1="158.3" x2="166.0" y2="185.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="158.5" y="162.9" width="15" height="18.4" fill="#188a3e"/>
<line x1="212.0" y1="142.2" x2="212.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="204.5" y="149.1" width="15" height="13.8" fill="#188a3e"/>
<line x1="258.0" y1="119.2" x2="258.0" y2="153.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="250.5" y="123.8" width="15" height="25.3" fill="#188a3e"/>
<line x1="304.0" y1="82.4" x2="304.0" y2="126.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="296.5" y="89.3" width="15" height="34.5" fill="#188a3e"/>
<line x1="350.0" y1="84.7" x2="350.0" y2="116.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="342.5" y="89.3" width="15" height="25.3" fill="#c00"/>
<line x1="396.0" y1="96.2" x2="396.0" y2="121.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="388.5" y="98.5" width="15" height="16.1" fill="#188a3e"/>
<line x1="442.0" y1="64.0" x2="442.0" y2="100.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="434.5" y="70.9" width="15" height="27.6" fill="#188a3e"/>
<line x1="244.0" y1="247.9" x2="300.4" y2="137.2" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="304.0,130.1 303.9,139.0 296.8,135.4" fill="#0891b2"/>
<text x="244.0" y="261.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="244.0" y="275.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="320.0" y1="201.5" x2="347.2" y2="128.4" stroke="#555" stroke-width="1.8"/>
<polygon points="350.0,120.9 351.0,129.8 343.5,127.0" fill="#555"/>
<text x="320.0" y="215.5" fill="#555" text-anchor="middle" style="font-weight:bold">candelă roșie pe 15 min, dar close-ul</text>
<text x="320.0" y="229.5" fill="#555" text-anchor="middle" style="font-weight:bold">rămâne peste 99.80: pullback, nu întoarcere</text>
<line x1="372.0" y1="74.0" x2="389.6" y2="87.4" stroke="#188a3e" stroke-width="1.8"/>
<polygon points="396.0,92.2 387.2,90.6 392.0,84.2" fill="#188a3e"/>
<text x="372.0" y="69.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">aici cade trigger-ul de pe 3 min</text>
<svg viewBox="0 0 680 681" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">DA — 15 min e încă în Buy când vine trigger-ul de pe 3 min</text><rect x="270.0" y="48.4" width="132.0" height="85.7" fill="#188a3e" fill-opacity="0.12" stroke="#188a3e" stroke-width="1"/><text x="276.0" y="41.4" fill="#188a3e" style="font-weight:bold">zona în care ai voie long</text><line x1="24" y1="89.3" x2="666" y2="89.3" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="83.3" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="126.1" x2="666" y2="126.1" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="147.1" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit</text><text x="30" y="161.1" fill="#555" text-anchor="start" style="font-weight:bold">mișcarea 99.80</text>
<line x1="60.0" y1="192.8" x2="60.0" y2="215.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="52.5" y="197.4" width="15" height="11.5" fill="#188a3e"/>
<line x1="106.0" y1="176.7" x2="106.0" y2="202.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="98.5" y="181.3" width="15" height="16.1" fill="#188a3e"/>
<line x1="152.0" y1="158.3" x2="152.0" y2="185.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="144.5" y="162.9" width="15" height="18.4" fill="#188a3e"/>
<line x1="198.0" y1="142.2" x2="198.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="190.5" y="149.1" width="15" height="13.8" fill="#188a3e"/>
<line x1="244.0" y1="119.2" x2="244.0" y2="153.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="236.5" y="123.8" width="15" height="25.3" fill="#188a3e"/>
<line x1="290.0" y1="82.4" x2="290.0" y2="126.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="282.5" y="89.3" width="15" height="34.5" fill="#188a3e"/>
<line x1="336.0" y1="84.7" x2="336.0" y2="116.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="328.5" y="89.3" width="15" height="25.3" fill="#c00"/>
<line x1="382.0" y1="96.2" x2="382.0" y2="121.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="374.5" y="98.5" width="15" height="16.1" fill="#188a3e"/>
<line x1="428.0" y1="64.0" x2="428.0" y2="100.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="420.5" y="70.9" width="15" height="27.6" fill="#188a3e"/>
<line x1="230.0" y1="247.9" x2="286.4" y2="137.2" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="290.0,130.1 289.9,139.0 282.8,135.4" fill="#0891b2"/>
<text x="230.0" y="261.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="230.0" y="275.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="306.0" y1="201.5" x2="333.2" y2="128.4" stroke="#555" stroke-width="1.8"/>
<polygon points="336.0,120.9 337.0,129.8 329.5,127.0" fill="#555"/>
<text x="306.0" y="215.5" fill="#555" text-anchor="middle" style="font-weight:bold">candelă roșie pe 15 min, dar close-ul</text>
<text x="306.0" y="229.5" fill="#555" text-anchor="middle" style="font-weight:bold">rămâne peste 99.80: pullback, nu întoarcere</text>
<line x1="358.0" y1="74.0" x2="375.6" y2="87.4" stroke="#188a3e" stroke-width="1.8"/>
<polygon points="382.0,92.2 373.2,90.6 378.0,84.2" fill="#188a3e"/>
<text x="358.0" y="69.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">aici cade trigger-ul de pe 3 min</text>
</g>
<g transform="translate(0,311)"><text x="24" y="22" fill="#c00" style="font-weight:bold">NU — 15 min s-a închis Sell: setup-ul long e anulat</text><rect x="376.0" y="85.9" width="86.0" height="85.0" fill="#c00" fill-opacity="0.12" stroke="#c00" stroke-width="1"/><text x="382.0" y="78.9" fill="#c00" style="font-weight:bold">setup anulat</text><line x1="24" y1="70.9" x2="666" y2="70.9" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="64.9" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="107.7" x2="666" y2="107.7" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="128.7" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit mișcarea 99.80</text>
<line x1="74.0" y1="174.4" x2="74.0" y2="197.4" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="66.5" y="179.0" width="15" height="11.5" fill="#188a3e"/>
<line x1="120.0" y1="158.3" x2="120.0" y2="183.6" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="112.5" y="162.9" width="15" height="16.1" fill="#188a3e"/>
<line x1="166.0" y1="139.9" x2="166.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="158.5" y="144.5" width="15" height="18.4" fill="#188a3e"/>
<line x1="212.0" y1="123.8" x2="212.0" y2="149.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="204.5" y="130.7" width="15" height="13.8" fill="#188a3e"/>
<line x1="258.0" y1="100.8" x2="258.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="250.5" y="105.4" width="15" height="25.3" fill="#188a3e"/>
<line x1="304.0" y1="64.0" x2="304.0" y2="107.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="296.5" y="70.9" width="15" height="34.5" fill="#188a3e"/>
<line x1="350.0" y1="66.3" x2="350.0" y2="98.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="342.5" y="70.9" width="15" height="25.3" fill="#c00"/>
<line x1="396.0" y1="93.9" x2="396.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="388.5" y="96.2" width="15" height="34.5" fill="#c00"/>
<line x1="442.0" y1="126.1" x2="442.0" y2="162.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="434.5" y="130.7" width="15" height="25.3" fill="#c00"/>
<line x1="244.0" y1="229.5" x2="300.4" y2="118.8" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="304.0,111.7 303.9,120.6 296.8,117.0" fill="#0891b2"/>
<text x="244.0" y="243.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="244.0" y="257.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="356.0" y1="190.9" x2="391.1" y2="145.6" stroke="#c00" stroke-width="1.8"/>
<polygon points="396.0,139.3 394.3,148.1 387.9,143.2" fill="#c00"/>
<text x="356.0" y="204.9" fill="#c00" text-anchor="middle" style="font-weight:bold">close 99.30, sub 99.80: direcția mare</text>
<text x="356.0" y="218.9" fill="#c00" text-anchor="middle" style="font-weight:bold">s-a răsucit — nu mai intri long</text>
<line x1="322.0" y1="274.9" x2="436.1" y2="172.3" stroke="#c00" stroke-width="1.8"/>
<polygon points="442.0,166.9 438.7,175.2 433.4,169.3" fill="#c00"/>
<text x="322.0" y="288.9" fill="#c00" text-anchor="middle" style="font-weight:bold">de aici cauți short, nu long</text>
<g transform="translate(0,311)"><text x="24" y="22" fill="#c00" style="font-weight:bold">NU — 15 min s-a închis Sell: setup-ul long e anulat</text><rect x="362.0" y="85.9" width="86.0" height="85.0" fill="#c00" fill-opacity="0.12" stroke="#c00" stroke-width="1"/><text x="368.0" y="78.9" fill="#c00" style="font-weight:bold">setup anulat</text><line x1="24" y1="70.9" x2="666" y2="70.9" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="64.9" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="107.7" x2="666" y2="107.7" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="128.7" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit</text><text x="30" y="142.7" fill="#555" text-anchor="start" style="font-weight:bold">mișcarea 99.80</text>
<line x1="60.0" y1="174.4" x2="60.0" y2="197.4" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="52.5" y="179.0" width="15" height="11.5" fill="#188a3e"/>
<line x1="106.0" y1="158.3" x2="106.0" y2="183.6" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="98.5" y="162.9" width="15" height="16.1" fill="#188a3e"/>
<line x1="152.0" y1="139.9" x2="152.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="144.5" y="144.5" width="15" height="18.4" fill="#188a3e"/>
<line x1="198.0" y1="123.8" x2="198.0" y2="149.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="190.5" y="130.7" width="15" height="13.8" fill="#188a3e"/>
<line x1="244.0" y1="100.8" x2="244.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="236.5" y="105.4" width="15" height="25.3" fill="#188a3e"/>
<line x1="290.0" y1="64.0" x2="290.0" y2="107.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="282.5" y="70.9" width="15" height="34.5" fill="#188a3e"/>
<line x1="336.0" y1="66.3" x2="336.0" y2="98.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="328.5" y="70.9" width="15" height="25.3" fill="#c00"/>
<line x1="382.0" y1="93.9" x2="382.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="374.5" y="96.2" width="15" height="34.5" fill="#c00"/>
<line x1="428.0" y1="126.1" x2="428.0" y2="162.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="420.5" y="130.7" width="15" height="25.3" fill="#c00"/>
<line x1="230.0" y1="229.5" x2="286.4" y2="118.8" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="290.0,111.7 289.9,120.6 282.8,117.0" fill="#0891b2"/>
<text x="230.0" y="243.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="230.0" y="257.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="342.0" y1="190.9" x2="377.1" y2="145.6" stroke="#c00" stroke-width="1.8"/>
<polygon points="382.0,139.3 380.3,148.1 373.9,143.2" fill="#c00"/>
<text x="342.0" y="204.9" fill="#c00" text-anchor="middle" style="font-weight:bold">close 99.30, sub 99.80: direcția mare</text>
<text x="342.0" y="218.9" fill="#c00" text-anchor="middle" style="font-weight:bold">s-a răsucit — nu mai intri long</text>
<line x1="308.0" y1="274.9" x2="422.1" y2="172.3" stroke="#c00" stroke-width="1.8"/>
<polygon points="428.0,166.9 424.7,175.2 419.4,169.3" fill="#c00"/>
<text x="308.0" y="288.9" fill="#c00" text-anchor="middle" style="font-weight:bold">de aici cauți short, nu long</text>
</g>
<text x="24" y="641" fill="#555">Același grafic de 15 minute ca în diagrama de ansamblu; serie construită, fără ticker.</text>
<text x="24" y="658" fill="#555">Pe 15 min se citește DIRECȚIA, nu intrarea. Intrarea vine de pe 3 min (pasul 3).</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: directie -->
<p>Sus, cazul bun: semnalul de Buy Momentum vine pe candela de 15 minute care se
@@ -425,7 +425,7 @@ forță, e o strategie de intrare pe <strong>reluare după pauză</strong>. Dac
bară după bară, fără nicio pauză în jos, nu ai unde să pui stopul: n-ai niciun
minim recent sub care ideea să fie moartă.</p>
<!-- DIAGRAMA: secventa -->
<p><svg viewBox="0 0 680 743" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 680 743" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">DA — pullback pe 3 min, care nu rupe minimul de referință</text><rect x="54.0" y="62.4" width="280.0" height="128.4" fill="#c00" fill-opacity="0.12" stroke="#c00" stroke-width="1"/><text x="60.0" y="55.4" fill="#c00" style="font-weight:bold">M: pullback</text><line x1="24" y1="193.6" x2="666" y2="193.6" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="214.6" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit mișcarea 99.80 — sub el nu mai e pullback</text><line x1="24" y1="182.8" x2="666" y2="182.8" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="176.8" fill="#c00" text-anchor="end" style="font-weight:bold">cel mai jos punct al pullback-ului 99.90</text>
<line x1="66.0" y1="96.4" x2="66.0" y2="128.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="60.5" y="107.2" width="11" height="16.2" fill="#c00"/>
@@ -496,7 +496,7 @@ minim recent sub care ideea să fie moartă.</p>
</g>
<text x="24" y="703" fill="#555">Ambele panouri: 3 minute, serie construită, aceleași cifre ca în diagrama de ansamblu.</text>
<text x="24" y="720" fill="#555">Pullback nu înseamnă „nu mai face minim nou": înseamnă că nu rupe minimul din care a pornit mișcarea.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: secventa -->
<p>Sus, pullback corect: nouă bare de 3 minute care coboară de la 100.45 până la
@@ -526,7 +526,7 @@ treilea, ai altă strategie, construită din alegerile tale, cu o statistică pe
care n-o cunoaște nimeni. Iar dacă ai ratat semnalul, ai ratat trade-ul: nu
intri pe amintirea lui.</p>
<!-- DIAGRAMA: trigger -->
<p><svg viewBox="0 0 680 662" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 680 662" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">DA — bara se închide peste capăt</text><rect x="253.0" y="83.2" width="86.0" height="103.2" fill="#188a3e" fill-opacity="0.12" stroke="#188a3e" stroke-width="1"/><text x="259.0" y="76.2" fill="#188a3e" style="font-weight:bold">aici se decide intrarea</text><line x1="24" y1="159.7" x2="666" y2="159.7" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="180.7" fill="#555" text-anchor="end" style="font-weight:bold">capătul pullback-ului 100.08</text><text x="656" y="194.7" fill="#555" text-anchor="end" style="font-weight:bold">peste el trebuie ÎNCHIS, nu doar atins</text>
<line x1="56.0" y1="95.2" x2="56.0" y2="126.4" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="50.0" y="105.6" width="12" height="15.6" fill="#c00"/>
@@ -601,7 +601,7 @@ intri pe amintirea lui.</p>
</g>
<text x="24" y="622" fill="#555">Primele 9 bare sunt identice pe ambele panouri; se schimbă doar ce urmează.</text>
<text x="24" y="639" fill="#555">Trigger-ul se citește pe bară ÎNCHISĂ, nu pe fitil — la fel se citește și ieșirea pe trail (pasul 5).</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: trigger -->
<p>Sus: capătul pullback-ului e 100.08 și bara se închide la 100.40, peste el —
@@ -621,7 +621,7 @@ ele și pui stopul acolo. La short: cea mai înaltă.</strong></p>
capitolul. Materialul <strong>nu explică de ce 4</strong> bare; o tratează ca regulă
mecanică, iar eu n-o să inventez o justificare.</p>
<!-- DIAGRAMA: stop -->
<p><svg viewBox="0 0 680 765" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 680 765" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><text x="24" y="22" fill="#c00" style="font-weight:bold">Metoda de bază — cele 4 bare</text><rect x="253.0" y="71.0" width="128.0" height="128.5" fill="#c00" fill-opacity="0.12" stroke="#c00" stroke-width="1"/><text x="259.0" y="64.0" fill="#c00" style="font-weight:bold">4 bare, numărate de la trigger înapoi</text><line x1="24" y1="116.5" x2="666" y2="116.5" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="110.5" fill="#188a3e" text-anchor="end" style="font-weight:bold">intrare 100.40</text><line x1="24" y1="191.5" x2="666" y2="191.5" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/><text x="30" y="212.5" fill="#c00" text-anchor="start" style="font-weight:bold">stop 99.90 — risc 0.50 pe acțiune (0,50 %)</text>
<line x1="62.0" y1="71.5" x2="62.0" y2="116.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="55.5" y="86.5" width="13" height="22.5" fill="#c00"/>
@@ -690,7 +690,7 @@ mecanică, iar eu n-o să inventez o justificare.</p>
<text x="24" y="708" fill="#555">Jos: din curs sunt reale doar 517.78, ATR(10) = 2.88, 512.02 și 512.87; restul barelor sunt construite.</text>
<text x="24" y="725" fill="#555">ATR-ul dă un stop mai larg, deci un risc mai mare pe acțiune — și, la același</text>
<text x="24" y="742" fill="#555">risc în dolari, mai puține acțiuni.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: stop -->
<p>Sus, exemplul construit: cea mai joasă bară dintre cele 4 are minimul 99.90,
@@ -734,7 +734,7 @@ dedesubt, iar restul poziției îl ții pe trailing stop până la prima bară
low-uri. Regula standard rămâne cea de mai sus.</li>
</ol>
<!-- DIAGRAMA: iesire -->
<p><svg viewBox="0 0 680 737" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 680 737" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">LONG — bull trail: linia urcă, nu coboară</text><line x1="126.0" y1="250.0" x2="166.0" y2="250.0" stroke="#b06000" stroke-width="2"/><line x1="166.0" y1="227.5" x2="206.0" y2="227.5" stroke="#b06000" stroke-width="2"/><line x1="166.0" y1="250.0" x2="166.0" y2="227.5" stroke="#b06000" stroke-width="1.2" stroke-dasharray="2 2"/><line x1="206.0" y1="205.0" x2="246.0" y2="205.0" stroke="#b06000" stroke-width="2"/><line x1="206.0" y1="227.5" x2="206.0" y2="205.0" stroke="#b06000" stroke-width="1.2" stroke-dasharray="2 2"/><line x1="246.0" y1="170.5" x2="286.0" y2="170.5" stroke="#b06000" stroke-width="2"/><line x1="246.0" y1="205.0" x2="246.0" y2="170.5" stroke="#b06000" stroke-width="1.2" stroke-dasharray="2 2"/><line x1="286.0" y1="170.5" x2="326.0" y2="170.5" stroke="#b06000" stroke-width="2"/><line x1="326.0" y1="160.0" x2="366.0" y2="160.0" stroke="#b06000" stroke-width="2"/><line x1="326.0" y1="170.5" x2="326.0" y2="160.0" stroke="#b06000" stroke-width="1.2" stroke-dasharray="2 2"/><line x1="366.0" y1="115.0" x2="406.0" y2="115.0" stroke="#b06000" stroke-width="2"/><line x1="366.0" y1="160.0" x2="366.0" y2="115.0" stroke="#b06000" stroke-width="1.2" stroke-dasharray="2 2"/><line x1="406.0" y1="115.0" x2="446.0" y2="115.0" stroke="#b06000" stroke-width="2"/><line x1="446.0" y1="115.0" x2="486.0" y2="115.0" stroke="#b06000" stroke-width="2"/><line x1="24" y1="167.5" x2="666" y2="167.5" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="161.5" fill="#188a3e" text-anchor="end" style="font-weight:bold">TP1 100.90 = 1:1</text><line x1="24" y1="242.5" x2="666" y2="242.5" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="263.5" fill="#188a3e" text-anchor="end" style="font-weight:bold">intrare 100.40</text><line x1="24" y1="317.5" x2="666" y2="317.5" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/><text x="30" y="338.5" fill="#c00" text-anchor="start" style="font-weight:bold">stop 99.90 (pasul 4)</text>
<line x1="66.0" y1="290.5" x2="66.0" y2="311.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="59.0" y="299.5" width="14" height="6.0" fill="#188a3e"/>
@@ -808,7 +808,7 @@ dedesubt, iar restul poziției îl ții pe trailing stop până la prima bară
<text x="24" y="680" fill="#555">Serii construite, aceleași cifre ca în restul capitolului.</text>
<text x="24" y="697" fill="#555">Scara portocalie e linia de trail, palier cu palier.</text>
<text x="24" y="714" fill="#555">Panoul de jos e panoul de sus oglindit în jurul lui 100.00, calculat, nu desenat din ochi.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: iesire -->
<p>Sus, long: prima tranșă iese la 100.90. Scara portocalie e linia de trail,
@@ -834,7 +834,7 @@ ultimele 4 bare, ținta la aceeași distanță în jos, iar linia de trail coboa
în loc să urce. Diagrama de la pasul 5 arată oglinda pe serie construită; mai
jos e singurul trade short cu cifre reale din material.</p>
<!-- DIAGRAMA: exemplu -->
<p><svg viewBox="0 0 700 444" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 700 444" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="48" fill="#333" style="font-weight:bold">RIOT — 3 min (TF mare 15 min în Sell)</text>
<line x1="24" y1="56.0" x2="686" y2="56.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="672" y="50.0" fill="#c00" text-anchor="end">SL 100.85 = +0.85%</text>
@@ -968,7 +968,7 @@ jos e singurul trade short cu cifre reale din material.</p>
<line x1="456.5" y1="266.0" x2="456.5" y2="291.2" stroke="#b06000" stroke-width="1.2" stroke-dasharray="2 2"/>
<line x1="471.5" y1="291.2" x2="486.5" y2="291.2" stroke="#b06000" stroke-width="2"/>
<text x="233.0" y="71.4" fill="#b06000" text-anchor="end" style="font-weight:bold">bear trail</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: exemplu -->
<p><strong>Riot, TF mare 15 minute, TF mic 3 minute.</strong> Graficul de 15 minute intră în

View File

@@ -324,67 +324,67 @@ pereche își are propria statistică, iar tu n-ai măsurat-o pe a ta.
<!-- DIAGRAMA: directie -->
<svg viewBox="0 0 680 681" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">DA — 15 min e încă în Buy când vine trigger-ul de pe 3 min</text><rect x="284.0" y="48.4" width="132.0" height="85.7" fill="#188a3e" fill-opacity="0.12" stroke="#188a3e" stroke-width="1"/><text x="290.0" y="41.4" fill="#188a3e" style="font-weight:bold">zona în care ai voie long</text><line x1="24" y1="89.3" x2="666" y2="89.3" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="83.3" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="126.1" x2="666" y2="126.1" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="147.1" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit mișcarea 99.80</text>
<line x1="74.0" y1="192.8" x2="74.0" y2="215.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="66.5" y="197.4" width="15" height="11.5" fill="#188a3e"/>
<line x1="120.0" y1="176.7" x2="120.0" y2="202.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="112.5" y="181.3" width="15" height="16.1" fill="#188a3e"/>
<line x1="166.0" y1="158.3" x2="166.0" y2="185.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="158.5" y="162.9" width="15" height="18.4" fill="#188a3e"/>
<line x1="212.0" y1="142.2" x2="212.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="204.5" y="149.1" width="15" height="13.8" fill="#188a3e"/>
<line x1="258.0" y1="119.2" x2="258.0" y2="153.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="250.5" y="123.8" width="15" height="25.3" fill="#188a3e"/>
<line x1="304.0" y1="82.4" x2="304.0" y2="126.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="296.5" y="89.3" width="15" height="34.5" fill="#188a3e"/>
<line x1="350.0" y1="84.7" x2="350.0" y2="116.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="342.5" y="89.3" width="15" height="25.3" fill="#c00"/>
<line x1="396.0" y1="96.2" x2="396.0" y2="121.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="388.5" y="98.5" width="15" height="16.1" fill="#188a3e"/>
<line x1="442.0" y1="64.0" x2="442.0" y2="100.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="434.5" y="70.9" width="15" height="27.6" fill="#188a3e"/>
<line x1="244.0" y1="247.9" x2="300.4" y2="137.2" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="304.0,130.1 303.9,139.0 296.8,135.4" fill="#0891b2"/>
<text x="244.0" y="261.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="244.0" y="275.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="320.0" y1="201.5" x2="347.2" y2="128.4" stroke="#555" stroke-width="1.8"/>
<polygon points="350.0,120.9 351.0,129.8 343.5,127.0" fill="#555"/>
<text x="320.0" y="215.5" fill="#555" text-anchor="middle" style="font-weight:bold">candelă roșie pe 15 min, dar close-ul</text>
<text x="320.0" y="229.5" fill="#555" text-anchor="middle" style="font-weight:bold">rămâne peste 99.80: pullback, nu întoarcere</text>
<line x1="372.0" y1="74.0" x2="389.6" y2="87.4" stroke="#188a3e" stroke-width="1.8"/>
<polygon points="396.0,92.2 387.2,90.6 392.0,84.2" fill="#188a3e"/>
<text x="372.0" y="69.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">aici cade trigger-ul de pe 3 min</text>
<g transform="translate(0,0)"><text x="24" y="22" fill="#188a3e" style="font-weight:bold">DA — 15 min e încă în Buy când vine trigger-ul de pe 3 min</text><rect x="270.0" y="48.4" width="132.0" height="85.7" fill="#188a3e" fill-opacity="0.12" stroke="#188a3e" stroke-width="1"/><text x="276.0" y="41.4" fill="#188a3e" style="font-weight:bold">zona în care ai voie long</text><line x1="24" y1="89.3" x2="666" y2="89.3" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="83.3" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="126.1" x2="666" y2="126.1" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="147.1" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit</text><text x="30" y="161.1" fill="#555" text-anchor="start" style="font-weight:bold">mișcarea 99.80</text>
<line x1="60.0" y1="192.8" x2="60.0" y2="215.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="52.5" y="197.4" width="15" height="11.5" fill="#188a3e"/>
<line x1="106.0" y1="176.7" x2="106.0" y2="202.0" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="98.5" y="181.3" width="15" height="16.1" fill="#188a3e"/>
<line x1="152.0" y1="158.3" x2="152.0" y2="185.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="144.5" y="162.9" width="15" height="18.4" fill="#188a3e"/>
<line x1="198.0" y1="142.2" x2="198.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="190.5" y="149.1" width="15" height="13.8" fill="#188a3e"/>
<line x1="244.0" y1="119.2" x2="244.0" y2="153.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="236.5" y="123.8" width="15" height="25.3" fill="#188a3e"/>
<line x1="290.0" y1="82.4" x2="290.0" y2="126.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="282.5" y="89.3" width="15" height="34.5" fill="#188a3e"/>
<line x1="336.0" y1="84.7" x2="336.0" y2="116.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="328.5" y="89.3" width="15" height="25.3" fill="#c00"/>
<line x1="382.0" y1="96.2" x2="382.0" y2="121.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="374.5" y="98.5" width="15" height="16.1" fill="#188a3e"/>
<line x1="428.0" y1="64.0" x2="428.0" y2="100.8" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="420.5" y="70.9" width="15" height="27.6" fill="#188a3e"/>
<line x1="230.0" y1="247.9" x2="286.4" y2="137.2" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="290.0,130.1 289.9,139.0 282.8,135.4" fill="#0891b2"/>
<text x="230.0" y="261.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="230.0" y="275.9" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="306.0" y1="201.5" x2="333.2" y2="128.4" stroke="#555" stroke-width="1.8"/>
<polygon points="336.0,120.9 337.0,129.8 329.5,127.0" fill="#555"/>
<text x="306.0" y="215.5" fill="#555" text-anchor="middle" style="font-weight:bold">candelă roșie pe 15 min, dar close-ul</text>
<text x="306.0" y="229.5" fill="#555" text-anchor="middle" style="font-weight:bold">rămâne peste 99.80: pullback, nu întoarcere</text>
<line x1="358.0" y1="74.0" x2="375.6" y2="87.4" stroke="#188a3e" stroke-width="1.8"/>
<polygon points="382.0,92.2 373.2,90.6 378.0,84.2" fill="#188a3e"/>
<text x="358.0" y="69.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">aici cade trigger-ul de pe 3 min</text>
</g>
<g transform="translate(0,311)"><text x="24" y="22" fill="#c00" style="font-weight:bold">NU — 15 min s-a închis Sell: setup-ul long e anulat</text><rect x="376.0" y="85.9" width="86.0" height="85.0" fill="#c00" fill-opacity="0.12" stroke="#c00" stroke-width="1"/><text x="382.0" y="78.9" fill="#c00" style="font-weight:bold">setup anulat</text><line x1="24" y1="70.9" x2="666" y2="70.9" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="64.9" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="107.7" x2="666" y2="107.7" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="128.7" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit mișcarea 99.80</text>
<line x1="74.0" y1="174.4" x2="74.0" y2="197.4" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="66.5" y="179.0" width="15" height="11.5" fill="#188a3e"/>
<line x1="120.0" y1="158.3" x2="120.0" y2="183.6" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="112.5" y="162.9" width="15" height="16.1" fill="#188a3e"/>
<line x1="166.0" y1="139.9" x2="166.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="158.5" y="144.5" width="15" height="18.4" fill="#188a3e"/>
<line x1="212.0" y1="123.8" x2="212.0" y2="149.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="204.5" y="130.7" width="15" height="13.8" fill="#188a3e"/>
<line x1="258.0" y1="100.8" x2="258.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="250.5" y="105.4" width="15" height="25.3" fill="#188a3e"/>
<line x1="304.0" y1="64.0" x2="304.0" y2="107.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="296.5" y="70.9" width="15" height="34.5" fill="#188a3e"/>
<line x1="350.0" y1="66.3" x2="350.0" y2="98.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="342.5" y="70.9" width="15" height="25.3" fill="#c00"/>
<line x1="396.0" y1="93.9" x2="396.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="388.5" y="96.2" width="15" height="34.5" fill="#c00"/>
<line x1="442.0" y1="126.1" x2="442.0" y2="162.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="434.5" y="130.7" width="15" height="25.3" fill="#c00"/>
<line x1="244.0" y1="229.5" x2="300.4" y2="118.8" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="304.0,111.7 303.9,120.6 296.8,117.0" fill="#0891b2"/>
<text x="244.0" y="243.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="244.0" y="257.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="356.0" y1="190.9" x2="391.1" y2="145.6" stroke="#c00" stroke-width="1.8"/>
<polygon points="396.0,139.3 394.3,148.1 387.9,143.2" fill="#c00"/>
<text x="356.0" y="204.9" fill="#c00" text-anchor="middle" style="font-weight:bold">close 99.30, sub 99.80: direcția mare</text>
<text x="356.0" y="218.9" fill="#c00" text-anchor="middle" style="font-weight:bold">s-a răsucit — nu mai intri long</text>
<line x1="322.0" y1="274.9" x2="436.1" y2="172.3" stroke="#c00" stroke-width="1.8"/>
<polygon points="442.0,166.9 438.7,175.2 433.4,169.3" fill="#c00"/>
<text x="322.0" y="288.9" fill="#c00" text-anchor="middle" style="font-weight:bold">de aici cauți short, nu long</text>
<g transform="translate(0,311)"><text x="24" y="22" fill="#c00" style="font-weight:bold">NU — 15 min s-a închis Sell: setup-ul long e anulat</text><rect x="362.0" y="85.9" width="86.0" height="85.0" fill="#c00" fill-opacity="0.12" stroke="#c00" stroke-width="1"/><text x="368.0" y="78.9" fill="#c00" style="font-weight:bold">setup anulat</text><line x1="24" y1="70.9" x2="666" y2="70.9" stroke="#0891b2" stroke-width="1.5" stroke-dasharray="4 3"/><text x="656" y="64.9" fill="#0891b2" text-anchor="end" style="font-weight:bold">close-ul candelei de semnal 100.60</text><line x1="24" y1="107.7" x2="666" y2="107.7" stroke="#555" stroke-width="1.5" stroke-dasharray="2 3"/><text x="30" y="128.7" fill="#555" text-anchor="start" style="font-weight:bold">minimul din care a pornit</text><text x="30" y="142.7" fill="#555" text-anchor="start" style="font-weight:bold">mișcarea 99.80</text>
<line x1="60.0" y1="174.4" x2="60.0" y2="197.4" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="52.5" y="179.0" width="15" height="11.5" fill="#188a3e"/>
<line x1="106.0" y1="158.3" x2="106.0" y2="183.6" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="98.5" y="162.9" width="15" height="16.1" fill="#188a3e"/>
<line x1="152.0" y1="139.9" x2="152.0" y2="167.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="144.5" y="144.5" width="15" height="18.4" fill="#188a3e"/>
<line x1="198.0" y1="123.8" x2="198.0" y2="149.1" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="190.5" y="130.7" width="15" height="13.8" fill="#188a3e"/>
<line x1="244.0" y1="100.8" x2="244.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="236.5" y="105.4" width="15" height="25.3" fill="#188a3e"/>
<line x1="290.0" y1="64.0" x2="290.0" y2="107.7" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="282.5" y="70.9" width="15" height="34.5" fill="#188a3e"/>
<line x1="336.0" y1="66.3" x2="336.0" y2="98.5" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="328.5" y="70.9" width="15" height="25.3" fill="#c00"/>
<line x1="382.0" y1="93.9" x2="382.0" y2="135.3" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="374.5" y="96.2" width="15" height="34.5" fill="#c00"/>
<line x1="428.0" y1="126.1" x2="428.0" y2="162.9" stroke="#1a1a1a" stroke-width="1.2"/>
<rect x="420.5" y="130.7" width="15" height="25.3" fill="#c00"/>
<line x1="230.0" y1="229.5" x2="286.4" y2="118.8" stroke="#0891b2" stroke-width="1.8"/>
<polygon points="290.0,111.7 289.9,120.6 282.8,117.0" fill="#0891b2"/>
<text x="230.0" y="243.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">Buy Momentum pe 15 min:</text>
<text x="230.0" y="257.5" fill="#0891b2" text-anchor="middle" style="font-weight:bold">de aici ai voie doar long</text>
<line x1="342.0" y1="190.9" x2="377.1" y2="145.6" stroke="#c00" stroke-width="1.8"/>
<polygon points="382.0,139.3 380.3,148.1 373.9,143.2" fill="#c00"/>
<text x="342.0" y="204.9" fill="#c00" text-anchor="middle" style="font-weight:bold">close 99.30, sub 99.80: direcția mare</text>
<text x="342.0" y="218.9" fill="#c00" text-anchor="middle" style="font-weight:bold">s-a răsucit — nu mai intri long</text>
<line x1="308.0" y1="274.9" x2="422.1" y2="172.3" stroke="#c00" stroke-width="1.8"/>
<polygon points="428.0,166.9 424.7,175.2 419.4,169.3" fill="#c00"/>
<text x="308.0" y="288.9" fill="#c00" text-anchor="middle" style="font-weight:bold">de aici cauți short, nu long</text>
</g>
<text x="24" y="641" fill="#555">Același grafic de 15 minute ca în diagrama de ansamblu; serie construită, fără ticker.</text>
<text x="24" y="658" fill="#555">Pe 15 min se citește DIRECȚIA, nu intrarea. Intrarea vine de pe 3 min (pasul 3).</text>

View File

@@ -83,7 +83,7 @@ nu pui stop, și vinzi <strong>toată</strong> poziția când ai +10 %. Banii st
la următoarea ocazie, unde intră înapoi integral, plus o contribuție nouă.</p>
<p>Tot trade-ul, pe structura exemplului din curs:</p>
<!-- DIAGRAMA: ansamblu -->
<p><svg viewBox="0 0 720 510" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 720 510" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<rect x="24" y="297.0" width="682" height="13.2" fill="#7b2fbf" opacity="0.10"/><text x="28" y="324.2" fill="#7b2fbf">zona PPQ 95.80 — aici cumperi</text>
<text x="367" y="345.2" fill="#c00" text-anchor="middle">fără stop-loss standard — nicio linie sub intrare</text>
<text x="24" y="26" fill="#333" style="font-weight:bold">SPY — daily: corecție ≥4 % → zona PPQ → BIM + verde → intrare → TP +10 %</text>
@@ -197,7 +197,7 @@ la următoarea ocazie, unde intră înapoi integral, plus o contribuție nouă.<
<text x="571.0" y="149.8" fill="#1a5fb4" text-anchor="middle" style="font-weight:bold">ieși cu tot</text>
<text x="24" y="481" fill="#555">100.00 / 96.00 / 105.60 sunt cifrele exemplului din curs; PPQ 95.80 e calculat</text>
<text x="24" y="498" fill="#555">în diagrama pasului 1 (cursul nu dă valorile pivoților).</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: ansamblu -->
<p>De la stânga la dreapta: prețul urcă până la un maxim de <strong>100.00</strong>, cade 4,0 %
@@ -318,7 +318,7 @@ prag de volum sau de preț pentru ATMI; singura grijă de lichiditate apare mai
târziu, la ETF-urile cu levier.</p>
<p>Nivelurile se calculează o dată la trei luni și rămân fixe pe tot trimestrul.</p>
<!-- DIAGRAMA: pivoti -->
<p><svg viewBox="0 0 720 401" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 720 401" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="22" fill="#333" style="font-weight:bold">SPY — daily: pivoții trimestrului nou, calculați din trimestrul precedent</text>
<rect x="24" y="34" width="430" height="54" fill="#f4f4f8" stroke="#ccc"/>
<text x="46" y="110" fill="#777" style="font-size:11px;font-weight:bold">trimestrul precedent</text>
@@ -442,7 +442,7 @@ târziu, la ETF-urile cu levier.</p>
<text x="484.0" y="124.4" fill="#c00" text-anchor="middle" style="font-weight:bold">swing high 100.00</text>
<text x="532.0" y="225.5" fill="#7b2fbf" text-anchor="middle" style="font-weight:bold">corecție 4,0 % — prețul intră în zona PPQ: treci la pasul 2</text>
<text x="24" y="389" fill="#555">Completare proprie: PPQ/SQ calculate din serie; cursul dă regula, nu valorile. Formula standard, confirmată în material.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: pivoti -->
<p>Din trimestrul precedent iei maximul <strong>100.80</strong>, minimul <strong>90.40</strong> și
@@ -466,7 +466,7 @@ chiar e mare. Pragul e al cursului și e dur: în material există cazul unei
corecții de <strong>3,93 %</strong> (graficul lecției scrie 3,9 %) care <strong>nu</strong> se
marchează, oricât de abruptă pare linia.</p>
<!-- DIAGRAMA: corectie -->
<p><svg viewBox="0 0 680 557" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 680 557" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<rect x="24" y="233.5" width="642" height="12.6" fill="#7b2fbf" opacity="0.12"/>
<text x="24" y="48" fill="#333" style="font-weight:bold">SPY — daily: aceeași corecție, 4.0 % (DA) vs. 3.9 % (NU)</text>
<line x1="24" y1="173.6" x2="666" y2="173.6" stroke="#333" stroke-width="1.5" stroke-dasharray="4 3"/>
@@ -584,7 +584,7 @@ marchează, oricât de abruptă pare linia.</p>
<text x="30" y="280.1" fill="#7b2fbf">zona PPQ 95.80 — aici cumperi</text>
<text x="24" y="202.0" fill="#188a3e" style="font-weight:bold">calea DA (candelele)</text>
<text x="444.0" y="298.1" fill="#c00" style="font-weight:bold">calea NU (continuă în jos)</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: corectie -->
<p>Ambele trasee pornesc din același swing high, <strong>100.00</strong>. Calea desenată cu
@@ -607,7 +607,7 @@ cobori pe graficul zilnic ca să vezi unde s-a oprit.</strong></p>
oprit: o singură candelă înghite o săptămână întreagă. De asta pasul ăsta are
două panouri.</p>
<!-- DIAGRAMA: perechi_tf -->
<p><svg viewBox="0 0 720 370" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 720 370" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<defs><marker id="pt" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#c00"/></marker></defs>
<text x="20.0" y="22.0" fill="#333" style="font-size:13px;font-weight:bold">Nivelul trăiește pe weekly, declanșatorul pe daily</text>
<text x="20.0" y="38.0" fill="#555" style="font-size:11px">Fiecare candelă weekly din casetă = 5 bare daily (o săptămână de bursă):</text>
@@ -694,7 +694,7 @@ două panouri.</p>
<text x="568.0" y="322.0" fill="#0a7f9e" text-anchor="middle" style="font-size:11px;font-weight:bold">BIM: aici se oprește vânzarea</text>
<text x="568.0" y="336.0" fill="#0a7f9e" text-anchor="middle" style="font-size:10px">(fundul e la 0,26 % de PPQ)</text>
<text x="20.0" y="352.0" fill="#555" style="font-size:11px">Pe weekly nu vezi unde s-a oprit căderea; pe daily, da — de aceea intri de aici.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: perechi_tf -->
<p>În stânga, săptămânalul: swing high-ul <strong>100.00</strong>, scăderea de 4,0 % și cele
@@ -720,7 +720,7 @@ vânzarea s-a terminat. BIM e ce adaugă informația care lipsește — momentul
care presiunea de vânzare se oprește — iar candela verde de după el e dovada
că cineva chiar cumpără.</p>
<!-- DIAGRAMA: trigger -->
<p><svg viewBox="0 0 660 821" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 660 821" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<g transform="translate(0,0)"><rect x="225.0" y="149.3" width="78.0" height="75.7" fill="#1a5fb4" fill-opacity="0.12" stroke="#1a5fb4" stroke-width="1"/><text x="231.0" y="142.3" fill="#1a5fb4" style="font-weight:bold">zona de decizie: BIM + verde</text><line x1="24" y1="205.5" x2="646" y2="205.5" stroke="#7b2fbf" stroke-width="1.5" stroke-dasharray="4 3"/><text x="30" y="220.5" fill="#7b2fbf" style="font-weight:bold">PPQ 95.80 — pivotul trimestrial</text>
<text x="24" y="48" fill="#333" style="font-weight:bold">DA — BIM, apoi prima candelă verde daily</text>
<line x1="66.0" y1="56.0" x2="66.0" y2="83.6" stroke="#1a1a1a" stroke-width="1.2"/>
@@ -781,7 +781,7 @@ că cineva chiar cumpără.</p>
</g>
<text x="24" y="797" fill="#555">Aceleași patru bare de corecție pe ambele panouri, aceeași scară.</text>
<text x="24" y="813" fill="#555">PPQ 95.80 e calculat în diagrama pasului 1; intrarea 96.00 e close-ul candelei verzi.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: trigger -->
<p>Ambele panouri pornesc din exact aceleași patru bare de corecție. Sus, cazul
@@ -808,7 +808,7 @@ indicelui. Un stop ar transforma o teză de un an într-o ieșire pe zgomot de
două săptămâni.</p>
<p>Prețul îl plătești în drum:</p>
<!-- DIAGRAMA: risc -->
<p><svg viewBox="0 0 720 441" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 720 441" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="24" fill="#333" style="font-weight:bold">SPY — daily: fără stop, între intrare și țintă treci prin toată căderea</text>
<text x="24" y="42" fill="#555" style="font-size:11px">24 de bare sub prețul de intrare, fără niciun ordin care să te scoată — ăsta e costul regulii „fără stop-loss".</text>
<rect x="424" y="58" width="284" height="76" fill="#fff4f4" stroke="#c00" stroke-opacity="0.5"/>
@@ -933,7 +933,7 @@ două săptămâni.</p>
<text x="488.0" y="171.8" fill="#777" text-anchor="middle" style="font-weight:bold">abia aici ești pe zero</text>
<text x="600.0" y="180.1" fill="#1a5fb4" text-anchor="middle" style="font-weight:bold">TP</text>
<text x="24" y="429" fill="#555">Cifra de 20-30 % pe poziție fără levier e a cursului; Completare proprie: traseul barelor, ca să se vadă cât durează.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: risc -->
<p>Același trade: intrare <strong>96.00</strong>, țintă <strong>105.60</strong>. Între ele, poziția coboară
@@ -971,7 +971,7 @@ ajung la +10 % cam în aceeași perioadă. Autorul le compară cu mai multe
depozite cu scadențe diferite.</p>
<p>Partea care produce rezultatul nu e ținta, e ce faci cu banii după:</p>
<!-- DIAGRAMA: reinvestire -->
<p><svg viewBox="0 0 700 398" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 700 398" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<defs><marker id="ar" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#1a5fb4"/></marker></defs>
<text x="20.0" y="22.0" fill="#333" style="font-size:13px;font-weight:bold">Ciclul ATMI: ieși cu tot la +10 %, stai în cash, reintri cu tot plus contribuția</text>
<text x="20.0" y="40.0" fill="#555" style="font-size:11px">Contribuție 600 $ la fiecare trigger valid; ținta +10 % pe poziție.</text>
@@ -1008,7 +1008,7 @@ depozite cu scadențe diferite.</p>
<text x="34.0" y="342.0" fill="#333" style="font-size:11px;font-weight:bold">Ai pus în total 1.800 $, în trei contribuții egale.</text>
<text x="34.0" y="359.0" fill="#333" style="font-size:11px">Cu reinvestire integrală: 2.184,60 $ · dacă lași profitul deoparte: 1.980 $ · diferența: 204,60 $</text>
<text x="34.0" y="376.0" fill="#777" style="font-size:10px">Completare proprie: cifrele astea sunt calculate pe trei cicluri, nu backtest-ul cursului.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: reinvestire -->
<p>Trei cicluri, cu aceeași contribuție de 600 $ la fiecare semnal valid. Cu
@@ -1128,7 +1128,7 @@ vezi <a href="00_harta.html"><code>00_harta.md</code></a>.</p>
<p>Singurul trade cu cifre din curs: intrare pe <strong>27 ianuarie 2005 la 117.43</strong>,
țintă +10 % = <strong>129.17</strong>, atinsă „aproximativ un an mai târziu".</p>
<!-- DIAGRAMA: exemplu -->
<p><svg viewBox="0 0 660 380" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<svg viewBox="0 0 660 380" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
<text x="24" y="48" fill="#333" style="font-weight:bold">SPY — monthly: intrare ianuarie 2005 la 117.43 → TP1 +10 % = 129.17</text>
<line x1="24" y1="167.5" x2="646" y2="167.5" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/>
<text x="632" y="161.5" fill="#188a3e" text-anchor="end">intrare 117.43</text>
@@ -1238,7 +1238,7 @@ vezi <a href="00_harta.html"><code>00_harta.md</code></a>.</p>
<text x="24" y="326.1" fill="#188a3e">după TP: capital + profit → cash până la următorul trigger valid</text>
<text x="24" y="343.1" fill="#188a3e">TP1: 13 candele lunare în desen; materialul spune „aproximativ un an" (ziua exactă e neclară în transcriere)</text>
<text x="24" y="368" fill="#555">Grafic lunar, ca să încapă orizontul poziției. Completare proprie: swing high-ul; restul e din material.</text>
</svg></p>
</svg>
<!-- /DIAGRAMA: exemplu -->
<p>Graficul e <strong>lunar</strong>, ca să încapă tot orizontul poziției: o candelă e o lună.
@@ -1264,7 +1264,7 @@ ATMI ca investiție pe luni-ani, cu ținta atinsă după circa un an. O sesiune
întrebări descrie aceeași strategie ca swing de <strong>două săptămâni</strong>, ca mijloc
de a te califica pe un cont de prop.</p>
<!-- DIAGRAMA: orizont -->
<p><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 670" width="700" height="670" role="img" aria-label="Orizontul de tinere al ATMI: fisiarul principal spune luni pana la un an, adaptarea pentru prop spune doua saptamani; cele doua descrieri raman nerezolvate">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 670" width="700" height="670" role="img" aria-label="Orizontul de tinere al ATMI: fisiarul principal spune luni pana la un an, adaptarea pentru prop spune doua saptamani; cele doua descrieri raman nerezolvate">
<g font-family="system-ui, sans-serif">
<rect x="0" y="0" width="700" height="670" fill="#ffffff"/>
<text x="350.0" y="34.0" font-size="19" font-weight="700" fill="#000000" text-anchor="middle">Cât ții poziția? Două descrieri, același nume</text>
@@ -1296,7 +1296,7 @@ de a te califica pe un cont de prop.</p>
<rect x="60.0" y="298.0" width="22.7" height="42" rx="6" fill="#fdf0e0" stroke="#b06000" stroke-width="1.5"/>
<line x1="82.7" y1="290.0" x2="82.7" y2="360.0" stroke="#b06000" stroke-width="1.2" stroke-dasharray="4 3"/>
<line x1="82.7" y1="319.0" x2="160.0" y2="319.0" stroke="#b06000" stroke-width="1.0" stroke-dasharray="3 3"/>
<text x="90.0" y="312.0" font-size="11" font-weight="700" fill="#b06000" text-anchor="start">2 săptămâni</text>
<text x="72.0" y="368.0" font-size="11" font-weight="700" fill="#b06000" text-anchor="start">2 săptămâni</text>
<rect x="160.0" y="292.0" width="500.0" height="112.0" rx="8" fill="#ffffff" stroke="#b06000" stroke-width="1.5"/>
<text x="410.0" y="316.0" font-size="13" font-weight="400" fill="#000000" text-anchor="middle">„aștepți o corecție și intri pe ATMI la suport quarterly,</text>
<text x="410.0" y="334.0" font-size="13" font-weight="400" fill="#000000" text-anchor="middle">swing, 2 săptămâni în poziție”</text>
@@ -1310,7 +1310,7 @@ de a te califica pe un cont de prop.</p>
<text x="60.0" y="560.0" font-size="13" font-weight="700" fill="#000000" text-anchor="start">Notă: cele două descrieri nu se rezolvă aici — de clarificat cu autorul.</text>
<text x="350.0" y="626.0" font-size="12" font-weight="400" fill="#777777" text-anchor="middle">Fără axe de preț și fără să alegem una dintre variante.</text>
<text x="350.0" y="646.0" font-size="12" font-weight="400" fill="#777777" text-anchor="middle">Bara de 2 săptămâni e scurtă exact pentru că atât ține, pe aceeași scară.</text>
</g></svg></p>
</g></svg>
<!-- /DIAGRAMA: orizont -->
<p>Cele două descrieri, pe aceeași axă de timp. Nu le rezolv aici: varianta de

View File

@@ -1270,7 +1270,7 @@ de a te califica pe un cont de prop.
<rect x="60.0" y="298.0" width="22.7" height="42" rx="6" fill="#fdf0e0" stroke="#b06000" stroke-width="1.5"/>
<line x1="82.7" y1="290.0" x2="82.7" y2="360.0" stroke="#b06000" stroke-width="1.2" stroke-dasharray="4 3"/>
<line x1="82.7" y1="319.0" x2="160.0" y2="319.0" stroke="#b06000" stroke-width="1.0" stroke-dasharray="3 3"/>
<text x="90.0" y="312.0" font-size="11" font-weight="700" fill="#b06000" text-anchor="start">2 săptămâni</text>
<text x="72.0" y="368.0" font-size="11" font-weight="700" fill="#b06000" text-anchor="start">2 săptămâni</text>
<rect x="160.0" y="292.0" width="500.0" height="112.0" rx="8" fill="#ffffff" stroke="#b06000" stroke-width="1.5"/>
<text x="410.0" y="316.0" font-size="13" font-weight="400" fill="#000000" text-anchor="middle">„aștepți o corecție și intri pe ATMI la suport quarterly,</text>
<text x="410.0" y="334.0" font-size="13" font-weight="400" fill="#000000" text-anchor="middle">swing, 2 săptămâni în poziție”</text>

View File

@@ -77,6 +77,8 @@ class Mark:
color: str = "#1a5fb4"
where: str = "above" # "above" | "below" — față de candelă
dy: float = 0.0 # ajustare fină, dacă se suprapune cu altceva
dx: float = 0.0 # idem, pe orizontală: la serii dese, singurul
# loc liber e lateral, nu mai sus (02.10.2026)
@dataclass
@@ -361,7 +363,7 @@ class Chart:
# etichete ancorate pe candele anume
for mk in self.marks:
cd = self.candles[mk.i]
cx = self._cx(mk.i)
cx = self._cx(mk.i) + mk.dx
if mk.where == "above":
y = self._y(cd.h) - 10 + mk.dy
else: