selectia: SVG-urile purtau inca erorile corectate in text
Corectorul n-are voie la SVG, deci a semnalat si le-am reparat eu, in generatoare: - gen/selectia/cadrane.py: cadranul 3 scria "imbunatatire spre underperform" — chiar langa textul corectat. Acum "inrautatire, histograma inca peste linia 0". - gen/selectia/funnel.py: "0.96 si 0.74 au fost respinse" era fals. Pe YPF la 0.96 zice "din pacate" si il trece oricum pe lista. - gen/strategii/selectia_scor.py: "sub 7 se deduce ca excludere". Bonus, preexistenta: in selectia_exemplu.py eticheta rezistentei 84.50 cadea peste titlu. Mutata la dreapta. audit_diagrams: 0 pe toate. A1_risc: doua trimiteri la fise/selectia.md decalate cu 7 linii. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
@@ -15,7 +15,10 @@ Etichete si cifre, toate din text/glosar (fara axe inventate, fara procente):
|
||||
- cadran 1 = supraperformanta, bate benchmark-ul, long (.md:63,310)
|
||||
- cadran 2 = imbunatatire spre supraperformanta, zona de cumparat,
|
||||
la long, de preferat (.md:64,311)
|
||||
- cadran 3 = imbunatatire spre underperform, pentru short (.md:65,312)
|
||||
- cadran 3 = INRAUTATIRE (histograma inca peste linia 0, dar sub medie),
|
||||
pentru short. Definitia din modul:
|
||||
`03_MODUL_2/06_6_INDICATORUL_DE_PERFORMANTA.txt:6`. Documentul scria
|
||||
„imbunatatire spre underperform" — gresit, corectat pe 19.09.2026.
|
||||
- cadran 4 = underperform, pierde in fata benchmark-ului,
|
||||
short / stai pe margine (.md:66,313)
|
||||
- cadranul 4 nu se tranzactioneaza pe orb: astepti trecerea in 2 sau 1,
|
||||
@@ -61,9 +64,9 @@ CARDS = [
|
||||
]),
|
||||
(COL1_X, ROW2_Y, [
|
||||
(34, "Cadran 3", 16, "700", BLACK),
|
||||
(66, "îmbunătățire spre", 14, "400", BLACK),
|
||||
(86, "underperform", 14, "400", BLACK),
|
||||
(110, "pentru short", 13, "400", GRAY),
|
||||
(66, "înrăutățire", 14, "400", BLACK),
|
||||
(86, "încă peste linia 0", 14, "400", BLACK),
|
||||
(110, "pierde avans; pentru short", 13, "400", GRAY),
|
||||
(132, "SHORT", 13, "700", BLUE),
|
||||
]),
|
||||
(COL2_X, ROW2_Y, [
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
<text x="515.0" y="218" font-size="13" font-weight="700" fill="#1a5fb4" text-anchor="middle">LONG</text>
|
||||
<rect x="40" y="302" width="290" height="150" rx="10" fill="#ffffff" stroke="#1a5fb4" stroke-width="1.5"/>
|
||||
<text x="185.0" y="336" font-size="16" font-weight="700" fill="#000000" text-anchor="middle">Cadran 3</text>
|
||||
<text x="185.0" y="368" font-size="14" font-weight="400" fill="#000000" text-anchor="middle">îmbunătățire spre</text>
|
||||
<text x="185.0" y="388" font-size="14" font-weight="400" fill="#000000" text-anchor="middle">underperform</text>
|
||||
<text x="185.0" y="412" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">pentru short</text>
|
||||
<text x="185.0" y="368" font-size="14" font-weight="400" fill="#000000" text-anchor="middle">înrăutățire</text>
|
||||
<text x="185.0" y="388" font-size="14" font-weight="400" fill="#000000" text-anchor="middle">încă peste linia 0</text>
|
||||
<text x="185.0" y="412" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">pierde avans; pentru short</text>
|
||||
<text x="185.0" y="434" font-size="13" font-weight="700" fill="#1a5fb4" text-anchor="middle">SHORT</text>
|
||||
<rect x="370" y="302" width="290" height="150" rx="10" fill="#ffffff" stroke="#1a5fb4" stroke-width="1.5"/>
|
||||
<text x="515.0" y="336" font-size="16" font-weight="700" fill="#000000" text-anchor="middle">Cadran 4</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
@@ -108,10 +108,10 @@ for i in range(N_BANDS):
|
||||
svg.append(arrow(y + BAND_H + 6))
|
||||
|
||||
svg.append(txt(W / 2, FOOT_Y,
|
||||
"Sub 100% relative volume: 0.96 și 0.74 au fost respinse; el vrea peste 100%.",
|
||||
"Sub 100% relative volume e un minus, nu un veto: 0.96 (YPF) „din păcate”, dar îl trece pe listă;",
|
||||
size=13, fill=GRAY))
|
||||
svg.append(txt(W / 2, FOOT_Y + 20,
|
||||
"Neconfirmat: nu reiese din sesiuni dacă sub prag oprește orice intrare.",
|
||||
"0.74 (AON) „hai să ne uităm așa un pic pe el”. Neconfirmat: dacă sub prag oprește o intrare pe trigger.",
|
||||
size=13, fill=GRAY))
|
||||
svg.append(txt(W / 2, H - 52,
|
||||
"Cifre din text: peste 100%, 10 candele, 0.96 / 0.74, cadranele 1-2.",
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
<rect x="202" y="576" width="296" height="58" rx="8" fill="#ffffff" stroke="#1a5fb4" stroke-width="1.5"/>
|
||||
<text x="350.0" y="601" font-family="system-ui, sans-serif" font-size="15" font-weight="700" fill="#000000" text-anchor="middle">Listă scurtă</text>
|
||||
<text x="350.0" y="621" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">taie lista la câteva idei</text>
|
||||
<text x="350.0" y="668" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Sub 100% relative volume: 0.96 și 0.74 au fost respinse; el vrea peste 100%.</text>
|
||||
<text x="350.0" y="688" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Neconfirmat: nu reiese din sesiuni dacă sub prag oprește orice intrare.</text>
|
||||
<text x="350.0" y="668" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Sub 100% relative volume e un minus, nu un veto: 0.96 (YPF) „din păcate”, dar îl trece pe listă;</text>
|
||||
<text x="350.0" y="688" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">0.74 (AON) „hai să ne uităm așa un pic pe el”. Neconfirmat: dacă sub prag oprește o intrare pe trigger.</text>
|
||||
<text x="350.0" y="712" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Cifre din text: peste 100%, 10 candele, 0.96 / 0.74, cadranele 1-2.</text>
|
||||
<text x="350.0" y="732" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Sursa: 11_selectia_simbolului.md — fluxul din scanner.</text>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.9 KiB |
@@ -101,7 +101,7 @@ assert min(c.l for c in cds) >= 71.30, "SL-ul de 82.00 nu poate fi sub minimul s
|
||||
|
||||
# ---------------------------------------------------------------- niveluri, etichete
|
||||
levels = [
|
||||
Level(84.50, "rezistenta 84.50", GRAY, label_at="left"),
|
||||
Level(84.50, "rezistenta 84.50", GRAY, label_at="right"),
|
||||
Level(82.00, "SL 82.00", RED, label_at="right"),
|
||||
Level(78.10, "intrare short 78.10", BLUE, label_at="left"),
|
||||
Level(72.00, "TP 72.00", GREEN, label_at="left"),
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<svg viewBox="0 0 640 433" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||
<text x="24" y="16" fill="#333" style="font-weight:bold">HIG — daily (Sell Doji + Bear Reversal, RVOL 200%)</text>
|
||||
<line x1="24" y1="34.0" x2="626" y2="34.0" stroke="#777" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="30" y="28.0" fill="#777">rezistenta 84.50</text>
|
||||
<text x="612" y="28.0" fill="#777" text-anchor="end">rezistenta 84.50</text>
|
||||
<line x1="24" y1="74.0" x2="626" y2="74.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="612" y="68.0" fill="#c00" text-anchor="end">SL 82.00</text>
|
||||
<line x1="24" y1="136.4" x2="626" y2="136.4" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
@@ -10,7 +10,8 @@ Ce arată (toate cifrele vin din spec):
|
||||
- praguri: 7 (reperul „galben”), 7-8 („intră în analiză”), 12-13 („spuma”), 14 (max);
|
||||
- benzile F-score: 0-3 slab fundamental, 4-5 mixt, 6-7 solid, 8-9 foarte puternic;
|
||||
- nota: scor -1 = date indisponibile în platformă, NU scor 0;
|
||||
- nota: „peste 7-8" e formularea cursului, sub 7 e deducere, nu prag declarat.
|
||||
- nota: „peste 7-8" e formularea cursului. Sub 7 NU e excludere — la 4/14
|
||||
si 6/14 continua analiza; scorul departajeaza intre candidati. Corectat 19.09.2026.
|
||||
|
||||
Rulare: .venv/bin/python gen/strategii/selectia_scor.py
|
||||
"""
|
||||
@@ -161,10 +162,10 @@ add(60, 470,
|
||||
"16_ANALIZA_FUNDAMENTALA/09_implementare_f_score_tradestation.md:45-46, 268-269.",
|
||||
13, "normal", GRAY, "start")
|
||||
add(60, 498,
|
||||
"„peste 7-8” e formularea exactă a cursului; sub 7 se deduce ca excludere,",
|
||||
"„peste 7-8” e formularea exactă a cursului. Sub 7 NU e excludere:",
|
||||
13, "normal", BLACK, "start")
|
||||
add(60, 518,
|
||||
"nu e declarat ca prag separat (11_selectia_simbolului.md:199-204).",
|
||||
"la 4/14 și 6/14 continuă analiza; scorul departajează candidații.",
|
||||
13, "normal", GRAY, "start")
|
||||
|
||||
# ---- surse
|
||||
@@ -209,8 +210,8 @@ for req in ("ATM score: scala 0-14",
|
||||
"0-3", "slab", "fundamental",
|
||||
"4-5", "mixt", "6-7", "solid", "8-9", "foarte", "puternic",
|
||||
"Scor -1 = date indisponibile în platformă, NU scor 0.",
|
||||
"sub 7 se deduce ca excludere",
|
||||
"nu e declarat ca prag separat"):
|
||||
"Sub 7 NU e excludere",
|
||||
"departajează candidații"):
|
||||
assert any(req in t[2] for t in TEXTS), f"lipsește din desen: {req!r}"
|
||||
|
||||
# 3. numerele de pe scală sunt exact 0..14
|
||||
|
||||
@@ -69,8 +69,8 @@
|
||||
<text x="60.0" y="430.0" font-size="14" font-weight="bold" fill="#000000" text-anchor="start">Scor -1 = date indisponibile în platformă, NU scor 0.</text>
|
||||
<text x="60.0" y="450.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="start">Scorul -1 nu se citește ca 0.</text>
|
||||
<text x="60.0" y="470.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="start">16_ANALIZA_FUNDAMENTALA/09_implementare_f_score_tradestation.md:45-46, 268-269.</text>
|
||||
<text x="60.0" y="498.0" font-size="13" font-weight="normal" fill="#000000" text-anchor="start">„peste 7-8” e formularea exactă a cursului; sub 7 se deduce ca excludere,</text>
|
||||
<text x="60.0" y="518.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="start">nu e declarat ca prag separat (11_selectia_simbolului.md:199-204).</text>
|
||||
<text x="60.0" y="498.0" font-size="13" font-weight="normal" fill="#000000" text-anchor="start">„peste 7-8” e formularea exactă a cursului. Sub 7 NU e excludere:</text>
|
||||
<text x="60.0" y="518.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="start">la 4/14 și 6/14 continuă analiza; scorul departajează candidații.</text>
|
||||
<text x="350.0" y="556.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="middle">Surse: 08_ANALIZA_ZILNICA/11_selectia_simbolului.md:158-164, :199-204;</text>
|
||||
<text x="350.0" y="574.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="middle">16_ANALIZA_FUNDAMENTALA/08_piotrowski_f_score.md:70-72;</text>
|
||||
<text x="350.0" y="592.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="middle">16_ANALIZA_FUNDAMENTALA/09_implementare_f_score_tradestation.md:45-46, 268-269.</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
@@ -119,8 +119,8 @@ Nu tot ce e aici e preț, deci nu totul se poate desena ca grafic de candele:
|
||||
<rect x="202" y="576" width="296" height="58" rx="8" fill="#ffffff" stroke="#1a5fb4" stroke-width="1.5"/>
|
||||
<text x="350.0" y="601" font-family="system-ui, sans-serif" font-size="15" font-weight="700" fill="#000000" text-anchor="middle">Listă scurtă</text>
|
||||
<text x="350.0" y="621" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">taie lista la câteva idei</text>
|
||||
<text x="350.0" y="668" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Sub 100% relative volume: 0.96 și 0.74 au fost respinse; el vrea peste 100%.</text>
|
||||
<text x="350.0" y="688" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Neconfirmat: nu reiese din sesiuni dacă sub prag oprește orice intrare.</text>
|
||||
<text x="350.0" y="668" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Sub 100% relative volume e un minus, nu un veto: 0.96 (YPF) „din păcate”, dar îl trece pe listă;</text>
|
||||
<text x="350.0" y="688" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">0.74 (AON) „hai să ne uităm așa un pic pe el”. Neconfirmat: dacă sub prag oprește o intrare pe trigger.</text>
|
||||
<text x="350.0" y="712" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Cifre din text: peste 100%, 10 candele, 0.96 / 0.74, cadranele 1-2.</text>
|
||||
<text x="350.0" y="732" font-family="system-ui, sans-serif" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">Sursa: 11_selectia_simbolului.md — fluxul din scanner.</text>
|
||||
</svg>
|
||||
@@ -460,9 +460,9 @@ Definiția din modul: 1 = supraperformanță, 2 = îmbunătățire, **3 = înră
|
||||
<text x="515.0" y="218" font-size="13" font-weight="700" fill="#1a5fb4" text-anchor="middle">LONG</text>
|
||||
<rect x="40" y="302" width="290" height="150" rx="10" fill="#ffffff" stroke="#1a5fb4" stroke-width="1.5"/>
|
||||
<text x="185.0" y="336" font-size="16" font-weight="700" fill="#000000" text-anchor="middle">Cadran 3</text>
|
||||
<text x="185.0" y="368" font-size="14" font-weight="400" fill="#000000" text-anchor="middle">îmbunătățire spre</text>
|
||||
<text x="185.0" y="388" font-size="14" font-weight="400" fill="#000000" text-anchor="middle">underperform</text>
|
||||
<text x="185.0" y="412" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">pentru short</text>
|
||||
<text x="185.0" y="368" font-size="14" font-weight="400" fill="#000000" text-anchor="middle">înrăutățire</text>
|
||||
<text x="185.0" y="388" font-size="14" font-weight="400" fill="#000000" text-anchor="middle">încă peste linia 0</text>
|
||||
<text x="185.0" y="412" font-size="13" font-weight="400" fill="#777777" text-anchor="middle">pierde avans; pentru short</text>
|
||||
<text x="185.0" y="434" font-size="13" font-weight="700" fill="#1a5fb4" text-anchor="middle">SHORT</text>
|
||||
<rect x="370" y="302" width="290" height="150" rx="10" fill="#ffffff" stroke="#1a5fb4" stroke-width="1.5"/>
|
||||
<text x="515.0" y="336" font-size="16" font-weight="700" fill="#000000" text-anchor="middle">Cadran 4</text>
|
||||
|
||||
@@ -384,8 +384,8 @@ Scala de scor:
|
||||
<text x="60.0" y="430.0" font-size="14" font-weight="bold" fill="#000000" text-anchor="start">Scor -1 = date indisponibile în platformă, NU scor 0.</text>
|
||||
<text x="60.0" y="450.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="start">Scorul -1 nu se citește ca 0.</text>
|
||||
<text x="60.0" y="470.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="start">16_ANALIZA_FUNDAMENTALA/09_implementare_f_score_tradestation.md:45-46, 268-269.</text>
|
||||
<text x="60.0" y="498.0" font-size="13" font-weight="normal" fill="#000000" text-anchor="start">„peste 7-8” e formularea exactă a cursului; sub 7 se deduce ca excludere,</text>
|
||||
<text x="60.0" y="518.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="start">nu e declarat ca prag separat (11_selectia_simbolului.md:199-204).</text>
|
||||
<text x="60.0" y="498.0" font-size="13" font-weight="normal" fill="#000000" text-anchor="start">„peste 7-8” e formularea exactă a cursului. Sub 7 NU e excludere:</text>
|
||||
<text x="60.0" y="518.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="start">la 4/14 și 6/14 continuă analiza; scorul departajează candidații.</text>
|
||||
<text x="350.0" y="556.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="middle">Surse: 08_ANALIZA_ZILNICA/11_selectia_simbolului.md:158-164, :199-204;</text>
|
||||
<text x="350.0" y="574.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="middle">16_ANALIZA_FUNDAMENTALA/08_piotrowski_f_score.md:70-72;</text>
|
||||
<text x="350.0" y="592.0" font-size="13" font-weight="normal" fill="#777777" text-anchor="middle">16_ANALIZA_FUNDAMENTALA/09_implementare_f_score_tradestation.md:45-46, 268-269.</text>
|
||||
@@ -690,7 +690,7 @@ avertisment de participare.
|
||||
<svg viewBox="0 0 640 433" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;font:12px sans-serif">
|
||||
<text x="24" y="16" fill="#333" style="font-weight:bold">HIG — daily (Sell Doji + Bear Reversal, RVOL 200%)</text>
|
||||
<line x1="24" y1="34.0" x2="626" y2="34.0" stroke="#777" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="30" y="28.0" fill="#777">rezistenta 84.50</text>
|
||||
<text x="612" y="28.0" fill="#777" text-anchor="end">rezistenta 84.50</text>
|
||||
<line x1="24" y1="74.0" x2="626" y2="74.0" stroke="#c00" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="612" y="68.0" fill="#c00" text-anchor="end">SL 82.00</text>
|
||||
<line x1="24" y1="136.4" x2="626" y2="136.4" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
|
||||
@@ -89,7 +89,7 @@ sunt reconciliate explicit de material (vezi 2.4).
|
||||
scrie NEACOPERIT ÎN MATERIAL la MBT-10 (`strategii/fise/mbt10.md:186`), MBP
|
||||
(`strategii/fise/mbp.md:322-326`), MDSRT (`strategii/fise/mdsrt.md:294-297`),
|
||||
BYH (`strategii/fise/byh.md:291-295`) și selecție
|
||||
(`strategii/fise/selectia.md:300-302`). În acele cazuri se aplică plafonul
|
||||
(`strategii/fise/selectia.md:307-309`). În acele cazuri se aplică plafonul
|
||||
general de 2% de mai sus.
|
||||
|
||||
### 1.2 De unde vine stopul (înainte de a calcula ceva)
|
||||
@@ -423,7 +423,7 @@ sizing — stopul pe structură, TP1/TP2/trail, jurnalul — se transferă ca at
|
||||
| scanere programate (TradeStation) | nu | listă manuală de 5-10 nume BET, verificată pe daily/weekly |
|
||||
| indicatori proprietari (jbtgrshdATM, TICUS, Buy/Sell Momentum) | nu | „nimic — regula cade”; rămâne doar prețul (doji, hammer, niveluri, ATR) |
|
||||
| short | practic nu | rămâne doar varianta long; jumătate din strategiile simetrice dispar |
|
||||
| volum mediu > 500k, preț > 30-40 $ | nu (praguri US) | praguri recalculate pe lichiditatea reală a numelor BET, nu pe cifrele US (`strategii/fise/selectia.md:318-320`) |
|
||||
| volum mediu > 500k, preț > 30-40 $ | nu (praguri US) | praguri recalculate pe lichiditatea reală a numelor BET, nu pe cifrele US (`strategii/fise/selectia.md:325-327`) |
|
||||
| date fundamentale trimestriale | parțial | raportările de pe bvb.ro, F-Score calculabil manual |
|
||||
|
||||
**Universul propus** *(judecata mea; materialul nu dă lichiditate BVB)*:
|
||||
|
||||