17_STRATEGII/10_dhrt: cele sase diagrame, plus doua unelte reparate
Diagramele capitolului 10 sunt gata (un singur generator pentru toate, aceeasi serie, deci o cifra schimbata cade peste tot). Textul capitolului nu e scris - agentul a atins pragul de context acolo. Doua bug-uri in unelte, gasite de el: - substituie.py avea glob-ul [0A][1-8]_*.md, deci sarea tacut peste capitolele cu doua cifre (09, 10). Capitolul parea doar sa n-aiba marcaje. - eticheta_libera presupunea text centrat cand eticheta n-are text-anchor. In SVG, fara anchor inseamna aliniat la stanga, deci etichetele de Level cu label_at=left erau modelate cu jumatate de latime prea mult la stanga si dadeau alarme false. L-a costat trei iteratii. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
@@ -23,7 +23,10 @@ def _bbox(m, min_px):
|
|||||||
"""Caseta etichetei, lărgită cu marginea cerută."""
|
"""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)
|
tx, ty, attrs, s = float(m.group(1)), float(m.group(2)), m.group(3), m.group(4)
|
||||||
w = CW * len(s)
|
w = CW * len(s)
|
||||||
x0 = tx if 'anchor="start"' in attrs else tx - w if 'anchor="end"' in attrs else tx - w / 2
|
# 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 - min_px, ty + 3 + min_px)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
570
gen/strategii/dhrt.py
Normal file
570
gen/strategii/dhrt.py
Normal file
@@ -0,0 +1,570 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Diagramele pentru summaries/17_STRATEGII/10_dhrt.md (strategia 8, DHRT).
|
||||||
|
|
||||||
|
Un singur generator pentru toate cele șase diagrame ale capitolului: toate
|
||||||
|
desenează același trade, pe aceeași serie, deci o cifră schimbată într-un loc
|
||||||
|
trebuie să cadă peste tot — de asta nu sunt șase fișiere.
|
||||||
|
|
||||||
|
REGULA DE CIFRE, din care iese tot restul fișierului: în lecția 8 (DHRT)
|
||||||
|
singurul preț rostit e **51** (ținta de pe XLF, varianta short — transcrierea
|
||||||
|
`05_7_STRATEGIA_8_DHRTMECANICĂ.txt:285`). Capitolul nu are diagramă cu XLF,
|
||||||
|
deci **niciun preț de pe diagramele de aici nu e al cursului**: toate vin din
|
||||||
|
exemplul construit de mine pe geometria lui, iar fiecare diagramă o declară
|
||||||
|
în titlu („exemplu construit"). Cifrele sunt aceleași cu ale sumarizării
|
||||||
|
lecției (`summaries/06_MODUL_5/05_strategia_8_dhrt.md`), ca să nu existe două
|
||||||
|
versiuni ale aceluiași trade în repo.
|
||||||
|
|
||||||
|
Geometria exemplului:
|
||||||
|
cap 52.00 · nivelul umerilor 58.50 · H = 6.50
|
||||||
|
treimea de jos: 52.00 .. 54.17 — stopul stă în ea, 54.17 e cel mai sus
|
||||||
|
la care are voie (riscul cel mai mic permis)
|
||||||
|
linia gâtului 63.00, trasată din interiorul gâtului (vârfurile ating 63.30)
|
||||||
|
intrare 65.00 (close-ul candelei de breakout) · R = 10.83 = 16,7% din preț
|
||||||
|
TP1 = 65.00 + 10.83 = 75.83 (distanța stopului)
|
||||||
|
TP2 = 63.00 + 11.00 = 74.00 (proiecția gâtului) — sub TP1, ordinea nu e fixă
|
||||||
|
|
||||||
|
Rulează: .venv/bin/python gen/strategii/dhrt.py
|
||||||
|
"""
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from dataclasses import replace
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
sys.path.insert(0, "/workspace/atm-curs-dl")
|
||||||
|
sys.path.insert(0, "/workspace/atm-curs-dl/gen")
|
||||||
|
from eticheta_libera import eticheta_libera # noqa: E402
|
||||||
|
from svg_candles import Arrow, Candle, Chart, Level, Mark, Zone, from_closes # noqa: E402
|
||||||
|
|
||||||
|
OUT = Path("/workspace/atm-curs-dl/gen/strategii")
|
||||||
|
GREEN, RED, BLUE, PURPLE, ORANGE, GREY, BLACK = (
|
||||||
|
"#188a3e", "#c00", "#1a5fb4", "#6a3d9a", "#b06000", "#555", "#333")
|
||||||
|
|
||||||
|
CAP, UMAR = 52.00, 58.50 # low-ul capului, nivelul umerilor
|
||||||
|
H = round(UMAR - CAP, 2) # 6.50 — înălțimea cap → umăr drept
|
||||||
|
TREIME = round(CAP + H / 3, 2) # 54.17 — marginea de sus a treimii
|
||||||
|
GAT, GAT_VARF = 63.00, 63.30 # linia gâtului / vârfurile zonei
|
||||||
|
ENTRY = 65.00
|
||||||
|
R = round(ENTRY - TREIME, 2) # 10.83
|
||||||
|
TP1 = round(ENTRY + R, 2) # 75.83
|
||||||
|
TP2 = round(GAT + (GAT - CAP), 2) # 74.00
|
||||||
|
CONS_SUS, CONS_JOS = GAT_VARF, UMAR # dreptunghiul umărului drept
|
||||||
|
CONS_JUM = round((CONS_SUS + CONS_JOS) / 2, 2) # 60.90 — jumătatea consolidării
|
||||||
|
|
||||||
|
assert H == 6.50 and TREIME == 54.17 and R == 10.83 and TP1 == 75.83 and TP2 == 74.00
|
||||||
|
assert TP2 < TP1, "pe exemplul ăsta TP1 iese peste TP2 — asta ilustrează capitolul"
|
||||||
|
assert round(R / ENTRY * 100, 1) == 16.7, round(R / ENTRY * 100, 1)
|
||||||
|
assert CONS_JUM == 60.90, CONS_JUM
|
||||||
|
|
||||||
|
SVG = {}
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------ utilitare
|
||||||
|
def panou(ch: Chart, w: int):
|
||||||
|
"""Corpul unui Chart, fără <svg>, plus înălțimea lui — pentru stivuire.
|
||||||
|
|
||||||
|
`_render()`, nu `render()`: al doilea restaurează `top`, iar liniile
|
||||||
|
desenate de mână după el ar ieși deplasate față de candele.
|
||||||
|
"""
|
||||||
|
svg = ch._render()
|
||||||
|
m = re.search(r'viewBox="0 0 ([\d.]+) ([\d.]+)"', svg)
|
||||||
|
assert m and float(m.group(1)) <= w, f"panoul iese din {w}px: {m.group(1) if m else '?'}"
|
||||||
|
return svg[svg.index(">") + 1:svg.rindex("</svg>")], float(m.group(2))
|
||||||
|
|
||||||
|
|
||||||
|
def nivel(ch, w, price, texte, color, below=False, la_stanga=True, x0=24):
|
||||||
|
"""Linie punctată + etichetă pe mai multe rânduri, desenată de mână."""
|
||||||
|
y = ch._y(price)
|
||||||
|
out = [f'<line x1="{x0}" y1="{y:.1f}" x2="{w - 14}" y2="{y:.1f}" stroke="{color}" '
|
||||||
|
f'stroke-width="1.5" stroke-dasharray="4 3"/>']
|
||||||
|
for k, s in enumerate(texte):
|
||||||
|
ty = (y + 15 + 14 * k) if below else (y - 6 - 14 * (len(texte) - 1 - k))
|
||||||
|
tx, anchor = (x0 + 6, "start") if la_stanga else (w - 24, "end")
|
||||||
|
out.append(f'<text x="{tx}" y="{ty:.1f}" fill="{color}" text-anchor="{anchor}" '
|
||||||
|
f'style="font-weight:bold">{s}</text>')
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
def zona(ch, i0, i1, label, color, sus=None, jos=None, lift=0.0, pad=10):
|
||||||
|
cds = ch.candles[i0:i1 + 1]
|
||||||
|
x0, x1 = ch._cx(i0) - pad, ch._cx(i1) + pad
|
||||||
|
y0 = ch._y(sus if sus is not None else max(c.h for c in cds)) - 8 - lift
|
||||||
|
y1 = ch._y(jos if jos is not None else min(c.l for c in cds)) + 8
|
||||||
|
return [f'<rect x="{x0:.1f}" y="{y0:.1f}" width="{x1 - x0:.1f}" height="{y1 - y0:.1f}" '
|
||||||
|
f'fill="{color}" fill-opacity="0.08" stroke="{color}" stroke-width="1"/>',
|
||||||
|
f'<text x="{x0:.1f}" y="{y0 - 7:.1f}" fill="{color}" '
|
||||||
|
f'style="font-weight:bold">{label}</text>']
|
||||||
|
|
||||||
|
|
||||||
|
def ancorate(ch: Chart) -> set:
|
||||||
|
"""Etichetele lipite prin construcție de ceva desenat: nivelurile (y − 6 față
|
||||||
|
de linia lor) și textele de săgeată (stau la capătul propriei cozi). Pentru
|
||||||
|
ele se verifică doar candelele, nu și segmentele."""
|
||||||
|
out = {lv.text for lv in ch.levels} | {mk.text for mk in ch.marks}
|
||||||
|
for a in ch.arrows:
|
||||||
|
out |= set(a.text.split("\n"))
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
def stiva(nume, w, panouri, captions, pe_linie=()):
|
||||||
|
"""Lipește panouri unul sub altul și verifică etichetele (pânză + suprapuneri)."""
|
||||||
|
parts, y, bodies = [], 0.0, []
|
||||||
|
for ch, extra in panouri:
|
||||||
|
body, h = panou(ch, w)
|
||||||
|
# extra se construiește DUPĂ randare: `_y()` are nevoie de `_pmax`,
|
||||||
|
# iar `_render()` mută `top` — altfel desenul de mână iese deplasat.
|
||||||
|
extra = list(extra(ch) if callable(extra) else extra)
|
||||||
|
parts.append(f'<g transform="translate(0,{y:.0f})">{"".join(extra)}{body}</g>')
|
||||||
|
bodies.append((body + "".join(extra), y, ancorate(ch) | set(pe_linie)))
|
||||||
|
y += h
|
||||||
|
cap_top = y + 18
|
||||||
|
height = cap_top + 17 * (len(captions) - 1) + 8
|
||||||
|
head = (f'<svg viewBox="0 0 {w} {height:.0f}" xmlns="http://www.w3.org/2000/svg" '
|
||||||
|
f'style="width:100%;height:auto;font:12px sans-serif">')
|
||||||
|
caps = []
|
||||||
|
for k, c in enumerate(captions):
|
||||||
|
assert "<" not in c and 24 + len(c) * 6.3 <= w, f"{nume}: caption iese din pânză: {c!r}"
|
||||||
|
caps.append(f'<text x="24" y="{cap_top + 17 * k:.0f}" fill="{GREY}">{c}</text>')
|
||||||
|
svg = "\n ".join([head, *parts, *caps, "</svg>"]).replace("\n </svg>", "\n</svg>")
|
||||||
|
verifica(nume, svg, w, height, bodies)
|
||||||
|
SVG[nume] = svg
|
||||||
|
return svg
|
||||||
|
|
||||||
|
|
||||||
|
def singur(nume, ch, w, extra=(), captions=(), pe_linie=()):
|
||||||
|
"""Un singur panou, pe aceeași cale de verificare ca stiva."""
|
||||||
|
return stiva(nume, w, [(ch, extra)], list(captions), pe_linie)
|
||||||
|
|
||||||
|
|
||||||
|
TEXT = re.compile(r'<text x="([-\d.]+)" y="([-\d.]+)"([^>]*)>(.*?)</text>', re.S)
|
||||||
|
|
||||||
|
|
||||||
|
def verifica(nume, svg, w, height, bodies):
|
||||||
|
"""Etichetele stau în pânză, nu se suprapun între ele și nu stau peste desen.
|
||||||
|
|
||||||
|
`pe_linie` = etichetele de nivel: alea stau lipite de linia lor prin
|
||||||
|
construcție (y − 6), deci pentru ele se verifică doar candelele.
|
||||||
|
"""
|
||||||
|
assert "\n\n" not in svg, f"{nume}: linie goală în SVG (markdown rupe blocul)"
|
||||||
|
for body, off, pe_linie in bodies:
|
||||||
|
toate = {m.group(4) for m in TEXT.finditer(body)}
|
||||||
|
eticheta_libera(body, nume, toate - pe_linie, rects=True)
|
||||||
|
eticheta_libera(body, nume, toate & pe_linie, rects=True, segmente=False)
|
||||||
|
et = []
|
||||||
|
for m in TEXT.finditer(body):
|
||||||
|
x, y, attrs, s = float(m.group(1)), float(m.group(2)) + off, m.group(3), m.group(4)
|
||||||
|
bold = "bold" in attrs
|
||||||
|
ww = len(s) * 12 * (0.62 if bold else 0.52)
|
||||||
|
left = (x - ww if 'anchor="end"' in attrs
|
||||||
|
else x - ww / 2 if 'anchor="middle"' in attrs else x)
|
||||||
|
et.append((left, left + ww, y, s))
|
||||||
|
assert left >= -2 and left + ww <= w + 2, f"{nume}: text iese din pânză: {s!r}"
|
||||||
|
assert 0 <= y <= height, f"{nume}: text în afara înălțimii: {s!r} (y={y:.0f})"
|
||||||
|
for i in range(len(et)):
|
||||||
|
for j in range(i + 1, len(et)):
|
||||||
|
li, ri, yi, si = et[i]
|
||||||
|
lj, rj, yj, sj = et[j]
|
||||||
|
if abs(yi - yj) < 12 and li < rj - 4 and lj < ri - 4:
|
||||||
|
raise AssertionError(f"{nume}: texte suprapuse: {si!r} / {sj!r}")
|
||||||
|
|
||||||
|
|
||||||
|
def check(cds, i0=None):
|
||||||
|
"""h/l cuprind o/c, și open = close-ul precedentei (serie fără goluri)."""
|
||||||
|
for i, c in enumerate(cds):
|
||||||
|
assert c.l <= min(c.o, c.c) and c.h >= max(c.o, c.c), f"bara {i}: h/l nu cuprind o/c"
|
||||||
|
if i:
|
||||||
|
assert abs(c.o - cds[i - 1].c) < 1e-9, f"open[{i}] != close[{i-1}]"
|
||||||
|
return cds
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def felie(cds, a, b):
|
||||||
|
"""Copie a barelor a..b-1 — ca o diagramă să nu mute culoarea alteia."""
|
||||||
|
return [replace(c) for c in cds[a:b]]
|
||||||
|
|
||||||
|
|
||||||
|
def bracket(ch, x, p_jos, p_sus, texte, color, dx=8, mijloc=True):
|
||||||
|
"""Acoladă verticală între două prețuri, cu text la mijloc (sau sus)."""
|
||||||
|
y1, y2 = ch._y(p_sus), ch._y(p_jos)
|
||||||
|
out = [f'<polyline points="{x + 5:.1f},{y1:.1f} {x:.1f},{y1:.1f} {x:.1f},{y2:.1f} '
|
||||||
|
f'{x + 5:.1f},{y2:.1f}" fill="none" stroke="{color}" stroke-width="1.5"/>']
|
||||||
|
y0 = (y1 + y2) / 2 + 4 if mijloc else y1 + 12
|
||||||
|
for k, t in enumerate(texte):
|
||||||
|
out.append(f'<text x="{x + dx:.1f}" y="{y0 + 14 * k - 7 * (len(texte) - 1):.1f}" '
|
||||||
|
f'fill="{color}" style="font-weight:bold">{t}</text>')
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------- seria de bază
|
||||||
|
# Patternul întreg, o singură dată: toate diagramele pornesc din `serie()`.
|
||||||
|
# 0-5 coborârea spre umărul stâng 6 umărul stâng (low 58.50)
|
||||||
|
# 7-10 urcarea în gât (high 63.30) 11-15 coborârea în cap
|
||||||
|
# 16 capul (low 52.00) 17-22 urcarea înapoi în gât
|
||||||
|
# 23-32 consolidarea = umărul drept 33 candela de breakout (close 65.00)
|
||||||
|
# 34-43 drumul spre ținte
|
||||||
|
CLOSES = [
|
||||||
|
65.80, 64.10, 62.60, 61.40, 60.10, 59.00, # 0-5
|
||||||
|
58.70, # 6 umărul stâng
|
||||||
|
60.20, 61.60, 62.70, 63.05, # 7-10 gâtul, stânga
|
||||||
|
61.30, 59.20, 57.00, 55.10, 53.20, # 11-15
|
||||||
|
52.30, # 16 capul
|
||||||
|
54.60, 56.90, 58.80, 60.70, 62.20, 63.00, # 17-22 gâtul, dreapta
|
||||||
|
61.10, 59.30, 58.80, 60.40, 62.10, 60.90, # 23-28 consolidarea
|
||||||
|
59.10, 60.30, 59.40, 58.70, # 29-32 consolidarea
|
||||||
|
65.00, # 33 breakout (marubozu)
|
||||||
|
66.40, 68.10, 70.30, 72.20, 74.10, 75.90, # 34-39
|
||||||
|
75.20, 76.40, 75.60, 76.10, # 40-43
|
||||||
|
]
|
||||||
|
WICKS = {6: (0.35, 0.20), 10: (0.25, 0.30), 16: (0.40, 0.30), 22: (0.30, 0.25),
|
||||||
|
24: (0.25, 0.60), 29: (0.30, 0.60), 32: (0.30, 0.20), 33: (0.30, 0.30)}
|
||||||
|
VOLS = [44, 46, 43, 45, 42, 44,
|
||||||
|
66, # umărul stâng — vârf de volum (stâng, pe volum)
|
||||||
|
48, 45, 43, 44,
|
||||||
|
46, 48, 52, 56, 60,
|
||||||
|
82, # capul pe volum
|
||||||
|
50, 46, 44, 43, 45, 44,
|
||||||
|
42, 40, 58, 44, 46, 43,
|
||||||
|
41, 46, 44, 42, # 29-32: volum care se stinge în consolidare
|
||||||
|
96, # breakout: peste vârful anterior de volum
|
||||||
|
70, 62, 58, 56, 54, 52,
|
||||||
|
48, 50, 46, 47]
|
||||||
|
|
||||||
|
|
||||||
|
def serie():
|
||||||
|
cds = from_closes(CLOSES, wick=0.30,
|
||||||
|
wicks=[WICKS.get(i, (0.30, 0.30)) for i in range(len(CLOSES))],
|
||||||
|
vols=[float(v) for v in VOLS], start=66.90)
|
||||||
|
cds[33] = Candle(58.70, 65.30, 58.50, ENTRY, vol=float(VOLS[33])) # marubozu de breakout
|
||||||
|
check(cds)
|
||||||
|
# cifrele pe care le afirmă etichetele, verificate pe serie
|
||||||
|
assert round(cds[6].l, 2) == UMAR, cds[6].l
|
||||||
|
assert round(cds[16].l, 2) == CAP, cds[16].l
|
||||||
|
assert round(max(c.h for c in cds[7:11]), 2) == GAT_VARF, max(c.h for c in cds[7:11])
|
||||||
|
assert round(max(c.h for c in cds[17:33]), 2) == GAT_VARF, max(c.h for c in cds[17:33])
|
||||||
|
assert round(min(c.l for c in cds[23:33]), 2) == UMAR, min(c.l for c in cds[23:33])
|
||||||
|
assert cds[16].l < cds[6].l and cds[16].l < min(c.l for c in cds[23:33]), "capul nu e cel mai jos"
|
||||||
|
assert abs(cds[33].c - ENTRY) < 1e-9 and cds[33].c > GAT_VARF, "breakout-ul nu trece gâtul"
|
||||||
|
assert cds[33].c - cds[33].o >= 6.0, "candela de breakout nu e marubozu"
|
||||||
|
assert max(VOLS[:33]) == 82 and VOLS[33] == 96, "volumul de breakout nu e peste vârful anterior"
|
||||||
|
assert max(c.h for c in cds[34:]) >= TP1, "seria nu atinge TP1"
|
||||||
|
primul_tp2 = next(i for i in range(34, len(cds)) if cds[i].h >= TP2)
|
||||||
|
primul_tp1 = next(i for i in range(34, len(cds)) if cds[i].h >= TP1)
|
||||||
|
assert primul_tp2 < primul_tp1, "TP2 (74.00) trebuie atins înaintea lui TP1 (75.83)"
|
||||||
|
assert min(c.l for c in cds[34:]) > TREIME, "stopul ar fi fost lovit după intrare"
|
||||||
|
return cds
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- 1. ansamblu
|
||||||
|
def d_ansamblu():
|
||||||
|
cds = serie()
|
||||||
|
w = 740
|
||||||
|
niveluri = [
|
||||||
|
Level(TP1, f"TP1 {TP1:.2f} = distanța stopului", BLUE, label_at="left"),
|
||||||
|
Level(TP2, f"TP2 {TP2:.2f} = proiecția gâtului", BLUE, label_at="left"),
|
||||||
|
Level(ENTRY, f"intrare {ENTRY:.2f}", GREEN),
|
||||||
|
Level(GAT, f"linia gâtului {GAT:.2f}", PURPLE),
|
||||||
|
Level(TREIME, f"SL {TREIME:.2f} (cel mai sus permis)", RED, label_at="left"),
|
||||||
|
]
|
||||||
|
ch = Chart(
|
||||||
|
candles=cds,
|
||||||
|
levels=niveluri,
|
||||||
|
zones=[Zone(23, 32, "umărul drept = consolidarea", GREEN, p_top=GAT_VARF + 0.3)],
|
||||||
|
arrows=[
|
||||||
|
Arrow(16, "capul 52.00, pe suport", where="below", color=BLACK, dx=-20, dy=16),
|
||||||
|
Arrow(6, "umărul stâng 58.50", where="below", color=BLACK, dx=-14, dy=46),
|
||||||
|
Arrow(33, "AICI INTRI: close 65.00,\npeste consolidare și peste gât",
|
||||||
|
where="below", price=ENTRY, color=GREEN, dx=-96, dy=78),
|
||||||
|
],
|
||||||
|
scale=15.0, gap=15, body_w=9, left=58, width=w, vol_h=66,
|
||||||
|
vol_label="volum", top=34,
|
||||||
|
title="DHRT — tot trade-ul (exemplu construit: niciun preț de aici nu e rostit în lecție)",
|
||||||
|
)
|
||||||
|
singur("ansamblu", ch, w, (), [
|
||||||
|
"Serie construită (open = close-ul barei anterioare), la scară, pe geometria lecției.",
|
||||||
|
f"cap {CAP:.2f} · umeri {UMAR:.2f} · H {H:.2f} · gât {GAT:.2f} · "
|
||||||
|
f"intrare {ENTRY:.2f} · SL {TREIME:.2f} · R {R:.2f} (16,7% din preț).",
|
||||||
|
f"TP1 ({TP1:.2f}) iese peste TP2 ({TP2:.2f}) — ordinea lor nu e fixă.",
|
||||||
|
], pe_linie=[lv.text for lv in niveluri])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------- 4. stop
|
||||||
|
def d_stop():
|
||||||
|
"""H = cap → nivelul umărului drept, împărțit în trei. Stopul stă în treimea
|
||||||
|
de jos; 54.17 e marginea ei de sus, adică cel mai sus la care are voie."""
|
||||||
|
cds = felie(serie(), 12, 36) # capul, urcarea, consolidarea, breakout-ul
|
||||||
|
w = 760
|
||||||
|
i_cap, i_brk = 16 - 12, 33 - 12
|
||||||
|
doua_treimi = round(CAP + 2 * H / 3, 2)
|
||||||
|
assert doua_treimi == 56.33, doua_treimi
|
||||||
|
niveluri = [
|
||||||
|
Level(ENTRY, f"intrare {ENTRY:.2f} = close-ul candelei de breakout", GREEN,
|
||||||
|
label_at="left"),
|
||||||
|
Level(UMAR, f"umărul drept {UMAR:.2f}", BLACK, label_at="left"),
|
||||||
|
Level(doua_treimi, f"{doua_treimi:.2f} = 2/3", GREY, dash="2 4"),
|
||||||
|
Level(TREIME, f"SL {TREIME:.2f} = 1/3 din H", RED, label_at="left"),
|
||||||
|
Level(CAP, f"capul {CAP:.2f}", BLACK, label_at="left"),
|
||||||
|
]
|
||||||
|
ch = Chart(
|
||||||
|
candles=cds,
|
||||||
|
levels=niveluri,
|
||||||
|
arrows=[
|
||||||
|
Arrow(i_cap, f"{TREIME:.2f} e cel mai SUS la care are voie stopul\n"
|
||||||
|
f"(riscul cel mai mic permis); mai jos, oricât",
|
||||||
|
where="below", price=TREIME, color=RED, dx=-30, dy=72),
|
||||||
|
],
|
||||||
|
scale=25.0, gap=20, body_w=11, left=200, width=w,
|
||||||
|
title="Stopul: treimea de jos din H (exemplu construit — cifrele nu sunt rostite în lecție)",
|
||||||
|
)
|
||||||
|
|
||||||
|
def extra(ch):
|
||||||
|
return (bracket(ch, 160, CAP, UMAR, [f"H = {H:.2f}", "cap → umăr"], BLACK, dx=6)
|
||||||
|
+ bracket(ch, ch._cx(i_brk) + 52, TREIME, ENTRY,
|
||||||
|
[f"R = {R:.2f}"], RED, dx=8))
|
||||||
|
|
||||||
|
singur("stop", ch, w, extra, [
|
||||||
|
"H se măsoară de la low-ul capului la nivelul umărului drept — nu la linia gâtului.",
|
||||||
|
f"{CAP:.2f} + {H:.2f}/3 = {TREIME:.2f}. Peste {TREIME:.2f} stopul nu are voie; sub, oricât.",
|
||||||
|
f"R se măsoară de la intrare ({ENTRY:.2f}) la stop, nu de la nivelul umărului.",
|
||||||
|
], pe_linie=([lv.text for lv in niveluri]
|
||||||
|
+ [f"H = {H:.2f}", "cap → umăr", f"R = {R:.2f}"]))
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------- 5. ținte
|
||||||
|
def d_tinte():
|
||||||
|
"""TP1 = distanța stopului; TP2 = proiecția gâtului. Linia gâtului se trage
|
||||||
|
din interiorul gâtului (63.00), nu prin vârfuri (63.30) și nu ca medie."""
|
||||||
|
cds = felie(serie(), 16, 44)
|
||||||
|
w = 760
|
||||||
|
i_brk, i_tp2, i_tp1 = 33 - 16, 38 - 16, 39 - 16
|
||||||
|
inaltime = round(GAT - CAP, 2)
|
||||||
|
assert inaltime == 11.00 and round(GAT + inaltime, 2) == TP2
|
||||||
|
niveluri = [
|
||||||
|
Level(TP1, f"TP1 {TP1:.2f} = intrarea + R ({R:.2f})", BLUE, label_at="left"),
|
||||||
|
Level(TP2, f"TP2 {TP2:.2f} = gâtul + {inaltime:.2f}", BLUE, label_at="left"),
|
||||||
|
Level(ENTRY, f"intrare {ENTRY:.2f}", GREEN, label_at="left"),
|
||||||
|
Level(GAT, f"linia gâtului {GAT:.2f}", PURPLE),
|
||||||
|
Level(CAP, f"capul {CAP:.2f}", BLACK),
|
||||||
|
]
|
||||||
|
ch = Chart(
|
||||||
|
candles=cds,
|
||||||
|
levels=niveluri,
|
||||||
|
arrows=[
|
||||||
|
Arrow(6, f"vârfurile gâtului ating {GAT_VARF:.2f}; linia se trage din\n"
|
||||||
|
f"INTERIORUL gâtului, la {GAT:.2f} — nu e media lor",
|
||||||
|
where="above", price=GAT_VARF, color=PURPLE, dx=-30, dy=-50),
|
||||||
|
Arrow(i_tp2, f"TP2 ({TP2:.2f}) vine înaintea lui TP1 ({TP1:.2f})\n"
|
||||||
|
f"pe exemplul ăsta — ordinea nu e fixă",
|
||||||
|
where="below", price=TP2, color=BLUE, dx=-290, dy=30),
|
||||||
|
],
|
||||||
|
scale=15.0, gap=22, body_w=11, left=92, width=w,
|
||||||
|
title="Cele două ținte (exemplu construit — cifrele nu sunt rostite în lecție)",
|
||||||
|
)
|
||||||
|
|
||||||
|
def extra(ch):
|
||||||
|
return (bracket(ch, 58, CAP, GAT, [f"{inaltime:.2f}"], PURPLE, dx=6)
|
||||||
|
+ bracket(ch, ch._cx(i_tp1) + 44, GAT, TP2, [f"{inaltime:.2f}"], BLUE, dx=8))
|
||||||
|
|
||||||
|
singur("tinte", ch, w, extra, [
|
||||||
|
f"TP1 = {ENTRY:.2f} + {R:.2f} = {TP1:.2f}. TP2 = {GAT:.2f} + ({GAT:.2f} − {CAP:.2f}) = {TP2:.2f}.",
|
||||||
|
"Cât de jos tragi linia gâtului mută TP2 cu exact atât — e o alegere a ta, nu o formulă.",
|
||||||
|
"Lecția spune doar «din interiorul gâtului, iau un average»; formulă rostită nu există.",
|
||||||
|
], pe_linie=[lv.text for lv in niveluri] + [f"{inaltime:.2f}"])
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- 3. trigger
|
||||||
|
# Panoul NU: preț care ține consolidarea, dar volum cu semn (stil on balance
|
||||||
|
# volume) care face minime tot mai joase. Seria e construită doar pentru
|
||||||
|
# diagrama asta — niciun preț de aici nu e rostit în lecție.
|
||||||
|
NU_CLOSES = [61.80, 60.20, 61.70, 59.90, 61.90, 60.10, 61.60, 59.80,
|
||||||
|
61.80, 60.00, 61.40, 59.70, 57.40, 56.10]
|
||||||
|
NU_VOLS = [8.0, 5.0, 6.0, -4.0, 3.0, -7.0, 2.0, -10.0,
|
||||||
|
1.0, -13.0, -2.0, -16.0, -9.0, -20.0]
|
||||||
|
|
||||||
|
|
||||||
|
def d_trigger():
|
||||||
|
cds_da = felie(serie(), 12, 37)
|
||||||
|
w = 760
|
||||||
|
i_brk = 33 - 12
|
||||||
|
niv_da = [
|
||||||
|
Level(ENTRY, f"intrare {ENTRY:.2f} = close-ul trigger-ului", GREEN, label_at="left"),
|
||||||
|
Level(GAT, f"linia gâtului {GAT:.2f}", PURPLE, label_at="left"),
|
||||||
|
]
|
||||||
|
ch_da = Chart(
|
||||||
|
candles=cds_da,
|
||||||
|
levels=niv_da,
|
||||||
|
zones=[Zone(23 - 12, 32 - 12, "consolidarea umărului drept", GREEN,
|
||||||
|
p_top=GAT_VARF + 0.3)],
|
||||||
|
arrows=[
|
||||||
|
Arrow(i_brk, "TRIGGER: close peste consolidare ȘI peste gât,\n"
|
||||||
|
"cu volumul peste vârful anterior de volum",
|
||||||
|
where="below", price=ENTRY, color=GREEN, dx=-276, dy=36),
|
||||||
|
],
|
||||||
|
scale=19.0, gap=20, body_w=11, left=60, width=w, vol_h=60,
|
||||||
|
vol_label="volum", title="DA — trigger în umărul drept (exemplu construit)",
|
||||||
|
)
|
||||||
|
|
||||||
|
cds_nu = from_closes(NU_CLOSES, wick=0.35, vols=NU_VOLS, start=62.40)
|
||||||
|
check(cds_nu)
|
||||||
|
minime = [NU_VOLS[i] for i in range(1, len(NU_VOLS) - 1)
|
||||||
|
if NU_VOLS[i] < NU_VOLS[i - 1] and NU_VOLS[i] < NU_VOLS[i + 1]]
|
||||||
|
assert minime == sorted(minime, reverse=True) and len(minime) >= 4, minime
|
||||||
|
assert all(c.l >= UMAR for c in cds_nu[:11]), "prețul trebuie să țină consolidarea"
|
||||||
|
assert cds_nu[-1].c < UMAR, "la final prețul cedează"
|
||||||
|
ch_nu = Chart(
|
||||||
|
candles=cds_nu,
|
||||||
|
levels=[Level(UMAR, f"baza consolidării {UMAR:.2f}", GREY, label_at="left")],
|
||||||
|
arrows=[
|
||||||
|
Arrow(13, "prețul ține consolidarea, dar minimele volumului coboară:\n"
|
||||||
|
"aștepți breakdown, nu intri long",
|
||||||
|
where="below", price=56.20, color=RED, dx=-215, dy=10),
|
||||||
|
],
|
||||||
|
scale=19.0, gap=28, body_w=13, left=72, width=w, vol_h=70, vol_zero=0.0,
|
||||||
|
vol_label="volum cu semn (on balance volume)",
|
||||||
|
title="NU — breakout de preț fără breakout de volum (exemplu construit)",
|
||||||
|
)
|
||||||
|
stiva("trigger", w, [(ch_da, ()), (ch_nu, ())], [
|
||||||
|
"Sus: trigger-ul e candela de breakout; buy doji / buy hammer / buy momentum",
|
||||||
|
"din umărul drept sunt la fel de valide, cu intrarea la close-ul lor.",
|
||||||
|
"Jos: singurul «nu intra» formulat ca regulă mecanică — volumul rupe înaintea prețului.",
|
||||||
|
], pe_linie=[lv.text for lv in niv_da] + [f"baza consolidării {UMAR:.2f}", "0"])
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------ 2. setup
|
||||||
|
# Panoul NU: triple bottom la al treilea test, cu volum tot mai mic. Serie
|
||||||
|
# proprie, cu altă scară de preț decât restul capitolului — regulile sunt
|
||||||
|
# aceleași, cifrele nu au legătură cu exemplul construit al trade-ului.
|
||||||
|
TB_CLOSES = [54.50, 53.20, 51.80, 50.40, 50.20, 51.60, 52.80, 51.90, 50.80, 50.30,
|
||||||
|
51.50, 52.40, 51.30, 50.60, 50.25, 51.00, 50.40, 49.60, 48.70]
|
||||||
|
TB_BAZA = 50.00
|
||||||
|
TB_LOWS = (4, 9, 14)
|
||||||
|
TB_VOLS = [40.0, 44.0, 52.0, 60.0, 74.0, 46.0, 42.0, 44.0, 48.0, 54.0,
|
||||||
|
40.0, 38.0, 39.0, 40.0, 38.0, 36.0, 34.0, 44.0, 52.0]
|
||||||
|
|
||||||
|
|
||||||
|
def d_setup():
|
||||||
|
cds_da = felie(serie(), 0, 33)
|
||||||
|
w = 760
|
||||||
|
niv_da = [
|
||||||
|
Level(UMAR, f"pivotul lunii {UMAR:.2f}", BLACK),
|
||||||
|
Level(CAP, f"suportul lunii {CAP:.2f}", BLUE, label_at="left"),
|
||||||
|
]
|
||||||
|
ch_da = Chart(
|
||||||
|
candles=cds_da,
|
||||||
|
levels=niv_da,
|
||||||
|
marks=[Mark(6, "umărul stâng", GREY, "below", dy=14)],
|
||||||
|
zones=[Zone(23, 32, "umărul drept = consolidarea", GREEN, p_top=GAT_VARF + 0.3)],
|
||||||
|
arrows=[
|
||||||
|
Arrow(16, "capul se oprește pe suport, umărul drept pe pivot.\n"
|
||||||
|
"Ajunge unul din două; fără niciunul, setup-ul nu e verificabil.",
|
||||||
|
where="below", price=CAP, color=BLUE, dx=10, dy=22),
|
||||||
|
],
|
||||||
|
scale=15.0, gap=17, body_w=9, left=58, width=w,
|
||||||
|
title="DA — HS răsturnat cu capul și umărul drept pe niveluri (exemplu construit)",
|
||||||
|
)
|
||||||
|
|
||||||
|
cds_nu = from_closes(TB_CLOSES, wick=0.30,
|
||||||
|
wicks=[(0.30, 0.30) if i not in TB_LOWS else
|
||||||
|
(0.25, round(TB_CLOSES[i] - TB_BAZA, 2)) for i in range(19)],
|
||||||
|
vols=TB_VOLS, start=55.60)
|
||||||
|
check(cds_nu)
|
||||||
|
for i in TB_LOWS:
|
||||||
|
assert round(cds_nu[i].l, 2) == TB_BAZA, (i, cds_nu[i].l)
|
||||||
|
assert TB_VOLS[4] > TB_VOLS[9] > TB_VOLS[14], "volumul trebuie să scadă la fiecare picior"
|
||||||
|
assert cds_nu[-1].c < TB_BAZA, "al patrulea test cedează"
|
||||||
|
ch_nu = Chart(
|
||||||
|
candles=cds_nu,
|
||||||
|
levels=[Level(TB_BAZA, f"baza {TB_BAZA:.2f}, testată de trei ori", GREY)],
|
||||||
|
marks=[Mark(4, "1", GREY, "below"), Mark(9, "2", GREY, "below"),
|
||||||
|
Mark(14, "3", RED, "below")],
|
||||||
|
arrows=[
|
||||||
|
Arrow(14, "al treilea test, cu volum mai mic la fiecare picior:\n"
|
||||||
|
"șansele se întorc spre breakdown — nu intri",
|
||||||
|
where="below", price=TB_BAZA, color=RED, dx=-90, dy=42),
|
||||||
|
],
|
||||||
|
scale=38.0, gap=26, body_w=13, left=70, width=w, vol_h=56,
|
||||||
|
vol_label="volum", title="NU — triple bottom la al treilea test (altă scară de preț)",
|
||||||
|
)
|
||||||
|
stiva("setup", w, [(ch_da, ()), (ch_nu, ())], [
|
||||||
|
"Sus: filtrul de la pasul 1 — capul și/sau umărul drept pe un suport, pivot sau PPA.",
|
||||||
|
"Simetria umerilor e analiza autorului, nu un prag: «depinde cum măsori».",
|
||||||
|
"Jos: motivul e citat de autor din literatură, nu din testele lui.",
|
||||||
|
], pe_linie=[lv.text for lv in niv_da]
|
||||||
|
+ [f"baza {TB_BAZA:.2f}, testată de trei ori"])
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------- 6. retest
|
||||||
|
# „Locul crimei" = dreptunghiul din care s-a plecat. Ambele panouri pornesc din
|
||||||
|
# aceeași consolidare și din aceeași candelă de breakout; diferă doar adâncimea
|
||||||
|
# întoarcerii. Serii construite, pe aceeași geometrie ca restul capitolului.
|
||||||
|
CONS = [61.00, 59.20, 62.90, 59.00, 61.50, 58.80]
|
||||||
|
CONS_W = [(0.30, 0.30), (0.30, 0.50), (0.40, 0.30), (0.30, 0.50),
|
||||||
|
(0.30, 0.30), (0.30, 0.30)]
|
||||||
|
RETEST_DA = [64.20, 62.40, 61.40, 61.20, 62.30, 64.10, 66.00, 67.60]
|
||||||
|
RETEST_NU = [64.00, 62.10, 60.20, 58.20, 56.80, 55.40]
|
||||||
|
|
||||||
|
|
||||||
|
def _cu_retest(cozi):
|
||||||
|
cds = from_closes(CONS, wicks=CONS_W, start=62.20)
|
||||||
|
cds.append(Candle(CONS[-1], 65.30, 58.60, ENTRY))
|
||||||
|
cds += from_closes(cozi, wick=0.30, start=ENTRY)
|
||||||
|
check(cds)
|
||||||
|
assert round(max(c.h for c in cds[:6]), 2) == CONS_SUS, max(c.h for c in cds[:6])
|
||||||
|
assert round(min(c.l for c in cds[:6]), 2) == CONS_JOS, min(c.l for c in cds[:6])
|
||||||
|
return cds
|
||||||
|
|
||||||
|
|
||||||
|
def d_retest():
|
||||||
|
w = 740
|
||||||
|
niv = lambda: [
|
||||||
|
Level(ENTRY, f"breakout {ENTRY:.2f}", GREEN),
|
||||||
|
Level(CONS_SUS, f"vârful consolidării {CONS_SUS:.2f}", GREY, dash="2 4"),
|
||||||
|
Level(CONS_JUM, f"1/2 din consolidare {CONS_JUM:.2f}", BLUE),
|
||||||
|
Level(CONS_JOS, f"baza consolidării {CONS_JOS:.2f}", RED),
|
||||||
|
]
|
||||||
|
cds_da = _cu_retest(RETEST_DA)
|
||||||
|
fund = round(min(c.l for c in cds_da[7:]), 2)
|
||||||
|
assert fund == CONS_JUM, fund
|
||||||
|
assert cds_da[-1].c > ENTRY, "după retest trade-ul repleacă"
|
||||||
|
ch_da = Chart(
|
||||||
|
candles=cds_da,
|
||||||
|
levels=niv(),
|
||||||
|
zones=[Zone(0, 5, "locul crimei", ORANGE, p_top=CONS_SUS + 0.2, p_bot=CONS_JOS - 0.2)],
|
||||||
|
arrows=[
|
||||||
|
Arrow(10, f"retest până la jumătatea consolidării ({CONS_JUM:.2f}):\n"
|
||||||
|
f"a doua fereastră de intrare",
|
||||||
|
where="below", price=CONS_JUM, color=BLUE, dx=-120, dy=24),
|
||||||
|
],
|
||||||
|
scale=26.0, gap=34, body_w=15, left=80, width=w,
|
||||||
|
title="DA — retest la 1/2 din consolidare (exemplu construit)",
|
||||||
|
)
|
||||||
|
cds_nu = _cu_retest(RETEST_NU)
|
||||||
|
assert min(c.l for c in cds_nu[7:]) < CONS_JOS, "panoul NU trebuie să rupă baza"
|
||||||
|
ch_nu = Chart(
|
||||||
|
candles=cds_nu,
|
||||||
|
levels=niv(),
|
||||||
|
zones=[Zone(0, 5, "locul crimei", ORANGE, p_top=CONS_SUS + 0.2, p_bot=CONS_JOS - 0.2)],
|
||||||
|
arrows=[
|
||||||
|
Arrow(11, "sub bază ideea s-a inversat:\nde aici se shortează, nu se cumpără",
|
||||||
|
where="below", price=CONS_JOS - 1.6, color=RED, dx=-130, dy=10),
|
||||||
|
],
|
||||||
|
scale=26.0, gap=34, body_w=15, left=80, width=w,
|
||||||
|
title="NU — retest care trece sub bază (exemplu construit)",
|
||||||
|
)
|
||||||
|
stiva("retest", w, [(ch_da, ()), (ch_nu, ())], [
|
||||||
|
"Singura cifră a secțiunii: «unul pe doi retestează din consolidare» — jumătatea.",
|
||||||
|
"Între jumătate și bază e zonă de avertizare; sub bază, ideea s-a inversat.",
|
||||||
|
"Retestul nu e garantat: de aceea intrarea se face în tranșe, nu așteptând.",
|
||||||
|
], pe_linie=[lv.text for lv in niv()])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
d_ansamblu()
|
||||||
|
d_setup()
|
||||||
|
d_stop()
|
||||||
|
d_tinte()
|
||||||
|
d_trigger()
|
||||||
|
d_retest()
|
||||||
|
for nume, svg in SVG.items():
|
||||||
|
p = OUT / f"dhrt_{nume}.svg"
|
||||||
|
p.write_text(svg, encoding="utf-8")
|
||||||
|
print(f"scris {p.name} ({len(svg)} octeți)")
|
||||||
164
gen/strategii/dhrt_ansamblu.svg
Normal file
164
gen/strategii/dhrt_ansamblu.svg
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
<svg viewBox="0 0 740 674" 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="48" fill="#333" style="font-weight:bold">DHRT — tot trade-ul (exemplu construit: niciun preț de aici nu e rostit în lecție)</text>
|
||||||
|
<rect x="393.5" y="252.5" width="154.0" height="84.5" fill="#188a3e" fill-opacity="0.08" stroke="#188a3e" stroke-width="1"/>
|
||||||
|
<text x="393.5" y="218.0" fill="#188a3e" style="font-weight:bold">umărul drept = consolidarea</text>
|
||||||
|
<line x1="24.0" y1="69.1" x2="726" y2="69.1" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="63.1" fill="#1a5fb4">TP1 75.83 = distanța stopului</text>
|
||||||
|
<line x1="24.0" y1="96.5" x2="726" y2="96.5" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="90.5" fill="#1a5fb4">TP2 74.00 = proiecția gâtului</text>
|
||||||
|
<line x1="24.0" y1="231.5" x2="726" y2="231.5" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="712" y="225.5" fill="#188a3e" text-anchor="end">intrare 65.00</text>
|
||||||
|
<line x1="24.0" y1="261.5" x2="726" y2="261.5" stroke="#6a3d9a" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="712" y="255.5" fill="#6a3d9a" text-anchor="end">linia gâtului 63.00</text>
|
||||||
|
<line x1="24.0" y1="394.0" x2="726" y2="394.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="388.0" fill="#c00">SL 54.17 (cel mai sus permis)</text>
|
||||||
|
<line x1="58.0" y1="198.5" x2="58.0" y2="224.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="53.5" y="203.0" width="9" height="16.5" fill="#c00"/>
|
||||||
|
<line x1="73.0" y1="215.0" x2="73.0" y2="249.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="68.5" y="219.5" width="9" height="25.5" fill="#c00"/>
|
||||||
|
<line x1="88.0" y1="240.5" x2="88.0" y2="272.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="83.5" y="245.0" width="9" height="22.5" fill="#c00"/>
|
||||||
|
<line x1="103.0" y1="263.0" x2="103.0" y2="290.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="98.5" y="267.5" width="9" height="18.0" fill="#c00"/>
|
||||||
|
<line x1="118.0" y1="281.0" x2="118.0" y2="309.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="113.5" y="285.5" width="9" height="19.5" fill="#c00"/>
|
||||||
|
<line x1="133.0" y1="300.5" x2="133.0" y2="326.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="128.5" y="305.0" width="9" height="16.5" fill="#c00"/>
|
||||||
|
<line x1="148.0" y1="316.2" x2="148.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="143.5" y="321.5" width="9" height="4.5" fill="#c00"/>
|
||||||
|
<line x1="163.0" y1="299.0" x2="163.0" y2="330.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="158.5" y="303.5" width="9" height="22.5" fill="#188a3e"/>
|
||||||
|
<line x1="178.0" y1="278.0" x2="178.0" y2="308.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="173.5" y="282.5" width="9" height="21.0" fill="#188a3e"/>
|
||||||
|
<line x1="193.0" y1="261.5" x2="193.0" y2="287.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="188.5" y="266.0" width="9" height="16.5" fill="#188a3e"/>
|
||||||
|
<line x1="208.0" y1="257.0" x2="208.0" y2="270.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="203.5" y="260.8" width="9" height="5.2" fill="#188a3e"/>
|
||||||
|
<line x1="223.0" y1="256.3" x2="223.0" y2="291.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="218.5" y="260.8" width="9" height="26.2" fill="#c00"/>
|
||||||
|
<line x1="238.0" y1="282.5" x2="238.0" y2="323.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="233.5" y="287.0" width="9" height="31.5" fill="#c00"/>
|
||||||
|
<line x1="253.0" y1="314.0" x2="253.0" y2="356.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="248.5" y="318.5" width="9" height="33.0" fill="#c00"/>
|
||||||
|
<line x1="268.0" y1="347.0" x2="268.0" y2="384.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="263.5" y="351.5" width="9" height="28.5" fill="#c00"/>
|
||||||
|
<line x1="283.0" y1="375.5" x2="283.0" y2="413.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="278.5" y="380.0" width="9" height="28.5" fill="#c00"/>
|
||||||
|
<line x1="298.0" y1="402.5" x2="298.0" y2="426.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="293.5" y="408.5" width="9" height="13.5" fill="#c00"/>
|
||||||
|
<line x1="313.0" y1="383.0" x2="313.0" y2="426.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="308.5" y="387.5" width="9" height="34.5" fill="#188a3e"/>
|
||||||
|
<line x1="328.0" y1="348.5" x2="328.0" y2="392.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="323.5" y="353.0" width="9" height="34.5" fill="#188a3e"/>
|
||||||
|
<line x1="343.0" y1="320.0" x2="343.0" y2="357.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="338.5" y="324.5" width="9" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="358.0" y1="291.5" x2="358.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="353.5" y="296.0" width="9" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="373.0" y1="269.0" x2="373.0" y2="300.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="368.5" y="273.5" width="9" height="22.5" fill="#188a3e"/>
|
||||||
|
<line x1="388.0" y1="257.0" x2="388.0" y2="277.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="383.5" y="261.5" width="9" height="12.0" fill="#188a3e"/>
|
||||||
|
<line x1="403.0" y1="257.0" x2="403.0" y2="294.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="398.5" y="261.5" width="9" height="28.5" fill="#c00"/>
|
||||||
|
<line x1="418.0" y1="286.2" x2="418.0" y2="326.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="413.5" y="290.0" width="9" height="27.0" fill="#c00"/>
|
||||||
|
<line x1="433.0" y1="312.5" x2="433.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="428.5" y="317.0" width="9" height="7.5" fill="#c00"/>
|
||||||
|
<line x1="448.0" y1="296.0" x2="448.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="443.5" y="300.5" width="9" height="24.0" fill="#188a3e"/>
|
||||||
|
<line x1="463.0" y1="270.5" x2="463.0" y2="305.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="458.5" y="275.0" width="9" height="25.5" fill="#188a3e"/>
|
||||||
|
<line x1="478.0" y1="270.5" x2="478.0" y2="297.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="473.5" y="275.0" width="9" height="18.0" fill="#c00"/>
|
||||||
|
<line x1="493.0" y1="288.5" x2="493.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="488.5" y="293.0" width="9" height="27.0" fill="#c00"/>
|
||||||
|
<line x1="508.0" y1="297.5" x2="508.0" y2="324.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="503.5" y="302.0" width="9" height="18.0" fill="#188a3e"/>
|
||||||
|
<line x1="523.0" y1="297.5" x2="523.0" y2="320.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="518.5" y="302.0" width="9" height="13.5" fill="#c00"/>
|
||||||
|
<line x1="538.0" y1="311.0" x2="538.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="533.5" y="315.5" width="9" height="10.5" fill="#c00"/>
|
||||||
|
<line x1="553.0" y1="227.0" x2="553.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="548.5" y="231.5" width="9" height="94.5" fill="#188a3e"/>
|
||||||
|
<line x1="568.0" y1="206.0" x2="568.0" y2="236.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="563.5" y="210.5" width="9" height="21.0" fill="#188a3e"/>
|
||||||
|
<line x1="583.0" y1="180.5" x2="583.0" y2="215.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="578.5" y="185.0" width="9" height="25.5" fill="#188a3e"/>
|
||||||
|
<line x1="598.0" y1="147.5" x2="598.0" y2="189.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="593.5" y="152.0" width="9" height="33.0" fill="#188a3e"/>
|
||||||
|
<line x1="613.0" y1="119.0" x2="613.0" y2="156.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="608.5" y="123.5" width="9" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="628.0" y1="90.5" x2="628.0" y2="128.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="623.5" y="95.0" width="9" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="643.0" y1="63.5" x2="643.0" y2="99.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="638.5" y="68.0" width="9" height="27.0" fill="#188a3e"/>
|
||||||
|
<line x1="658.0" y1="63.5" x2="658.0" y2="83.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="653.5" y="68.0" width="9" height="10.5" fill="#c00"/>
|
||||||
|
<line x1="673.0" y1="56.0" x2="673.0" y2="83.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="668.5" y="60.5" width="9" height="18.0" fill="#188a3e"/>
|
||||||
|
<line x1="688.0" y1="56.0" x2="688.0" y2="77.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="683.5" y="60.5" width="9" height="12.0" fill="#c00"/>
|
||||||
|
<line x1="703.0" y1="60.5" x2="703.0" y2="77.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="698.5" y="65.0" width="9" height="7.5" fill="#188a3e"/>
|
||||||
|
<line x1="24" y1="587.5" x2="726" y2="587.5" stroke="#888"/>
|
||||||
|
<rect x="53.5" y="557.2" width="9" height="30.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="68.5" y="555.9" width="9" height="31.6" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="83.5" y="557.9" width="9" height="29.6" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="98.5" y="556.6" width="9" height="30.9" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="113.5" y="558.6" width="9" height="28.9" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="128.5" y="557.2" width="9" height="30.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="143.5" y="542.1" width="9" height="45.4" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="158.5" y="554.5" width="9" height="33.0" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="173.5" y="556.6" width="9" height="30.9" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="188.5" y="557.9" width="9" height="29.6" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="203.5" y="557.2" width="9" height="30.2" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="218.5" y="555.9" width="9" height="31.6" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="233.5" y="554.5" width="9" height="33.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="248.5" y="551.8" width="9" height="35.8" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="263.5" y="549.0" width="9" height="38.5" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="278.5" y="546.2" width="9" height="41.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="293.5" y="531.1" width="9" height="56.4" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="308.5" y="553.1" width="9" height="34.4" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="323.5" y="555.9" width="9" height="31.6" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="338.5" y="557.2" width="9" height="30.2" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="353.5" y="557.9" width="9" height="29.6" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="368.5" y="556.6" width="9" height="30.9" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="383.5" y="557.2" width="9" height="30.2" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="398.5" y="558.6" width="9" height="28.9" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="413.5" y="560.0" width="9" height="27.5" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="428.5" y="547.6" width="9" height="39.9" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="443.5" y="557.2" width="9" height="30.2" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="458.5" y="555.9" width="9" height="31.6" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="473.5" y="557.9" width="9" height="29.6" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="488.5" y="559.3" width="9" height="28.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="503.5" y="555.9" width="9" height="31.6" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="518.5" y="557.2" width="9" height="30.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="533.5" y="558.6" width="9" height="28.9" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="548.5" y="521.5" width="9" height="66.0" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="563.5" y="539.4" width="9" height="48.1" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="578.5" y="544.9" width="9" height="42.6" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="593.5" y="547.6" width="9" height="39.9" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="608.5" y="549.0" width="9" height="38.5" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="623.5" y="550.4" width="9" height="37.1" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="638.5" y="551.8" width="9" height="35.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="653.5" y="554.5" width="9" height="33.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="668.5" y="553.1" width="9" height="34.4" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="683.5" y="555.9" width="9" height="31.6" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="698.5" y="555.2" width="9" height="32.3" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<text x="24" y="515.5" fill="#555">volum</text>
|
||||||
|
<line x1="278.0" y1="472.5" x2="294.6" y2="437.7" stroke="#333" stroke-width="1.8"/>
|
||||||
|
<polygon points="298.0,430.5 298.2,439.4 290.9,436.0" fill="#333"/>
|
||||||
|
<text x="278.0" y="486.5" fill="#333" text-anchor="middle" style="font-weight:bold">capul 52.00, pe suport</text>
|
||||||
|
<line x1="134.0" y1="405.0" x2="146.5" y2="340.9" stroke="#333" stroke-width="1.8"/>
|
||||||
|
<polygon points="148.0,333.0 150.4,341.6 142.5,340.1" fill="#333"/>
|
||||||
|
<text x="134.0" y="419.0" fill="#333" text-anchor="middle" style="font-weight:bold">umărul stâng 58.50</text>
|
||||||
|
<line x1="457.0" y1="415.0" x2="549.2" y2="242.6" stroke="#188a3e" stroke-width="1.8"/>
|
||||||
|
<polygon points="553.0,235.5 552.8,244.4 545.7,240.7" fill="#188a3e"/>
|
||||||
|
<text x="457.0" y="429.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">AICI INTRI: close 65.00,</text>
|
||||||
|
<text x="457.0" y="443.0" fill="#188a3e" text-anchor="middle" style="font-weight:bold">peste consolidare și peste gât</text>
|
||||||
|
</g>
|
||||||
|
<text x="24" y="632" fill="#555">Serie construită (open = close-ul barei anterioare), la scară, pe geometria lecției.</text>
|
||||||
|
<text x="24" y="649" fill="#555">cap 52.00 · umeri 58.50 · H 6.50 · gât 63.00 · intrare 65.00 · SL 54.17 · R 10.83 (16,7% din preț).</text>
|
||||||
|
<text x="24" y="666" fill="#555">TP1 (75.83) iese peste TP2 (74.00) — ordinea lor nu e fixă.</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 13 KiB |
95
gen/strategii/dhrt_retest.svg
Normal file
95
gen/strategii/dhrt_retest.svg
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
<svg viewBox="0 0 740 832" 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="48" fill="#333" style="font-weight:bold">DA — retest la 1/2 din consolidare (exemplu construit)</text>
|
||||||
|
<rect x="67.5" y="170.4" width="195.0" height="135.2" fill="#b06000" fill-opacity="0.08" stroke="#b06000" stroke-width="1"/>
|
||||||
|
<text x="67.5" y="165.4" fill="#b06000" style="font-weight:bold">locul crimei</text>
|
||||||
|
<line x1="24.0" y1="131.4" x2="726" y2="131.4" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="712" y="125.4" fill="#188a3e" text-anchor="end">breakout 65.00</text>
|
||||||
|
<line x1="24.0" y1="175.6" x2="726" y2="175.6" stroke="#555" stroke-width="1.5" stroke-dasharray="2 4"/>
|
||||||
|
<text x="712" y="169.6" fill="#555" text-anchor="end">vârful consolidării 63.30</text>
|
||||||
|
<line x1="24.0" y1="238.0" x2="726" y2="238.0" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="712" y="232.0" fill="#1a5fb4" text-anchor="end">1/2 din consolidare 60.90</text>
|
||||||
|
<line x1="24.0" y1="300.4" x2="726" y2="300.4" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="712" y="294.4" fill="#c00" text-anchor="end">baza consolidării 58.50</text>
|
||||||
|
<line x1="80.0" y1="196.4" x2="80.0" y2="243.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="72.5" y="204.2" width="15" height="31.2" fill="#c00"/>
|
||||||
|
<line x1="114.0" y1="227.6" x2="114.0" y2="295.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="106.5" y="235.4" width="15" height="46.8" fill="#c00"/>
|
||||||
|
<line x1="148.0" y1="175.6" x2="148.0" y2="290.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="140.5" y="186.0" width="15" height="96.2" fill="#188a3e"/>
|
||||||
|
<line x1="182.0" y1="178.2" x2="182.0" y2="300.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="174.5" y="186.0" width="15" height="101.4" fill="#c00"/>
|
||||||
|
<line x1="216.0" y1="214.6" x2="216.0" y2="295.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="208.5" y="222.4" width="15" height="65.0" fill="#188a3e"/>
|
||||||
|
<line x1="250.0" y1="214.6" x2="250.0" y2="300.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="242.5" y="222.4" width="15" height="70.2" fill="#c00"/>
|
||||||
|
<line x1="284.0" y1="123.6" x2="284.0" y2="297.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="276.5" y="131.4" width="15" height="161.2" fill="#188a3e"/>
|
||||||
|
<line x1="318.0" y1="123.6" x2="318.0" y2="160.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="310.5" y="131.4" width="15" height="20.8" fill="#c00"/>
|
||||||
|
<line x1="352.0" y1="144.4" x2="352.0" y2="206.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="344.5" y="152.2" width="15" height="46.8" fill="#c00"/>
|
||||||
|
<line x1="386.0" y1="191.2" x2="386.0" y2="232.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="378.5" y="199.0" width="15" height="26.0" fill="#c00"/>
|
||||||
|
<line x1="420.0" y1="217.2" x2="420.0" y2="238.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="412.5" y="225.0" width="15" height="5.2" fill="#c00"/>
|
||||||
|
<line x1="454.0" y1="193.8" x2="454.0" y2="238.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="446.5" y="201.6" width="15" height="28.6" fill="#188a3e"/>
|
||||||
|
<line x1="488.0" y1="147.0" x2="488.0" y2="209.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="480.5" y="154.8" width="15" height="46.8" fill="#188a3e"/>
|
||||||
|
<line x1="522.0" y1="97.6" x2="522.0" y2="162.6" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="514.5" y="105.4" width="15" height="49.4" fill="#188a3e"/>
|
||||||
|
<line x1="556.0" y1="56.0" x2="556.0" y2="113.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="548.5" y="63.8" width="15" height="41.6" fill="#188a3e"/>
|
||||||
|
<line x1="300.0" y1="332.4" x2="413.6" y2="246.8" stroke="#1a5fb4" stroke-width="1.8"/>
|
||||||
|
<polygon points="420.0,242.0 416.0,250.0 411.2,243.6" fill="#1a5fb4"/>
|
||||||
|
<text x="300.0" y="346.4" fill="#1a5fb4" text-anchor="middle" style="font-weight:bold">retest până la jumătatea consolidării (60.90):</text>
|
||||||
|
<text x="300.0" y="360.4" fill="#1a5fb4" text-anchor="middle" style="font-weight:bold">a doua fereastră de intrare</text>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(0,395)">
|
||||||
|
<text x="24" y="48" fill="#333" style="font-weight:bold">NU — retest care trece sub bază (exemplu construit)</text>
|
||||||
|
<rect x="67.5" y="102.8" width="195.0" height="135.2" fill="#b06000" fill-opacity="0.08" stroke="#b06000" stroke-width="1"/>
|
||||||
|
<text x="67.5" y="97.8" fill="#b06000" style="font-weight:bold">locul crimei</text>
|
||||||
|
<line x1="24.0" y1="63.8" x2="726" y2="63.8" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="712" y="57.8" fill="#188a3e" text-anchor="end">breakout 65.00</text>
|
||||||
|
<line x1="24.0" y1="108.0" x2="726" y2="108.0" stroke="#555" stroke-width="1.5" stroke-dasharray="2 4"/>
|
||||||
|
<text x="712" y="102.0" fill="#555" text-anchor="end">vârful consolidării 63.30</text>
|
||||||
|
<line x1="24.0" y1="170.4" x2="726" y2="170.4" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="712" y="164.4" fill="#1a5fb4" text-anchor="end">1/2 din consolidare 60.90</text>
|
||||||
|
<line x1="24.0" y1="232.8" x2="726" y2="232.8" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="712" y="226.8" fill="#c00" text-anchor="end">baza consolidării 58.50</text>
|
||||||
|
<line x1="80.0" y1="128.8" x2="80.0" y2="175.6" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="72.5" y="136.6" width="15" height="31.2" fill="#c00"/>
|
||||||
|
<line x1="114.0" y1="160.0" x2="114.0" y2="227.6" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="106.5" y="167.8" width="15" height="46.8" fill="#c00"/>
|
||||||
|
<line x1="148.0" y1="108.0" x2="148.0" y2="222.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="140.5" y="118.4" width="15" height="96.2" fill="#188a3e"/>
|
||||||
|
<line x1="182.0" y1="110.6" x2="182.0" y2="232.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="174.5" y="118.4" width="15" height="101.4" fill="#c00"/>
|
||||||
|
<line x1="216.0" y1="147.0" x2="216.0" y2="227.6" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="208.5" y="154.8" width="15" height="65.0" fill="#188a3e"/>
|
||||||
|
<line x1="250.0" y1="147.0" x2="250.0" y2="232.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="242.5" y="154.8" width="15" height="70.2" fill="#c00"/>
|
||||||
|
<line x1="284.0" y1="56.0" x2="284.0" y2="230.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="276.5" y="63.8" width="15" height="161.2" fill="#188a3e"/>
|
||||||
|
<line x1="318.0" y1="56.0" x2="318.0" y2="97.6" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="310.5" y="63.8" width="15" height="26.0" fill="#c00"/>
|
||||||
|
<line x1="352.0" y1="82.0" x2="352.0" y2="147.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="344.5" y="89.8" width="15" height="49.4" fill="#c00"/>
|
||||||
|
<line x1="386.0" y1="131.4" x2="386.0" y2="196.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="378.5" y="139.2" width="15" height="49.4" fill="#c00"/>
|
||||||
|
<line x1="420.0" y1="180.8" x2="420.0" y2="248.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="412.5" y="188.6" width="15" height="52.0" fill="#c00"/>
|
||||||
|
<line x1="454.0" y1="232.8" x2="454.0" y2="284.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="446.5" y="240.6" width="15" height="36.4" fill="#c00"/>
|
||||||
|
<line x1="488.0" y1="269.2" x2="488.0" y2="321.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="480.5" y="277.0" width="15" height="36.4" fill="#c00"/>
|
||||||
|
<line x1="324.0" y1="314.4" x2="446.3" y2="280.5" stroke="#c00" stroke-width="1.8"/>
|
||||||
|
<polygon points="454.0,278.4 447.4,284.4 445.2,276.7" fill="#c00"/>
|
||||||
|
<text x="324.0" y="328.4" fill="#c00" text-anchor="middle" style="font-weight:bold">sub bază ideea s-a inversat:</text>
|
||||||
|
<text x="324.0" y="342.4" fill="#c00" text-anchor="middle" style="font-weight:bold">de aici se shortează, nu se cumpără</text>
|
||||||
|
</g>
|
||||||
|
<text x="24" y="790" fill="#555">Singura cifră a secțiunii: «unul pe doi retestează din consolidare» — jumătatea.</text>
|
||||||
|
<text x="24" y="807" fill="#555">Între jumătate și bază e zonă de avertizare; sub bază, ideea s-a inversat.</text>
|
||||||
|
<text x="24" y="824" fill="#555">Retestul nu e garantat: de aceea intrarea se face în tranșe, nu așteptând.</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.9 KiB |
156
gen/strategii/dhrt_setup.svg
Normal file
156
gen/strategii/dhrt_setup.svg
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
<svg viewBox="0 0 760 961" 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="48" fill="#333" style="font-weight:bold">DA — HS răsturnat cu capul și umărul drept pe niveluri (exemplu construit)</text>
|
||||||
|
<rect x="439.5" y="110.0" width="172.0" height="84.5" fill="#188a3e" fill-opacity="0.08" stroke="#188a3e" stroke-width="1"/>
|
||||||
|
<text x="439.5" y="105.0" fill="#188a3e" style="font-weight:bold">umărul drept = consolidarea</text>
|
||||||
|
<line x1="24.0" y1="186.5" x2="746" y2="186.5" stroke="#333" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="732" y="180.5" fill="#333" text-anchor="end">pivotul lunii 58.50</text>
|
||||||
|
<line x1="24.0" y1="284.0" x2="746" y2="284.0" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="278.0" fill="#1a5fb4">suportul lunii 52.00</text>
|
||||||
|
<line x1="58.0" y1="56.0" x2="58.0" y2="81.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="53.5" y="60.5" width="9" height="16.5" fill="#c00"/>
|
||||||
|
<line x1="75.0" y1="72.5" x2="75.0" y2="107.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="70.5" y="77.0" width="9" height="25.5" fill="#c00"/>
|
||||||
|
<line x1="92.0" y1="98.0" x2="92.0" y2="129.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="87.5" y="102.5" width="9" height="22.5" fill="#c00"/>
|
||||||
|
<line x1="109.0" y1="120.5" x2="109.0" y2="147.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="104.5" y="125.0" width="9" height="18.0" fill="#c00"/>
|
||||||
|
<line x1="126.0" y1="138.5" x2="126.0" y2="167.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="121.5" y="143.0" width="9" height="19.5" fill="#c00"/>
|
||||||
|
<line x1="143.0" y1="158.0" x2="143.0" y2="183.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="138.5" y="162.5" width="9" height="16.5" fill="#c00"/>
|
||||||
|
<line x1="160.0" y1="173.8" x2="160.0" y2="186.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="155.5" y="179.0" width="9" height="4.5" fill="#c00"/>
|
||||||
|
<line x1="177.0" y1="156.5" x2="177.0" y2="188.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="172.5" y="161.0" width="9" height="22.5" fill="#188a3e"/>
|
||||||
|
<line x1="194.0" y1="135.5" x2="194.0" y2="165.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="189.5" y="140.0" width="9" height="21.0" fill="#188a3e"/>
|
||||||
|
<line x1="211.0" y1="119.0" x2="211.0" y2="144.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="206.5" y="123.5" width="9" height="16.5" fill="#188a3e"/>
|
||||||
|
<line x1="228.0" y1="114.5" x2="228.0" y2="128.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="223.5" y="118.3" width="9" height="5.2" fill="#188a3e"/>
|
||||||
|
<line x1="245.0" y1="113.8" x2="245.0" y2="149.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="240.5" y="118.3" width="9" height="26.2" fill="#c00"/>
|
||||||
|
<line x1="262.0" y1="140.0" x2="262.0" y2="180.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="257.5" y="144.5" width="9" height="31.5" fill="#c00"/>
|
||||||
|
<line x1="279.0" y1="171.5" x2="279.0" y2="213.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="274.5" y="176.0" width="9" height="33.0" fill="#c00"/>
|
||||||
|
<line x1="296.0" y1="204.5" x2="296.0" y2="242.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="291.5" y="209.0" width="9" height="28.5" fill="#c00"/>
|
||||||
|
<line x1="313.0" y1="233.0" x2="313.0" y2="270.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="308.5" y="237.5" width="9" height="28.5" fill="#c00"/>
|
||||||
|
<line x1="330.0" y1="260.0" x2="330.0" y2="284.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="325.5" y="266.0" width="9" height="13.5" fill="#c00"/>
|
||||||
|
<line x1="347.0" y1="240.5" x2="347.0" y2="284.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="342.5" y="245.0" width="9" height="34.5" fill="#188a3e"/>
|
||||||
|
<line x1="364.0" y1="206.0" x2="364.0" y2="249.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="359.5" y="210.5" width="9" height="34.5" fill="#188a3e"/>
|
||||||
|
<line x1="381.0" y1="177.5" x2="381.0" y2="215.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="376.5" y="182.0" width="9" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="398.0" y1="149.0" x2="398.0" y2="186.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="393.5" y="153.5" width="9" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="415.0" y1="126.5" x2="415.0" y2="158.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="410.5" y="131.0" width="9" height="22.5" fill="#188a3e"/>
|
||||||
|
<line x1="432.0" y1="114.5" x2="432.0" y2="134.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="427.5" y="119.0" width="9" height="12.0" fill="#188a3e"/>
|
||||||
|
<line x1="449.0" y1="114.5" x2="449.0" y2="152.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="444.5" y="119.0" width="9" height="28.5" fill="#c00"/>
|
||||||
|
<line x1="466.0" y1="143.8" x2="466.0" y2="183.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="461.5" y="147.5" width="9" height="27.0" fill="#c00"/>
|
||||||
|
<line x1="483.0" y1="170.0" x2="483.0" y2="186.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="478.5" y="174.5" width="9" height="7.5" fill="#c00"/>
|
||||||
|
<line x1="500.0" y1="153.5" x2="500.0" y2="186.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="495.5" y="158.0" width="9" height="24.0" fill="#188a3e"/>
|
||||||
|
<line x1="517.0" y1="128.0" x2="517.0" y2="162.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="512.5" y="132.5" width="9" height="25.5" fill="#188a3e"/>
|
||||||
|
<line x1="534.0" y1="128.0" x2="534.0" y2="155.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="529.5" y="132.5" width="9" height="18.0" fill="#c00"/>
|
||||||
|
<line x1="551.0" y1="146.0" x2="551.0" y2="186.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="546.5" y="150.5" width="9" height="27.0" fill="#c00"/>
|
||||||
|
<line x1="568.0" y1="155.0" x2="568.0" y2="182.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="563.5" y="159.5" width="9" height="18.0" fill="#188a3e"/>
|
||||||
|
<line x1="585.0" y1="155.0" x2="585.0" y2="177.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="580.5" y="159.5" width="9" height="13.5" fill="#c00"/>
|
||||||
|
<line x1="602.0" y1="168.5" x2="602.0" y2="186.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="597.5" y="173.0" width="9" height="10.5" fill="#c00"/>
|
||||||
|
<text x="160.0" y="220.5" fill="#555" text-anchor="middle" style="font-weight:bold">umărul stâng</text>
|
||||||
|
<line x1="340.0" y1="336.0" x2="331.6" y2="295.8" stroke="#1a5fb4" stroke-width="1.8"/>
|
||||||
|
<polygon points="330.0,288.0 335.5,295.0 327.7,296.6" fill="#1a5fb4"/>
|
||||||
|
<text x="340.0" y="350.0" fill="#1a5fb4" text-anchor="middle" style="font-weight:bold">capul se oprește pe suport, umărul drept pe pivot.</text>
|
||||||
|
<text x="340.0" y="364.0" fill="#1a5fb4" text-anchor="middle" style="font-weight:bold">Ajunge unul din două; fără niciunul, setup-ul nu e verificabil.</text>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(0,399)">
|
||||||
|
<text x="24" y="48" fill="#333" style="font-weight:bold">NU — triple bottom la al treilea test (altă scară de preț)</text>
|
||||||
|
<line x1="24.0" y1="280.2" x2="746" y2="280.2" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="732" y="274.2" fill="#555" text-anchor="end">baza 50.00, testată de trei ori</text>
|
||||||
|
<line x1="70.0" y1="56.0" x2="70.0" y2="120.6" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="63.5" y="67.4" width="13" height="41.8" fill="#c00"/>
|
||||||
|
<line x1="96.0" y1="97.8" x2="96.0" y2="170.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="89.5" y="109.2" width="13" height="49.4" fill="#c00"/>
|
||||||
|
<line x1="122.0" y1="147.2" x2="122.0" y2="223.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="115.5" y="158.6" width="13" height="53.2" fill="#c00"/>
|
||||||
|
<line x1="148.0" y1="200.4" x2="148.0" y2="276.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="141.5" y="211.8" width="13" height="53.2" fill="#c00"/>
|
||||||
|
<line x1="174.0" y1="255.5" x2="174.0" y2="280.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="167.5" y="265.0" width="13" height="7.6" fill="#c00"/>
|
||||||
|
<line x1="200.0" y1="208.0" x2="200.0" y2="284.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="193.5" y="219.4" width="13" height="53.2" fill="#188a3e"/>
|
||||||
|
<line x1="226.0" y1="162.4" x2="226.0" y2="230.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="219.5" y="173.8" width="13" height="45.6" fill="#188a3e"/>
|
||||||
|
<line x1="252.0" y1="162.4" x2="252.0" y2="219.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="245.5" y="173.8" width="13" height="34.2" fill="#c00"/>
|
||||||
|
<line x1="278.0" y1="196.6" x2="278.0" y2="261.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="271.5" y="208.0" width="13" height="41.8" fill="#c00"/>
|
||||||
|
<line x1="304.0" y1="240.3" x2="304.0" y2="280.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="297.5" y="249.8" width="13" height="19.0" fill="#c00"/>
|
||||||
|
<line x1="330.0" y1="211.8" x2="330.0" y2="280.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="323.5" y="223.2" width="13" height="45.6" fill="#188a3e"/>
|
||||||
|
<line x1="356.0" y1="177.6" x2="356.0" y2="234.6" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="349.5" y="189.0" width="13" height="34.2" fill="#188a3e"/>
|
||||||
|
<line x1="382.0" y1="177.6" x2="382.0" y2="242.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="375.5" y="189.0" width="13" height="41.8" fill="#c00"/>
|
||||||
|
<line x1="408.0" y1="219.4" x2="408.0" y2="268.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="401.5" y="230.8" width="13" height="26.6" fill="#c00"/>
|
||||||
|
<line x1="434.0" y1="247.9" x2="434.0" y2="280.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="427.5" y="257.4" width="13" height="13.3" fill="#c00"/>
|
||||||
|
<line x1="460.0" y1="230.8" x2="460.0" y2="282.1" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="453.5" y="242.2" width="13" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="486.0" y1="230.8" x2="486.0" y2="276.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="479.5" y="242.2" width="13" height="22.8" fill="#c00"/>
|
||||||
|
<line x1="512.0" y1="253.6" x2="512.0" y2="306.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="505.5" y="265.0" width="13" height="30.4" fill="#c00"/>
|
||||||
|
<line x1="538.0" y1="284.0" x2="538.0" y2="341.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="531.5" y="295.4" width="13" height="34.2" fill="#c00"/>
|
||||||
|
<line x1="24" y1="475.8" x2="746" y2="475.8" stroke="#888"/>
|
||||||
|
<rect x="63.5" y="445.5" width="13" height="30.3" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="89.5" y="442.5" width="13" height="33.3" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="115.5" y="436.4" width="13" height="39.4" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="141.5" y="430.4" width="13" height="45.4" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="167.5" y="419.8" width="13" height="56.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="193.5" y="441.0" width="13" height="34.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="219.5" y="444.0" width="13" height="31.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="245.5" y="442.5" width="13" height="33.3" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="271.5" y="439.5" width="13" height="36.3" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="297.5" y="434.9" width="13" height="40.9" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="323.5" y="445.5" width="13" height="30.3" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="349.5" y="447.0" width="13" height="28.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="375.5" y="446.3" width="13" height="29.5" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="401.5" y="445.5" width="13" height="30.3" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="427.5" y="447.0" width="13" height="28.8" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="453.5" y="448.6" width="13" height="27.2" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="479.5" y="450.1" width="13" height="25.7" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="505.5" y="442.5" width="13" height="33.3" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="531.5" y="436.4" width="13" height="39.4" fill="#c00" opacity="0.55"/>
|
||||||
|
<text x="24" y="413.8" fill="#555">volum</text>
|
||||||
|
<text x="174.0" y="300.2" fill="#555" text-anchor="middle" style="font-weight:bold">1</text>
|
||||||
|
<text x="304.0" y="300.2" fill="#555" text-anchor="middle" style="font-weight:bold">2</text>
|
||||||
|
<text x="434.0" y="300.2" fill="#c00" text-anchor="middle" style="font-weight:bold">3</text>
|
||||||
|
<line x1="344.0" y1="356.8" x2="427.8" y2="289.2" stroke="#c00" stroke-width="1.8"/>
|
||||||
|
<polygon points="434.0,284.2 430.3,292.3 425.3,286.1" fill="#c00"/>
|
||||||
|
<text x="344.0" y="370.8" fill="#c00" text-anchor="middle" style="font-weight:bold">al treilea test, cu volum mai mic la fiecare picior:</text>
|
||||||
|
<text x="344.0" y="384.8" fill="#c00" text-anchor="middle" style="font-weight:bold">șansele se întorc spre breakdown — nu intri</text>
|
||||||
|
</g>
|
||||||
|
<text x="24" y="919" fill="#555">Sus: filtrul de la pasul 1 — capul și/sau umărul drept pe un suport, pivot sau PPA.</text>
|
||||||
|
<text x="24" y="936" fill="#555">Simetria umerilor e analiza autorului, nu un prag: «depinde cum măsori».</text>
|
||||||
|
<text x="24" y="953" fill="#555">Jos: motivul e citat de autor din literatură, nu din testele lui.</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 12 KiB |
70
gen/strategii/dhrt_stop.svg
Normal file
70
gen/strategii/dhrt_stop.svg
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<svg viewBox="0 0 760 669" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<g transform="translate(0,0)"><polyline points="165.0,303.5 160.0,303.5 160.0,466.0 165.0,466.0" fill="none" stroke="#333" stroke-width="1.5"/><text x="166.0" y="381.7" fill="#333" style="font-weight:bold">H = 6.50</text><text x="166.0" y="395.7" fill="#333" style="font-weight:bold">cap → umăr</text><polyline points="677.0,141.0 672.0,141.0 672.0,411.7 677.0,411.7" fill="none" stroke="#c00" stroke-width="1.5"/><text x="680.0" y="280.4" fill="#c00" style="font-weight:bold">R = 10.83</text>
|
||||||
|
<text x="24" y="48" fill="#333" style="font-weight:bold">Stopul: treimea de jos din H (exemplu construit — cifrele nu sunt rostite în lecție)</text>
|
||||||
|
<line x1="24.0" y1="141.0" x2="746" y2="141.0" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="135.0" fill="#188a3e">intrare 65.00 = close-ul candelei de breakout</text>
|
||||||
|
<line x1="24.0" y1="303.5" x2="746" y2="303.5" stroke="#333" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="297.5" fill="#333">umărul drept 58.50</text>
|
||||||
|
<line x1="24.0" y1="357.7" x2="746" y2="357.7" stroke="#555" stroke-width="1.5" stroke-dasharray="2 4"/>
|
||||||
|
<text x="732" y="351.7" fill="#555" text-anchor="end">56.33 = 2/3</text>
|
||||||
|
<line x1="24.0" y1="411.7" x2="746" y2="411.7" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="405.7" fill="#c00">SL 54.17 = 1/3 din H</text>
|
||||||
|
<line x1="24.0" y1="466.0" x2="746" y2="466.0" stroke="#333" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="460.0" fill="#333">capul 52.00</text>
|
||||||
|
<line x1="200.0" y1="226.0" x2="200.0" y2="293.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="194.5" y="233.5" width="11" height="52.5" fill="#c00"/>
|
||||||
|
<line x1="220.0" y1="278.5" x2="220.0" y2="348.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="214.5" y="286.0" width="11" height="55.0" fill="#c00"/>
|
||||||
|
<line x1="240.0" y1="333.5" x2="240.0" y2="396.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="234.5" y="341.0" width="11" height="47.5" fill="#c00"/>
|
||||||
|
<line x1="260.0" y1="381.0" x2="260.0" y2="443.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="254.5" y="388.5" width="11" height="47.5" fill="#c00"/>
|
||||||
|
<line x1="280.0" y1="426.0" x2="280.0" y2="466.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="274.5" y="436.0" width="11" height="22.5" fill="#c00"/>
|
||||||
|
<line x1="300.0" y1="393.5" x2="300.0" y2="466.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="294.5" y="401.0" width="11" height="57.5" fill="#188a3e"/>
|
||||||
|
<line x1="320.0" y1="336.0" x2="320.0" y2="408.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="314.5" y="343.5" width="11" height="57.5" fill="#188a3e"/>
|
||||||
|
<line x1="340.0" y1="288.5" x2="340.0" y2="351.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="334.5" y="296.0" width="11" height="47.5" fill="#188a3e"/>
|
||||||
|
<line x1="360.0" y1="241.0" x2="360.0" y2="303.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="354.5" y="248.5" width="11" height="47.5" fill="#188a3e"/>
|
||||||
|
<line x1="380.0" y1="203.5" x2="380.0" y2="256.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="374.5" y="211.0" width="11" height="37.5" fill="#188a3e"/>
|
||||||
|
<line x1="400.0" y1="183.5" x2="400.0" y2="217.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="394.5" y="191.0" width="11" height="20.0" fill="#188a3e"/>
|
||||||
|
<line x1="420.0" y1="183.5" x2="420.0" y2="246.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="414.5" y="191.0" width="11" height="47.5" fill="#c00"/>
|
||||||
|
<line x1="440.0" y1="232.2" x2="440.0" y2="298.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="434.5" y="238.5" width="11" height="45.0" fill="#c00"/>
|
||||||
|
<line x1="460.0" y1="276.0" x2="460.0" y2="303.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="454.5" y="283.5" width="11" height="12.5" fill="#c00"/>
|
||||||
|
<line x1="480.0" y1="248.5" x2="480.0" y2="303.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="474.5" y="256.0" width="11" height="40.0" fill="#188a3e"/>
|
||||||
|
<line x1="500.0" y1="206.0" x2="500.0" y2="263.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="494.5" y="213.5" width="11" height="42.5" fill="#188a3e"/>
|
||||||
|
<line x1="520.0" y1="206.0" x2="520.0" y2="251.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="514.5" y="213.5" width="11" height="30.0" fill="#c00"/>
|
||||||
|
<line x1="540.0" y1="236.0" x2="540.0" y2="303.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="534.5" y="243.5" width="11" height="45.0" fill="#c00"/>
|
||||||
|
<line x1="560.0" y1="251.0" x2="560.0" y2="296.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="554.5" y="258.5" width="11" height="30.0" fill="#188a3e"/>
|
||||||
|
<line x1="580.0" y1="251.0" x2="580.0" y2="288.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="574.5" y="258.5" width="11" height="22.5" fill="#c00"/>
|
||||||
|
<line x1="600.0" y1="273.5" x2="600.0" y2="303.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="594.5" y="281.0" width="11" height="17.5" fill="#c00"/>
|
||||||
|
<line x1="620.0" y1="133.5" x2="620.0" y2="303.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="614.5" y="141.0" width="11" height="157.5" fill="#188a3e"/>
|
||||||
|
<line x1="640.0" y1="98.5" x2="640.0" y2="148.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="634.5" y="106.0" width="11" height="35.0" fill="#188a3e"/>
|
||||||
|
<line x1="660.0" y1="56.0" x2="660.0" y2="113.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="654.5" y="63.5" width="11" height="42.5" fill="#188a3e"/>
|
||||||
|
<line x1="250.0" y1="546.0" x2="278.2" y2="423.5" stroke="#c00" stroke-width="1.8"/>
|
||||||
|
<polygon points="280.0,415.7 282.1,424.4 274.3,422.6" fill="#c00"/>
|
||||||
|
<text x="250.0" y="560.0" fill="#c00" text-anchor="middle" style="font-weight:bold">54.17 e cel mai SUS la care are voie stopul</text>
|
||||||
|
<text x="250.0" y="574.0" fill="#c00" text-anchor="middle" style="font-weight:bold">(riscul cel mai mic permis); mai jos, oricât</text>
|
||||||
|
</g>
|
||||||
|
<text x="24" y="627" fill="#555">H se măsoară de la low-ul capului la nivelul umărului drept — nu la linia gâtului.</text>
|
||||||
|
<text x="24" y="644" fill="#555">52.00 + 6.50/3 = 54.17. Peste 54.17 stopul nu are voie; sub, oricât.</text>
|
||||||
|
<text x="24" y="661" fill="#555">R se măsoară de la intrare (65.00) la stop, nu de la nivelul umărului.</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.1 KiB |
82
gen/strategii/dhrt_tinte.svg
Normal file
82
gen/strategii/dhrt_tinte.svg
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
<svg viewBox="0 0 760 518" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||||
|
<g transform="translate(0,0)"><polyline points="63.0,261.5 58.0,261.5 58.0,426.5 63.0,426.5" fill="none" stroke="#6a3d9a" stroke-width="1.5"/><text x="64.0" y="348.0" fill="#6a3d9a" style="font-weight:bold">11.00</text><polyline points="647.0,96.5 642.0,96.5 642.0,261.5 647.0,261.5" fill="none" stroke="#1a5fb4" stroke-width="1.5"/><text x="650.0" y="183.0" fill="#1a5fb4" style="font-weight:bold">11.00</text>
|
||||||
|
<text x="24" y="48" fill="#333" style="font-weight:bold">Cele două ținte (exemplu construit — cifrele nu sunt rostite în lecție)</text>
|
||||||
|
<line x1="24.0" y1="69.1" x2="746" y2="69.1" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="63.1" fill="#1a5fb4">TP1 75.83 = intrarea + R (10.83)</text>
|
||||||
|
<line x1="24.0" y1="96.5" x2="746" y2="96.5" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="90.5" fill="#1a5fb4">TP2 74.00 = gâtul + 11.00</text>
|
||||||
|
<line x1="24.0" y1="231.5" x2="746" y2="231.5" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="225.5" fill="#188a3e">intrare 65.00</text>
|
||||||
|
<line x1="24.0" y1="261.5" x2="746" y2="261.5" stroke="#6a3d9a" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="732" y="255.5" fill="#6a3d9a" text-anchor="end">linia gâtului 63.00</text>
|
||||||
|
<line x1="24.0" y1="426.5" x2="746" y2="426.5" stroke="#333" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="732" y="420.5" fill="#333" text-anchor="end">capul 52.00</text>
|
||||||
|
<line x1="92.0" y1="402.5" x2="92.0" y2="426.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="86.5" y="408.5" width="11" height="13.5" fill="#c00"/>
|
||||||
|
<line x1="114.0" y1="383.0" x2="114.0" y2="426.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="108.5" y="387.5" width="11" height="34.5" fill="#188a3e"/>
|
||||||
|
<line x1="136.0" y1="348.5" x2="136.0" y2="392.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="130.5" y="353.0" width="11" height="34.5" fill="#188a3e"/>
|
||||||
|
<line x1="158.0" y1="320.0" x2="158.0" y2="357.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="152.5" y="324.5" width="11" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="180.0" y1="291.5" x2="180.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="174.5" y="296.0" width="11" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="202.0" y1="269.0" x2="202.0" y2="300.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="196.5" y="273.5" width="11" height="22.5" fill="#188a3e"/>
|
||||||
|
<line x1="224.0" y1="257.0" x2="224.0" y2="277.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="218.5" y="261.5" width="11" height="12.0" fill="#188a3e"/>
|
||||||
|
<line x1="246.0" y1="257.0" x2="246.0" y2="294.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="240.5" y="261.5" width="11" height="28.5" fill="#c00"/>
|
||||||
|
<line x1="268.0" y1="286.2" x2="268.0" y2="326.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="262.5" y="290.0" width="11" height="27.0" fill="#c00"/>
|
||||||
|
<line x1="290.0" y1="312.5" x2="290.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="284.5" y="317.0" width="11" height="7.5" fill="#c00"/>
|
||||||
|
<line x1="312.0" y1="296.0" x2="312.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="306.5" y="300.5" width="11" height="24.0" fill="#188a3e"/>
|
||||||
|
<line x1="334.0" y1="270.5" x2="334.0" y2="305.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="328.5" y="275.0" width="11" height="25.5" fill="#188a3e"/>
|
||||||
|
<line x1="356.0" y1="270.5" x2="356.0" y2="297.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="350.5" y="275.0" width="11" height="18.0" fill="#c00"/>
|
||||||
|
<line x1="378.0" y1="288.5" x2="378.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="372.5" y="293.0" width="11" height="27.0" fill="#c00"/>
|
||||||
|
<line x1="400.0" y1="297.5" x2="400.0" y2="324.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="394.5" y="302.0" width="11" height="18.0" fill="#188a3e"/>
|
||||||
|
<line x1="422.0" y1="297.5" x2="422.0" y2="320.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="416.5" y="302.0" width="11" height="13.5" fill="#c00"/>
|
||||||
|
<line x1="444.0" y1="311.0" x2="444.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="438.5" y="315.5" width="11" height="10.5" fill="#c00"/>
|
||||||
|
<line x1="466.0" y1="227.0" x2="466.0" y2="329.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="460.5" y="231.5" width="11" height="94.5" fill="#188a3e"/>
|
||||||
|
<line x1="488.0" y1="206.0" x2="488.0" y2="236.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="482.5" y="210.5" width="11" height="21.0" fill="#188a3e"/>
|
||||||
|
<line x1="510.0" y1="180.5" x2="510.0" y2="215.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="504.5" y="185.0" width="11" height="25.5" fill="#188a3e"/>
|
||||||
|
<line x1="532.0" y1="147.5" x2="532.0" y2="189.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="526.5" y="152.0" width="11" height="33.0" fill="#188a3e"/>
|
||||||
|
<line x1="554.0" y1="119.0" x2="554.0" y2="156.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="548.5" y="123.5" width="11" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="576.0" y1="90.5" x2="576.0" y2="128.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="570.5" y="95.0" width="11" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="598.0" y1="63.5" x2="598.0" y2="99.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="592.5" y="68.0" width="11" height="27.0" fill="#188a3e"/>
|
||||||
|
<line x1="620.0" y1="63.5" x2="620.0" y2="83.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="614.5" y="68.0" width="11" height="10.5" fill="#c00"/>
|
||||||
|
<line x1="642.0" y1="56.0" x2="642.0" y2="83.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="636.5" y="60.5" width="11" height="18.0" fill="#188a3e"/>
|
||||||
|
<line x1="664.0" y1="56.0" x2="664.0" y2="77.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="658.5" y="60.5" width="11" height="12.0" fill="#c00"/>
|
||||||
|
<line x1="686.0" y1="60.5" x2="686.0" y2="77.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="680.5" y="65.0" width="11" height="7.5" fill="#188a3e"/>
|
||||||
|
<line x1="194.0" y1="177.0" x2="221.1" y2="245.6" stroke="#6a3d9a" stroke-width="1.8"/>
|
||||||
|
<polygon points="224.0,253.0 217.3,247.0 224.8,244.1" fill="#6a3d9a"/>
|
||||||
|
<text x="194.0" y="158.0" fill="#6a3d9a" text-anchor="middle" style="font-weight:bold">vârfurile gâtului ating 63.30; linia se trage din</text>
|
||||||
|
<text x="194.0" y="172.0" fill="#6a3d9a" text-anchor="middle" style="font-weight:bold">INTERIORUL gâtului, la 63.00 — nu e media lor</text>
|
||||||
|
<line x1="286.0" y1="395.5" x2="570.4" y2="106.2" stroke="#1a5fb4" stroke-width="1.8"/>
|
||||||
|
<polygon points="576.0,100.5 573.2,109.0 567.5,103.4" fill="#1a5fb4"/>
|
||||||
|
<text x="286.0" y="409.5" fill="#1a5fb4" text-anchor="middle" style="font-weight:bold">TP2 (74.00) vine înaintea lui TP1 (75.83)</text>
|
||||||
|
<text x="286.0" y="423.5" fill="#1a5fb4" text-anchor="middle" style="font-weight:bold">pe exemplul ăsta — ordinea nu e fixă</text>
|
||||||
|
</g>
|
||||||
|
<text x="24" y="476" fill="#555">TP1 = 65.00 + 10.83 = 75.83. TP2 = 63.00 + (63.00 − 52.00) = 74.00.</text>
|
||||||
|
<text x="24" y="493" fill="#555">Cât de jos tragi linia gâtului mută TP2 cu exact atât — e o alegere a ta, nu o formulă.</text>
|
||||||
|
<text x="24" y="510" fill="#555">Lecția spune doar «din interiorul gâtului, iau un average»; formulă rostită nu există.</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.1 KiB |
149
gen/strategii/dhrt_trigger.svg
Normal file
149
gen/strategii/dhrt_trigger.svg
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
<svg viewBox="0 0 760 1041" 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="48" fill="#333" style="font-weight:bold">DA — trigger în umărul drept (exemplu construit)</text>
|
||||||
|
<rect x="269.5" y="189.0" width="201.0" height="104.9" fill="#188a3e" fill-opacity="0.08" stroke="#188a3e" stroke-width="1"/>
|
||||||
|
<text x="269.5" y="184.0" fill="#188a3e" style="font-weight:bold">consolidarea umărului drept</text>
|
||||||
|
<line x1="24.0" y1="162.4" x2="746" y2="162.4" stroke="#188a3e" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="156.4" fill="#188a3e">intrare 65.00 = close-ul trigger-ului</text>
|
||||||
|
<line x1="24.0" y1="200.4" x2="746" y2="200.4" stroke="#6a3d9a" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="194.4" fill="#6a3d9a">linia gâtului 63.00</text>
|
||||||
|
<line x1="60.0" y1="227.0" x2="60.0" y2="278.3" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="54.5" y="232.7" width="11" height="39.9" fill="#c00"/>
|
||||||
|
<line x1="80.0" y1="266.9" x2="80.0" y2="320.1" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="74.5" y="272.6" width="11" height="41.8" fill="#c00"/>
|
||||||
|
<line x1="100.0" y1="308.7" x2="100.0" y2="356.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="94.5" y="314.4" width="11" height="36.1" fill="#c00"/>
|
||||||
|
<line x1="120.0" y1="344.8" x2="120.0" y2="392.3" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="114.5" y="350.5" width="11" height="36.1" fill="#c00"/>
|
||||||
|
<line x1="140.0" y1="379.0" x2="140.0" y2="409.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="134.5" y="386.6" width="11" height="17.1" fill="#c00"/>
|
||||||
|
<line x1="160.0" y1="354.3" x2="160.0" y2="409.4" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="154.5" y="360.0" width="11" height="43.7" fill="#188a3e"/>
|
||||||
|
<line x1="180.0" y1="310.6" x2="180.0" y2="365.7" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="174.5" y="316.3" width="11" height="43.7" fill="#188a3e"/>
|
||||||
|
<line x1="200.0" y1="274.5" x2="200.0" y2="322.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="194.5" y="280.2" width="11" height="36.1" fill="#188a3e"/>
|
||||||
|
<line x1="220.0" y1="238.4" x2="220.0" y2="285.9" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="214.5" y="244.1" width="11" height="36.1" fill="#188a3e"/>
|
||||||
|
<line x1="240.0" y1="209.9" x2="240.0" y2="249.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="234.5" y="215.6" width="11" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="260.0" y1="194.7" x2="260.0" y2="220.3" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="254.5" y="200.4" width="11" height="15.2" fill="#188a3e"/>
|
||||||
|
<line x1="280.0" y1="194.7" x2="280.0" y2="242.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="274.5" y="200.4" width="11" height="36.1" fill="#c00"/>
|
||||||
|
<line x1="300.0" y1="231.7" x2="300.0" y2="282.1" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="294.5" y="236.5" width="11" height="34.2" fill="#c00"/>
|
||||||
|
<line x1="320.0" y1="265.0" x2="320.0" y2="285.9" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="314.5" y="270.7" width="11" height="9.5" fill="#c00"/>
|
||||||
|
<line x1="340.0" y1="244.1" x2="340.0" y2="285.9" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="334.5" y="249.8" width="11" height="30.4" fill="#188a3e"/>
|
||||||
|
<line x1="360.0" y1="211.8" x2="360.0" y2="255.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="354.5" y="217.5" width="11" height="32.3" fill="#188a3e"/>
|
||||||
|
<line x1="380.0" y1="211.8" x2="380.0" y2="246.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="374.5" y="217.5" width="11" height="22.8" fill="#c00"/>
|
||||||
|
<line x1="400.0" y1="234.6" x2="400.0" y2="285.9" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="394.5" y="240.3" width="11" height="34.2" fill="#c00"/>
|
||||||
|
<line x1="420.0" y1="246.0" x2="420.0" y2="280.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="414.5" y="251.7" width="11" height="22.8" fill="#188a3e"/>
|
||||||
|
<line x1="440.0" y1="246.0" x2="440.0" y2="274.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="434.5" y="251.7" width="11" height="17.1" fill="#c00"/>
|
||||||
|
<line x1="460.0" y1="263.1" x2="460.0" y2="285.9" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="454.5" y="268.8" width="11" height="13.3" fill="#c00"/>
|
||||||
|
<line x1="480.0" y1="156.7" x2="480.0" y2="285.9" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="474.5" y="162.4" width="11" height="119.7" fill="#188a3e"/>
|
||||||
|
<line x1="500.0" y1="130.1" x2="500.0" y2="168.1" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="494.5" y="135.8" width="11" height="26.6" fill="#188a3e"/>
|
||||||
|
<line x1="520.0" y1="97.8" x2="520.0" y2="141.5" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="514.5" y="103.5" width="11" height="32.3" fill="#188a3e"/>
|
||||||
|
<line x1="540.0" y1="56.0" x2="540.0" y2="109.2" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="534.5" y="61.7" width="11" height="41.8" fill="#188a3e"/>
|
||||||
|
<line x1="24" y1="576.4" x2="746" y2="576.4" stroke="#888"/>
|
||||||
|
<rect x="54.5" y="546.4" width="11" height="30.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="74.5" y="543.9" width="11" height="32.5" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="94.5" y="541.4" width="11" height="35.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="114.5" y="538.9" width="11" height="37.5" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="134.5" y="525.1" width="11" height="51.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="154.5" y="545.1" width="11" height="31.3" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="174.5" y="547.6" width="11" height="28.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="194.5" y="548.9" width="11" height="27.5" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="214.5" y="549.5" width="11" height="26.9" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="234.5" y="548.3" width="11" height="28.1" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="254.5" y="548.9" width="11" height="27.5" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="274.5" y="550.1" width="11" height="26.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="294.5" y="551.4" width="11" height="25.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="314.5" y="540.1" width="11" height="36.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="334.5" y="548.9" width="11" height="27.5" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="354.5" y="547.6" width="11" height="28.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="374.5" y="549.5" width="11" height="26.9" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="394.5" y="550.8" width="11" height="25.6" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="414.5" y="547.6" width="11" height="28.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="434.5" y="548.9" width="11" height="27.5" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="454.5" y="550.1" width="11" height="26.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="474.5" y="516.4" width="11" height="60.0" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="494.5" y="532.6" width="11" height="43.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="514.5" y="537.6" width="11" height="38.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="534.5" y="540.1" width="11" height="36.2" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<text x="24" y="510.4" fill="#555">volum</text>
|
||||||
|
<line x1="204.0" y1="453.4" x2="474.5" y2="172.2" stroke="#188a3e" stroke-width="1.8"/>
|
||||||
|
<polygon points="480.0,166.4 477.3,174.9 471.6,169.4" fill="#188a3e"/>
|
||||||
|
<text x="204.0" y="467.4" fill="#188a3e" text-anchor="middle" style="font-weight:bold">TRIGGER: close peste consolidare ȘI peste gât,</text>
|
||||||
|
<text x="204.0" y="481.4" fill="#188a3e" text-anchor="middle" style="font-weight:bold">cu volumul peste vârful anterior de volum</text>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(0,602)">
|
||||||
|
<text x="24" y="48" fill="#333" style="font-weight:bold">NU — breakout de preț fără breakout de volum (exemplu construit)</text>
|
||||||
|
<line x1="24.0" y1="136.8" x2="746" y2="136.8" stroke="#555" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||||
|
<text x="30.0" y="130.8" fill="#555">baza consolidării 58.50</text>
|
||||||
|
<line x1="72.0" y1="56.0" x2="72.0" y2="80.7" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="65.5" y="62.7" width="13" height="11.4" fill="#c00"/>
|
||||||
|
<line x1="100.0" y1="67.4" x2="100.0" y2="111.1" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="93.5" y="74.1" width="13" height="30.4" fill="#c00"/>
|
||||||
|
<line x1="128.0" y1="69.3" x2="128.0" y2="111.1" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="121.5" y="75.9" width="13" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="156.0" y1="69.3" x2="156.0" y2="116.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="149.5" y="75.9" width="13" height="34.2" fill="#c00"/>
|
||||||
|
<line x1="184.0" y1="65.5" x2="184.0" y2="116.8" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="177.5" y="72.2" width="13" height="38.0" fill="#188a3e"/>
|
||||||
|
<line x1="212.0" y1="65.5" x2="212.0" y2="113.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="205.5" y="72.2" width="13" height="34.2" fill="#c00"/>
|
||||||
|
<line x1="240.0" y1="71.2" x2="240.0" y2="113.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="233.5" y="77.8" width="13" height="28.5" fill="#188a3e"/>
|
||||||
|
<line x1="268.0" y1="71.2" x2="268.0" y2="118.7" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="261.5" y="77.8" width="13" height="34.2" fill="#c00"/>
|
||||||
|
<line x1="296.0" y1="67.4" x2="296.0" y2="118.7" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="289.5" y="74.1" width="13" height="38.0" fill="#188a3e"/>
|
||||||
|
<line x1="324.0" y1="67.4" x2="324.0" y2="114.9" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="317.5" y="74.1" width="13" height="34.2" fill="#c00"/>
|
||||||
|
<line x1="352.0" y1="75.0" x2="352.0" y2="114.9" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="345.5" y="81.7" width="13" height="26.6" fill="#188a3e"/>
|
||||||
|
<line x1="380.0" y1="75.0" x2="380.0" y2="120.6" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="373.5" y="81.7" width="13" height="32.3" fill="#c00"/>
|
||||||
|
<line x1="408.0" y1="107.3" x2="408.0" y2="164.3" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="401.5" y="113.9" width="13" height="43.7" fill="#c00"/>
|
||||||
|
<line x1="436.0" y1="151.0" x2="436.0" y2="189.0" stroke="#1a1a1a" stroke-width="1.2"/>
|
||||||
|
<rect x="429.5" y="157.7" width="13" height="24.7" fill="#c00"/>
|
||||||
|
<line x1="24" y1="318.4" x2="746" y2="318.4" stroke="#888"/>
|
||||||
|
<text x="742" y="314.4" fill="#888" text-anchor="end">0</text>
|
||||||
|
<rect x="65.5" y="304.4" width="13" height="14.0" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="93.5" y="309.7" width="13" height="8.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="121.5" y="307.9" width="13" height="10.5" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="149.5" y="318.4" width="13" height="7.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="177.5" y="313.2" width="13" height="5.2" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="205.5" y="318.4" width="13" height="12.2" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="233.5" y="314.9" width="13" height="3.5" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="261.5" y="318.4" width="13" height="17.5" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="289.5" y="316.7" width="13" height="1.8" fill="#188a3e" opacity="0.55"/>
|
||||||
|
<rect x="317.5" y="318.4" width="13" height="22.8" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="345.5" y="318.4" width="13" height="3.5" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="373.5" y="318.4" width="13" height="28.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="401.5" y="318.4" width="13" height="15.8" fill="#c00" opacity="0.55"/>
|
||||||
|
<rect x="429.5" y="318.4" width="13" height="35.0" fill="#c00" opacity="0.55"/>
|
||||||
|
<text x="24" y="277.4" fill="#555">volum cu semn (on balance volume)</text>
|
||||||
|
<line x1="221.0" y1="220.4" x2="428.1" y2="185.8" stroke="#c00" stroke-width="1.8"/>
|
||||||
|
<polygon points="436.0,184.4 428.8,189.7 427.4,181.8" fill="#c00"/>
|
||||||
|
<text x="221.0" y="234.4" fill="#c00" text-anchor="middle" style="font-weight:bold">prețul ține consolidarea, dar minimele volumului coboară:</text>
|
||||||
|
<text x="221.0" y="248.4" fill="#c00" text-anchor="middle" style="font-weight:bold">aștepți breakdown, nu intri long</text>
|
||||||
|
</g>
|
||||||
|
<text x="24" y="999" fill="#555">Sus: trigger-ul e candela de breakout; buy doji / buy hammer / buy momentum</text>
|
||||||
|
<text x="24" y="1016" fill="#555">din umărul drept sunt la fel de valide, cu intrarea la close-ul lor.</text>
|
||||||
|
<text x="24" y="1033" fill="#555">Jos: singurul «nu intra» formulat ca regulă mecanică — volumul rupe înaintea prețului.</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 12 KiB |
@@ -19,7 +19,10 @@ import sys
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
ROOT = Path(__file__).resolve().parent.parent.parent
|
ROOT = Path(__file__).resolve().parent.parent.parent
|
||||||
CAPITOLE = sorted((ROOT / "summaries" / "17_STRATEGII").glob("[0A][1-8]_*.md"))
|
_S = ROOT / "summaries" / "17_STRATEGII"
|
||||||
|
# numerele au ajuns la doua cifre (09, 10): un glob pe [0A][1-8] le sarea, si
|
||||||
|
# sarea tacut — capitolul parea doar sa n-aiba marcaje.
|
||||||
|
CAPITOLE = sorted({*_S.glob("[0-9][0-9]_*.md"), *_S.glob("A[0-9]_*.md")})
|
||||||
# fie marcajul gol (prima punere), fie blocul deja ancorat (repunere)
|
# fie marcajul gol (prima punere), fie blocul deja ancorat (repunere)
|
||||||
MARCAJ = re.compile(
|
MARCAJ = re.compile(
|
||||||
r"^[ \t]*<!-- DIAGRAMA: ([a-z0-9_]+) -->[ \t]*$"
|
r"^[ \t]*<!-- DIAGRAMA: ([a-z0-9_]+) -->[ \t]*$"
|
||||||
|
|||||||
Reference in New Issue
Block a user