Modul 2 real: Construire Scanere sumarizat (11/16+)
This commit is contained in:
283
summaries/03_MODUL_2/11_construire_scanere_sf_byd_sld.html
Normal file
283
summaries/03_MODUL_2/11_construire_scanere_sf_byd_sld.html
Normal file
@@ -0,0 +1,283 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ro">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Modul 2 / #11 — Construire scanere (SF Buy/Sell Doji) în TradeStation</title>
|
||||
<style>
|
||||
body { max-width: 720px; margin: 0 auto; padding: 16px 20px 60px;
|
||||
font: 18px/1.55 -apple-system, Segoe UI, Roboto, sans-serif;
|
||||
color: #1a1a1a; }
|
||||
h1 { font-size: 1.4em; }
|
||||
h2 { font-size: 1.15em; margin-top: 1.6em; border-top: 1px solid #ddd; padding-top: .8em; }
|
||||
code { font-size: .95em; background: #f0f0f0; padding: .1em .3em; border-radius: 3px; }
|
||||
a { color: #1a5fb4; }
|
||||
hr { border: none; border-top: 1px solid #ddd; margin: 2em 0; }
|
||||
em { color: #555; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Modul 2 / #11 — Construire scanere (SF Buy/Sell Doji) în TradeStation</h1>
|
||||
<h2>TLDR</h2>
|
||||
<p>Lecția e un tutorial de configurare software: cum construiești în TradeStation
|
||||
un scanner care rulează automat triggerul <strong>Buy/Sell Doji</strong> (și, similar,
|
||||
<strong>Buy/Sell Hammer</strong>) din indicatorul propriu cursului peste sute de simboluri
|
||||
deodată, filtrat prin proximitatea de un pivot/suport/rezistență, prin volum
|
||||
minim și cu context de sector/industrie/proiecție de piață afișat direct în
|
||||
tabel. Nu e un concept nou de trading — e mecanismul prin care triggerele deja
|
||||
învățate (Buy/Sell Doji, Buy/Sell Momentum Trigger din lecția anterioară) se
|
||||
aplică automat pe 500-3000 de simboluri în loc să te uiți manual pe fiecare
|
||||
grafic.</p>
|
||||
<h2>De ce contează un scanner — nu doar "e mai rapid"</h2>
|
||||
<p>Mecanismul concret: fără scanner, ca să prinzi un semnal valid trebuie să
|
||||
deschizi manual fiecare grafic din universul tău de urmărit, la fiecare
|
||||
interval relevant (60 min, daily etc.), exact în fereastra de timp în care
|
||||
semnalul e proaspăt — imposibil de făcut consecvent pe sute de simboluri. Un
|
||||
scanner rulează același test logic (trigger = 0, distanță de pivot ≤ X%,
|
||||
volum ≥ Y) pe tot universul într-o singură trecere. Exemplul din curs: pe
|
||||
S&P 500 (500 simboluri), o scanare pe un singur criteriu (Buy Doji 60 min) a
|
||||
durat sub un minut și a găsit 29 simboluri — timp imposibil de reprodus
|
||||
manual.</p>
|
||||
<h2>Componentele scanerului — ce indicator face ce</h2>
|
||||
<p>Scanerul din lecție combină trei indicatori, fiecare cu alt rol:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Indicator (cod TradeStation)</th>
|
||||
<th>Rol în scanner</th>
|
||||
<th>Criteriu folosit</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>jbtgrshdATM</code></td>
|
||||
<td>triggerul de Buy/Sell Doji/Hammer (aceeași familie ca Buy/Sell Momentum Trigger din lecția anterioară, dar pe forma de candelă doji/hammer, nu pe cele două moving averages)</td>
|
||||
<td><code>BDATM</code> (buy doji), <code>SDATM</code> (sell doji), <code>BHATM</code> (buy hammer) egal cu <code>0</code> — valoarea 0 marchează momentul exact al semnalului</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>RSV1ATM</code></td>
|
||||
<td>suport/rezistență prin pivot points (aceleași floor pivots din lecția 2)</td>
|
||||
<td><code>% of PP</code> / <code>% of Support</code> / <code>% of Resistance</code> — distanța procentuală curentă față de nivel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Volume Colors</code></td>
|
||||
<td>filtru de lichiditate</td>
|
||||
<td>volum mediu (daily, indiferent de timeframe-ul scanerului) ≥ prag</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Pe lângă criteriile de filtrare, scanerul mai poate afișa (fără să filtreze)
|
||||
<code>Sector</code>, <code>Industry</code> și <code>Market Preview</code> (proiecția bull/bear calculată din
|
||||
raportul suport/rezistență al <code>RSV1ATM</code>, aceeași logică din lecția 2) — utile
|
||||
ca să nu deschizi fiecare simbol ca să știi ce fel de companie e sau ce
|
||||
proiecție are.</p>
|
||||
<h2>Pas cu pas: construirea scanerului de Buy Doji pe 60 min</h2>
|
||||
<ol>
|
||||
<li><strong>Workspace nou</strong> — <code>New Workspace</code> → salvat separat (ex. <code>scanner</code>).
|
||||
Copiat aici graficele Monthly, Weekly, Daily și 60 min din workspace-ul
|
||||
de chart-uri existent (click dreapta pe fiecare → <code>Copy Window</code> → <code>Paste
|
||||
Window</code> în workspace-ul nou), apoi aranjate pe ecran.</li>
|
||||
<li><strong>Aplicația Scanner</strong> — click dreapta pe spațiul gol → <code>New Application</code> →
|
||||
<code>Scanner</code>.</li>
|
||||
<li><strong>Folder</strong> — click dreapta în listă → <code>Add Folder</code>, denumit după temă (ex.
|
||||
<code>HD</code> = Hammer/Doji).</li>
|
||||
<li><strong>Create Scan</strong> — denumit explicit cu timeframe-ul în nume (ex.
|
||||
<code>BD (60 min)</code>) — convenție utilă: fără asta, la 10+ scanere nu mai știi
|
||||
care-i care.</li>
|
||||
<li><strong>Universul de scanare</strong> — ce set de simboluri verifică scanerul: <code>All
|
||||
Stocks</code> (toată piața US, ~13.000 de simboluri) sau un subset (ex. S&P 500
|
||||
via <code>Symbol List → Indexes Components → S&P 500 Index</code>). Universul mare
|
||||
găsește mai mult, dar durează mai mult — pe All Stocks sau o listă de
|
||||
3000 (Russell 3000) o scanare durează sensibil mai mult decât pe 500.</li>
|
||||
<li><strong>Criteriul de trigger</strong> — se adaugă <code>jbtgrshdATM</code>, se lasă <code>BDATM</code> (buy
|
||||
doji), operator <code>=</code>, valoare <code>0</code>. La parametrii indicatorului: <code>Interval</code>
|
||||
= 60 min (trebuie potrivit manual cu timeframe-ul scanerului — nu se
|
||||
deduce automat), <code>Load Additional Data</code> minim 500 (bare istorice necesare
|
||||
ca indicatorul să calculeze corect).</li>
|
||||
<li><strong>Filtrul de suport/rezistență</strong> — se adaugă <code>RSV1ATM</code>, <code>% of PP</code> (sau
|
||||
<code>% of Support</code> / <code>% of Resistance</code>), operator <code>≤</code>, prag procentual.
|
||||
<strong>Pivot Interval</strong> = nivelul cu un timeframe mai mare decât chart-ul
|
||||
scanerului — aceeași regulă din <code>03_timeframes_set_up.md</code>: pe 60 min
|
||||
folosești pivoți <strong>Weekly</strong> (<code>Pivot Interval = 2</code>), pe Daily pivoți
|
||||
<strong>Monthly</strong> (<code>Pivot Interval = 3</code>). Nu presupune un număr generic — se
|
||||
schimbă cu timeframe-ul.</li>
|
||||
<li><strong>Filtrul de volum</strong> — <code>Volume Colors</code>, <code>Average Volume</code> ≥ prag (ex.
|
||||
500.000), <code>Average Length</code> = 10 (medie pe ultimele 10 zile). E volum
|
||||
<strong>daily</strong>, indiferent de timeframe-ul scanerului (60 min sau altul) —
|
||||
filtrul de lichiditate rămâne raportat la zi.</li>
|
||||
<li><strong>Afișare (fără filtrare)</strong> — <code>Sector</code>, <code>Industry</code>, <code>Description</code>
|
||||
(operator <code>Display</code>, nu <code>≤</code>/<code>=</code>), plus <code>RSV1ATM</code> → <code>Market Preview</code> pentru
|
||||
proiecția bull/bear.</li>
|
||||
<li><strong>Run</strong> — scanerul afișează toate simbolurile care trec toate criteriile
|
||||
simultan, sortabile pe coloane.</li>
|
||||
</ol>
|
||||
<h2>Detaliu tehnic: câmpul "Enter 1 for RadarScreen, 100 for Scanner" (RS/SR)</h2>
|
||||
<p>Termen nou aici: la parametrii <code>RSV1ATM</code> există un input care scalează cum
|
||||
se afișează distanța procentuală. Platforma nu poate afișa decât 2 zecimale
|
||||
în tabel — dacă distanța reală e sub 0.1% (ex. 0.0597), cu factorul <code>1</code> vezi
|
||||
doar <code>0.06</code> (rotunjit, pierzi precizie utilă la un prag strâns). Cu factorul
|
||||
<code>100</code>, aceeași valoare devine <code>5.97</code> (adică 0.0597 × 100), afișată cu
|
||||
precizie utilizabilă — dar atunci <strong>pragul din criteriu trebuie înmulțit tot
|
||||
cu 100</strong>:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>RS/SR setat la</th>
|
||||
<th>Prag "sub 0.5%" se scrie</th>
|
||||
<th>Prag "sub 2%" se scrie</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>1</code></td>
|
||||
<td><code>≤ 0.5</code></td>
|
||||
<td><code>≤ 2</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>100</code></td>
|
||||
<td><code>≤ 50</code></td>
|
||||
<td><code>≤ 200</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Nepotrivirea între cele două (ex. RS/SR=100 dar prag scris <code>0.5</code>) face ca
|
||||
scanerul să filtreze la 0.005%, practic zero rezultate. Notă separată din
|
||||
curs: la zecimale, TradeStation nu acceptă virgulă — <code>0,5</code> dă eroare
|
||||
<code>invalid expression</code>, doar <code>0.5</code> (punct) funcționează.</p>
|
||||
<h2>Ce prag de proximitate alegi — depinde de timeframe</h2>
|
||||
<p>Pe 60 min, cursul folosește <code>≤ 0.5%</code> de pivot/suport. Pe Daily, pragul
|
||||
recomandat crește la <code>1-2%</code> — motivul explicit din curs: la 0.5% pe daily
|
||||
găsești foarte puține simboluri (nivelul de preț se mișcă mai mult între
|
||||
verificări), un prag mai larg (2%) prinde atât zona foarte apropiată cât și
|
||||
tranziția către ea, fără să rateze rezultate valide.</p>
|
||||
<h2>De la scanner la trade — ce faci când apare un rezultat</h2>
|
||||
<p><strong>De ce urmărești asta, concret:</strong> scanerul îți dă lista de candidați care
|
||||
îndeplinesc mecanic condițiile (trigger + proximitate de nivel + volum) —
|
||||
nu îți dă undă verde automată de intrare, îți economisește doar timpul de
|
||||
căutare.</p>
|
||||
<p><strong>Ce faci când vezi un rezultat:</strong> deschizi graficul simbolului găsit (link
|
||||
global cu scanerul, ca să sară direct pe el), verifici vizual triggerul (doji
|
||||
sau hammer real, nu artefact), verifici pe ce parte a nivelului stă exact
|
||||
(suport ținut sau deja spart) și verifici <code>Market Preview</code> (bull/bear) ca
|
||||
context — abia apoi construiești planul de intrare (entry/SL/TP), exact ca în
|
||||
lecția 10.</p>
|
||||
<p><strong>Trigger valid vs. fals rezultat de scanare — DA/NU (proximitate de nivel):</strong></p>
|
||||
<p><svg viewBox="0 0 420 160" xmlns="http://www.w3.org/2000/svg" style="width:100%;max-width:460px;height:auto;font:12px sans-serif">
|
||||
<text x="10" y="15" fill="#333">DA — 0.35% de suport, scanerul îl prinde la prag 0.5%</text>
|
||||
<line x1="15" y1="60" x2="405" y2="60" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="18" y="53" fill="#1a5fb4">42.00 — suport (pivot)</text>
|
||||
<circle cx="200" cy="66" r="5" fill="#188a3e"/>
|
||||
<text x="210" y="70" fill="#188a3e">42.15 (0.35%) — apare în listă</text>
|
||||
<text x="10" y="110" fill="#333">NU — 3.1% de suport, scanerul NU îl prinde (corect)</text>
|
||||
<line x1="15" y1="150" x2="405" y2="150" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="18" y="143" fill="#1a5fb4">42.00 — suport (pivot)</text>
|
||||
<circle cx="330" cy="105" r="5" fill="#c00"/>
|
||||
<text x="200" y="100" fill="#c00">43.30 (3.1% deasupra) — prea departe</text>
|
||||
</svg></p>
|
||||
<p>Diferența nu e vizuală (ambele arată "aproape" pe un grafic zoom-out) — e
|
||||
strict numerică, exact motivul pentru care se folosește un prag explicit
|
||||
(0.5% pe 60 min) în loc de "pare aproape".</p>
|
||||
<h3>Exemplu 1 — Long: ULTA BEAUTY, buy doji la suport, proiecție bull</h3>
|
||||
<p>Rezultat real din scanarea Daily din curs: simbolul apare cu doji la suport,
|
||||
<code>Market Preview</code> = bull. Cursul nu dă cifrele exacte de preț — completare a
|
||||
mea, pe scara reală a acțiunii la momentul lecției (ULTA ~ 400-410 USD):</p>
|
||||
<p><svg viewBox="0 0 440 260" xmlns="http://www.w3.org/2000/svg" style="width:100%;max-width:460px;height:auto;font:12px sans-serif">
|
||||
<text x="8" y="15" fill="#666">preț (ULTA) ↑</text>
|
||||
<polyline points="20,60 70,100 120,150 170,190 220,175 270,120 320,80 370,55" fill="none" stroke="#1a1a1a" stroke-width="2"/>
|
||||
<line x1="20" y1="185" x2="400" y2="185" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="24" y="200" fill="#1a5fb4">402.00 — suport (pivot monthly, găsit de scanner la 0.4%)</text>
|
||||
<circle cx="220" cy="175" r="5" fill="#00b8c4"/>
|
||||
<text x="30" y="230" fill="#00b8c4">doji găsit de scanner ~403.60</text>
|
||||
<line x1="20" y1="205" x2="400" y2="205" stroke="#c00" stroke-width="1" stroke-dasharray="2 2"/>
|
||||
<text x="230" y="222" fill="#c00">SL 396.00 (sub suport)</text>
|
||||
<circle cx="370" cy="55" r="5" fill="#188a3e"/>
|
||||
<text x="230" y="45" fill="#188a3e">TP 418.00 — rezistență anterioară</text>
|
||||
</svg></p>
|
||||
<p>Doji găsit de scanner la 403.60, la 0.4% deasupra suportului de 402.00 —
|
||||
sub pragul de 0.5% folosit în scanare. Confirmarea de trigger (candela
|
||||
următoare închide peste high-ul dojii) vine intrare <strong>404.20</strong>. Stop-loss
|
||||
<strong>396.00</strong> (sub suport — dacă prețul recoboară acolo, nivelul n-a ținut,
|
||||
setup-ul e invalidat). Take-profit <strong>418.00</strong> (rezistență anterioară pe
|
||||
Daily). Risc 8.20, recompensă 13.80 → risc/recompensă ≈ 1:1.7.</p>
|
||||
<h3>Exemplu 2 — Short: Amazon/MAR, sell doji la rezistență</h3>
|
||||
<p>Rezultat real din curs, scanare Sell Doji 60 min: "MAR la rezistență" —
|
||||
cifre exacte nu sunt date, completare a mea pe scara reală (Marriott
|
||||
~ 245-250 USD la momentul lecției):</p>
|
||||
<p><svg viewBox="0 0 440 260" xmlns="http://www.w3.org/2000/svg" style="width:100%;max-width:460px;height:auto;font:12px sans-serif">
|
||||
<text x="8" y="15" fill="#666">preț (MAR) ↑</text>
|
||||
<polyline points="20,220 70,170 120,120 170,85 220,95 270,145 320,180 370,205" fill="none" stroke="#1a1a1a" stroke-width="2"/>
|
||||
<line x1="20" y1="90" x2="400" y2="90" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="24" y="83" fill="#1a5fb4">248.00 — rezistență (pivot weekly, găsit la 0.3%)</text>
|
||||
<circle cx="220" cy="95" r="5" fill="#c00"/>
|
||||
<text x="30" y="115" fill="#c00">doji găsit de scanner ~247.30</text>
|
||||
<line x1="20" y1="70" x2="400" y2="70" stroke="#188a3e" stroke-width="1" stroke-dasharray="2 2"/>
|
||||
<text x="220" y="60" fill="#188a3e">SL 251.50 (peste rezistență)</text>
|
||||
<circle cx="370" cy="205" r="5" fill="#188a3e"/>
|
||||
<text x="200" y="225" fill="#188a3e">TP 236.00 — suport anterior</text>
|
||||
</svg></p>
|
||||
<p>Doji la 247.30, 0.3% sub rezistența 248.00. Confirmare (candela următoare
|
||||
închide sub low-ul dojii) → intrare short <strong>246.70</strong>. Stop-loss <strong>251.50</strong>
|
||||
(peste rezistență — dacă prețul urcă acolo, rezistența n-a ținut). Take-profit
|
||||
<strong>236.00</strong> (suport anterior). Risc 4.80, recompensă 10.70 → risc/recompensă
|
||||
≈ 1:2.2.</p>
|
||||
<h2>Clonarea pe alte timeframe-uri (Daily, Weekly, Monthly)</h2>
|
||||
<p><code>Copy Scan</code> → <code>Paste Scan</code> → redenumit clar (ex. <code>BD (Daily)</code>), apoi la
|
||||
intrare se schimbă <strong>doar</strong> trei lucruri, restul rămâne identic:
|
||||
1. <code>Interval</code> la criteriul de trigger (60 min → Daily).
|
||||
2. <code>Pivot Interval</code> la criteriul de suport/rezistență, conform tabelului din
|
||||
<code>03_timeframes_set_up.md</code> (Daily → pivoți Monthly = interval 3).
|
||||
3. Pragul procentual de proximitate (0.5% → 1-2% pe Daily, motiv explicat
|
||||
mai sus).</p>
|
||||
<p>Volum, sector, industrie, market preview rămân neschimbate — nu depind de
|
||||
timeframe-ul scanerului.</p>
|
||||
<h2>Programare automată (Schedule)</h2>
|
||||
<p>La <code>Schedule</code>, bifat <code>Schedule Scan to Run Automatically</code>:
|
||||
- <strong>Intraday</strong> (scanere 15/60 min) — rulează la fiecare N minute, într-o
|
||||
fereastră orară (ex. 09:30-16:00, ora bursei).
|
||||
- <strong>Daily</strong> — la o oră fixă (ex. 09:00).
|
||||
- <strong>Weekly / Monthly</strong> — într-o zi fixă (ex. luni sau prima zi din lună).</p>
|
||||
<p>Condiție obligatorie: calculatorul trebuie pornit și TradeStation deschis la
|
||||
ora respectivă — scanerul nu rulează "în cloud", rulează local.</p>
|
||||
<h2>Liste custom de simboluri (Russell 3000)</h2>
|
||||
<p>Pentru universuri care nu există predefinite în platformă (Russell 3000):
|
||||
simbolurile se copiază dintr-o sursă externă în Excel, apoi în loturi (ex.
|
||||
1000 simboluri per lot, limitare RadarScreen) în <code>RadarScreen</code>, apoi
|
||||
<code>Data → Append Selected Symbol to Custom Symbol List</code> le adaugă la o listă
|
||||
salvată — refolosibilă apoi ca univers de scanare (<code>Symbol Universe → Custom
|
||||
Symbol List</code>). O scanare completă pe Russell 3000 (~2300 simboluri activi)
|
||||
durează vizibil mai mult decât pe S&P 500, dar acoperă și companii mici, nu
|
||||
doar cele mari.</p>
|
||||
<h2>Gotchas practice — cele mai importante</h2>
|
||||
<ul>
|
||||
<li><strong>Interval-ul indicatorului de trigger nu se sincronizează automat cu
|
||||
timeframe-ul scanerului</strong> — dacă construiești scanerul pe 60 min dar uiți
|
||||
să schimbi <code>Interval</code> la parametrii <code>jbtgrshdATM</code> la 60 min, indicatorul
|
||||
calculează pe alt timeframe decât crezi.</li>
|
||||
<li><strong>Delay-ul scanerului</strong>: rulează pe candela deja închisă, nu pe cea în
|
||||
formare — un scanner Daily rulat la ora 12 ziua arată triggerul de ieri,
|
||||
nu ce se formează azi. Un scanner pe interval mai mic (15/60 min) reduce
|
||||
delay-ul, dar nu-l elimină.</li>
|
||||
<li><strong>Virgulă vs. punct la pragurile zecimale</strong> — TradeStation acceptă doar
|
||||
punct (<code>0.5</code>), virgula dă <code>invalid expression</code>.</li>
|
||||
<li><strong>Universul mare = timp de scanare mare</strong> — nu seta implicit <code>All Stocks</code>
|
||||
dacă testezi/ajustezi criterii; testează pe un subset (S&P 500), apoi
|
||||
extinde.</li>
|
||||
</ul>
|
||||
<h2>Referințe</h2>
|
||||
<ul>
|
||||
<li><a href="https://www.tradestation.com/platforms-and-tools/">TradeStation — RadarScreen and Scanner overview</a> — prezentare generală a platformei (scanner și RadarScreen fac parte din același ecosistem descris în curs).</li>
|
||||
<li><a href="https://www.investopedia.com/terms/p/pivotpoint.asp">Investopedia — Pivot Point</a> — aceeași referință ca lecția 2, folosită aici ca filtru de proximitate în scanare.</li>
|
||||
<li><a href="https://www.investopedia.com/terms/s/screener.asp">Investopedia — Stock Screener: Definition, How It Works, and Example</a> — explicație generală a conceptului de screener/scanner, aplicabil independent de platformă.</li>
|
||||
<li><a href="https://www.ftserussell.com/products/indices/russell-us">Russell Indexes — Russell 3000 Index</a> — sursa oficială a componenței Russell 3000, folosită în curs pentru lista custom.</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<p><em>Notă: secțiunile "De ce contează un scanner", "De la scanner la trade" (cu
|
||||
diagrama DA/NU și cele două exemple numerice ULTA BEAUTY/MAR, inclusiv toate
|
||||
cifrele de entry/SL/TP), tabelul RS/SR și explicația factorului de scalare
|
||||
sunt completări ale mele, dincolo de ce spune explicit transcrierea — cursul
|
||||
arată pas cu pas construirea scanerului în TradeStation, cu simboluri reale
|
||||
găsite live (MCO, ULTA BEAUTY, EPU, CURL, L, Amazon, MAR, SMDX, USFD), dar
|
||||
fără prețuri exacte citite de pe grafic și fără planuri de trade complete
|
||||
pentru rezultatele găsite.</em></p>
|
||||
</body>
|
||||
</html>
|
||||
249
summaries/03_MODUL_2/11_construire_scanere_sf_byd_sld.md
Normal file
249
summaries/03_MODUL_2/11_construire_scanere_sf_byd_sld.md
Normal file
@@ -0,0 +1,249 @@
|
||||
# Modul 2 / #11 — Construire scanere (SF Buy/Sell Doji) în TradeStation
|
||||
|
||||
## TLDR
|
||||
Lecția e un tutorial de configurare software: cum construiești în TradeStation
|
||||
un scanner care rulează automat triggerul **Buy/Sell Doji** (și, similar,
|
||||
**Buy/Sell Hammer**) din indicatorul propriu cursului peste sute de simboluri
|
||||
deodată, filtrat prin proximitatea de un pivot/suport/rezistență, prin volum
|
||||
minim și cu context de sector/industrie/proiecție de piață afișat direct în
|
||||
tabel. Nu e un concept nou de trading — e mecanismul prin care triggerele deja
|
||||
învățate (Buy/Sell Doji, Buy/Sell Momentum Trigger din lecția anterioară) se
|
||||
aplică automat pe 500-3000 de simboluri în loc să te uiți manual pe fiecare
|
||||
grafic.
|
||||
|
||||
## De ce contează un scanner — nu doar "e mai rapid"
|
||||
Mecanismul concret: fără scanner, ca să prinzi un semnal valid trebuie să
|
||||
deschizi manual fiecare grafic din universul tău de urmărit, la fiecare
|
||||
interval relevant (60 min, daily etc.), exact în fereastra de timp în care
|
||||
semnalul e proaspăt — imposibil de făcut consecvent pe sute de simboluri. Un
|
||||
scanner rulează același test logic (trigger = 0, distanță de pivot ≤ X%,
|
||||
volum ≥ Y) pe tot universul într-o singură trecere. Exemplul din curs: pe
|
||||
S&P 500 (500 simboluri), o scanare pe un singur criteriu (Buy Doji 60 min) a
|
||||
durat sub un minut și a găsit 29 simboluri — timp imposibil de reprodus
|
||||
manual.
|
||||
|
||||
## Componentele scanerului — ce indicator face ce
|
||||
Scanerul din lecție combină trei indicatori, fiecare cu alt rol:
|
||||
|
||||
| Indicator (cod TradeStation) | Rol în scanner | Criteriu folosit |
|
||||
|---|---|---|
|
||||
| `jbtgrshdATM` | triggerul de Buy/Sell Doji/Hammer (aceeași familie ca Buy/Sell Momentum Trigger din lecția anterioară, dar pe forma de candelă doji/hammer, nu pe cele două moving averages) | `BDATM` (buy doji), `SDATM` (sell doji), `BHATM` (buy hammer) egal cu `0` — valoarea 0 marchează momentul exact al semnalului |
|
||||
| `RSV1ATM` | suport/rezistență prin pivot points (aceleași floor pivots din lecția 2) | `% of PP` / `% of Support` / `% of Resistance` — distanța procentuală curentă față de nivel |
|
||||
| `Volume Colors` | filtru de lichiditate | volum mediu (daily, indiferent de timeframe-ul scanerului) ≥ prag |
|
||||
|
||||
Pe lângă criteriile de filtrare, scanerul mai poate afișa (fără să filtreze)
|
||||
`Sector`, `Industry` și `Market Preview` (proiecția bull/bear calculată din
|
||||
raportul suport/rezistență al `RSV1ATM`, aceeași logică din lecția 2) — utile
|
||||
ca să nu deschizi fiecare simbol ca să știi ce fel de companie e sau ce
|
||||
proiecție are.
|
||||
|
||||
## Pas cu pas: construirea scanerului de Buy Doji pe 60 min
|
||||
|
||||
1. **Workspace nou** — `New Workspace` → salvat separat (ex. `scanner`).
|
||||
Copiat aici graficele Monthly, Weekly, Daily și 60 min din workspace-ul
|
||||
de chart-uri existent (click dreapta pe fiecare → `Copy Window` → `Paste
|
||||
Window` în workspace-ul nou), apoi aranjate pe ecran.
|
||||
2. **Aplicația Scanner** — click dreapta pe spațiul gol → `New Application` →
|
||||
`Scanner`.
|
||||
3. **Folder** — click dreapta în listă → `Add Folder`, denumit după temă (ex.
|
||||
`HD` = Hammer/Doji).
|
||||
4. **Create Scan** — denumit explicit cu timeframe-ul în nume (ex.
|
||||
`BD (60 min)`) — convenție utilă: fără asta, la 10+ scanere nu mai știi
|
||||
care-i care.
|
||||
5. **Universul de scanare** — ce set de simboluri verifică scanerul: `All
|
||||
Stocks` (toată piața US, ~13.000 de simboluri) sau un subset (ex. S&P 500
|
||||
via `Symbol List → Indexes Components → S&P 500 Index`). Universul mare
|
||||
găsește mai mult, dar durează mai mult — pe All Stocks sau o listă de
|
||||
3000 (Russell 3000) o scanare durează sensibil mai mult decât pe 500.
|
||||
6. **Criteriul de trigger** — se adaugă `jbtgrshdATM`, se lasă `BDATM` (buy
|
||||
doji), operator `=`, valoare `0`. La parametrii indicatorului: `Interval`
|
||||
= 60 min (trebuie potrivit manual cu timeframe-ul scanerului — nu se
|
||||
deduce automat), `Load Additional Data` minim 500 (bare istorice necesare
|
||||
ca indicatorul să calculeze corect).
|
||||
7. **Filtrul de suport/rezistență** — se adaugă `RSV1ATM`, `% of PP` (sau
|
||||
`% of Support` / `% of Resistance`), operator `≤`, prag procentual.
|
||||
**Pivot Interval** = nivelul cu un timeframe mai mare decât chart-ul
|
||||
scanerului — aceeași regulă din `03_timeframes_set_up.md`: pe 60 min
|
||||
folosești pivoți **Weekly** (`Pivot Interval = 2`), pe Daily pivoți
|
||||
**Monthly** (`Pivot Interval = 3`). Nu presupune un număr generic — se
|
||||
schimbă cu timeframe-ul.
|
||||
8. **Filtrul de volum** — `Volume Colors`, `Average Volume` ≥ prag (ex.
|
||||
500.000), `Average Length` = 10 (medie pe ultimele 10 zile). E volum
|
||||
**daily**, indiferent de timeframe-ul scanerului (60 min sau altul) —
|
||||
filtrul de lichiditate rămâne raportat la zi.
|
||||
9. **Afișare (fără filtrare)** — `Sector`, `Industry`, `Description`
|
||||
(operator `Display`, nu `≤`/`=`), plus `RSV1ATM` → `Market Preview` pentru
|
||||
proiecția bull/bear.
|
||||
10. **Run** — scanerul afișează toate simbolurile care trec toate criteriile
|
||||
simultan, sortabile pe coloane.
|
||||
|
||||
## Detaliu tehnic: câmpul "Enter 1 for RadarScreen, 100 for Scanner" (RS/SR)
|
||||
Termen nou aici: la parametrii `RSV1ATM` există un input care scalează cum
|
||||
se afișează distanța procentuală. Platforma nu poate afișa decât 2 zecimale
|
||||
în tabel — dacă distanța reală e sub 0.1% (ex. 0.0597), cu factorul `1` vezi
|
||||
doar `0.06` (rotunjit, pierzi precizie utilă la un prag strâns). Cu factorul
|
||||
`100`, aceeași valoare devine `5.97` (adică 0.0597 × 100), afișată cu
|
||||
precizie utilizabilă — dar atunci **pragul din criteriu trebuie înmulțit tot
|
||||
cu 100**:
|
||||
|
||||
| RS/SR setat la | Prag "sub 0.5%" se scrie | Prag "sub 2%" se scrie |
|
||||
|---|---|---|
|
||||
| `1` | `≤ 0.5` | `≤ 2` |
|
||||
| `100` | `≤ 50` | `≤ 200` |
|
||||
|
||||
Nepotrivirea între cele două (ex. RS/SR=100 dar prag scris `0.5`) face ca
|
||||
scanerul să filtreze la 0.005%, practic zero rezultate. Notă separată din
|
||||
curs: la zecimale, TradeStation nu acceptă virgulă — `0,5` dă eroare
|
||||
`invalid expression`, doar `0.5` (punct) funcționează.
|
||||
|
||||
## Ce prag de proximitate alegi — depinde de timeframe
|
||||
Pe 60 min, cursul folosește `≤ 0.5%` de pivot/suport. Pe Daily, pragul
|
||||
recomandat crește la `1-2%` — motivul explicit din curs: la 0.5% pe daily
|
||||
găsești foarte puține simboluri (nivelul de preț se mișcă mai mult între
|
||||
verificări), un prag mai larg (2%) prinde atât zona foarte apropiată cât și
|
||||
tranziția către ea, fără să rateze rezultate valide.
|
||||
|
||||
## De la scanner la trade — ce faci când apare un rezultat
|
||||
|
||||
**De ce urmărești asta, concret:** scanerul îți dă lista de candidați care
|
||||
îndeplinesc mecanic condițiile (trigger + proximitate de nivel + volum) —
|
||||
nu îți dă undă verde automată de intrare, îți economisește doar timpul de
|
||||
căutare.
|
||||
|
||||
**Ce faci când vezi un rezultat:** deschizi graficul simbolului găsit (link
|
||||
global cu scanerul, ca să sară direct pe el), verifici vizual triggerul (doji
|
||||
sau hammer real, nu artefact), verifici pe ce parte a nivelului stă exact
|
||||
(suport ținut sau deja spart) și verifici `Market Preview` (bull/bear) ca
|
||||
context — abia apoi construiești planul de intrare (entry/SL/TP), exact ca în
|
||||
lecția 10.
|
||||
|
||||
**Trigger valid vs. fals rezultat de scanare — DA/NU (proximitate de nivel):**
|
||||
|
||||
<svg viewBox="0 0 420 160" xmlns="http://www.w3.org/2000/svg" style="width:100%;max-width:460px;height:auto;font:12px sans-serif">
|
||||
<text x="10" y="15" fill="#333">DA — 0.35% de suport, scanerul îl prinde la prag 0.5%</text>
|
||||
<line x1="15" y1="60" x2="405" y2="60" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="18" y="53" fill="#1a5fb4">42.00 — suport (pivot)</text>
|
||||
<circle cx="200" cy="66" r="5" fill="#188a3e"/>
|
||||
<text x="210" y="70" fill="#188a3e">42.15 (0.35%) — apare în listă</text>
|
||||
<text x="10" y="110" fill="#333">NU — 3.1% de suport, scanerul NU îl prinde (corect)</text>
|
||||
<line x1="15" y1="150" x2="405" y2="150" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="18" y="143" fill="#1a5fb4">42.00 — suport (pivot)</text>
|
||||
<circle cx="330" cy="105" r="5" fill="#c00"/>
|
||||
<text x="200" y="100" fill="#c00">43.30 (3.1% deasupra) — prea departe</text>
|
||||
</svg>
|
||||
|
||||
Diferența nu e vizuală (ambele arată "aproape" pe un grafic zoom-out) — e
|
||||
strict numerică, exact motivul pentru care se folosește un prag explicit
|
||||
(0.5% pe 60 min) în loc de "pare aproape".
|
||||
|
||||
### Exemplu 1 — Long: ULTA BEAUTY, buy doji la suport, proiecție bull
|
||||
Rezultat real din scanarea Daily din curs: simbolul apare cu doji la suport,
|
||||
`Market Preview` = bull. Cursul nu dă cifrele exacte de preț — completare a
|
||||
mea, pe scara reală a acțiunii la momentul lecției (ULTA ~ 400-410 USD):
|
||||
|
||||
<svg viewBox="0 0 440 260" xmlns="http://www.w3.org/2000/svg" style="width:100%;max-width:460px;height:auto;font:12px sans-serif">
|
||||
<text x="8" y="15" fill="#666">preț (ULTA) ↑</text>
|
||||
<polyline points="20,60 70,100 120,150 170,190 220,175 270,120 320,80 370,55" fill="none" stroke="#1a1a1a" stroke-width="2"/>
|
||||
<line x1="20" y1="185" x2="400" y2="185" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="24" y="200" fill="#1a5fb4">402.00 — suport (pivot monthly, găsit de scanner la 0.4%)</text>
|
||||
<circle cx="220" cy="175" r="5" fill="#00b8c4"/>
|
||||
<text x="30" y="230" fill="#00b8c4">doji găsit de scanner ~403.60</text>
|
||||
<line x1="20" y1="205" x2="400" y2="205" stroke="#c00" stroke-width="1" stroke-dasharray="2 2"/>
|
||||
<text x="230" y="222" fill="#c00">SL 396.00 (sub suport)</text>
|
||||
<circle cx="370" cy="55" r="5" fill="#188a3e"/>
|
||||
<text x="230" y="45" fill="#188a3e">TP 418.00 — rezistență anterioară</text>
|
||||
</svg>
|
||||
|
||||
Doji găsit de scanner la 403.60, la 0.4% deasupra suportului de 402.00 —
|
||||
sub pragul de 0.5% folosit în scanare. Confirmarea de trigger (candela
|
||||
următoare închide peste high-ul dojii) vine intrare **404.20**. Stop-loss
|
||||
**396.00** (sub suport — dacă prețul recoboară acolo, nivelul n-a ținut,
|
||||
setup-ul e invalidat). Take-profit **418.00** (rezistență anterioară pe
|
||||
Daily). Risc 8.20, recompensă 13.80 → risc/recompensă ≈ 1:1.7.
|
||||
|
||||
### Exemplu 2 — Short: Amazon/MAR, sell doji la rezistență
|
||||
Rezultat real din curs, scanare Sell Doji 60 min: "MAR la rezistență" —
|
||||
cifre exacte nu sunt date, completare a mea pe scara reală (Marriott
|
||||
~ 245-250 USD la momentul lecției):
|
||||
|
||||
<svg viewBox="0 0 440 260" xmlns="http://www.w3.org/2000/svg" style="width:100%;max-width:460px;height:auto;font:12px sans-serif">
|
||||
<text x="8" y="15" fill="#666">preț (MAR) ↑</text>
|
||||
<polyline points="20,220 70,170 120,120 170,85 220,95 270,145 320,180 370,205" fill="none" stroke="#1a1a1a" stroke-width="2"/>
|
||||
<line x1="20" y1="90" x2="400" y2="90" stroke="#1a5fb4" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||||
<text x="24" y="83" fill="#1a5fb4">248.00 — rezistență (pivot weekly, găsit la 0.3%)</text>
|
||||
<circle cx="220" cy="95" r="5" fill="#c00"/>
|
||||
<text x="30" y="115" fill="#c00">doji găsit de scanner ~247.30</text>
|
||||
<line x1="20" y1="70" x2="400" y2="70" stroke="#188a3e" stroke-width="1" stroke-dasharray="2 2"/>
|
||||
<text x="220" y="60" fill="#188a3e">SL 251.50 (peste rezistență)</text>
|
||||
<circle cx="370" cy="205" r="5" fill="#188a3e"/>
|
||||
<text x="200" y="225" fill="#188a3e">TP 236.00 — suport anterior</text>
|
||||
</svg>
|
||||
|
||||
Doji la 247.30, 0.3% sub rezistența 248.00. Confirmare (candela următoare
|
||||
închide sub low-ul dojii) → intrare short **246.70**. Stop-loss **251.50**
|
||||
(peste rezistență — dacă prețul urcă acolo, rezistența n-a ținut). Take-profit
|
||||
**236.00** (suport anterior). Risc 4.80, recompensă 10.70 → risc/recompensă
|
||||
≈ 1:2.2.
|
||||
|
||||
## Clonarea pe alte timeframe-uri (Daily, Weekly, Monthly)
|
||||
`Copy Scan` → `Paste Scan` → redenumit clar (ex. `BD (Daily)`), apoi la
|
||||
intrare se schimbă **doar** trei lucruri, restul rămâne identic:
|
||||
1. `Interval` la criteriul de trigger (60 min → Daily).
|
||||
2. `Pivot Interval` la criteriul de suport/rezistență, conform tabelului din
|
||||
`03_timeframes_set_up.md` (Daily → pivoți Monthly = interval 3).
|
||||
3. Pragul procentual de proximitate (0.5% → 1-2% pe Daily, motiv explicat
|
||||
mai sus).
|
||||
|
||||
Volum, sector, industrie, market preview rămân neschimbate — nu depind de
|
||||
timeframe-ul scanerului.
|
||||
|
||||
## Programare automată (Schedule)
|
||||
La `Schedule`, bifat `Schedule Scan to Run Automatically`:
|
||||
- **Intraday** (scanere 15/60 min) — rulează la fiecare N minute, într-o
|
||||
fereastră orară (ex. 09:30-16:00, ora bursei).
|
||||
- **Daily** — la o oră fixă (ex. 09:00).
|
||||
- **Weekly / Monthly** — într-o zi fixă (ex. luni sau prima zi din lună).
|
||||
|
||||
Condiție obligatorie: calculatorul trebuie pornit și TradeStation deschis la
|
||||
ora respectivă — scanerul nu rulează "în cloud", rulează local.
|
||||
|
||||
## Liste custom de simboluri (Russell 3000)
|
||||
Pentru universuri care nu există predefinite în platformă (Russell 3000):
|
||||
simbolurile se copiază dintr-o sursă externă în Excel, apoi în loturi (ex.
|
||||
1000 simboluri per lot, limitare RadarScreen) în `RadarScreen`, apoi
|
||||
`Data → Append Selected Symbol to Custom Symbol List` le adaugă la o listă
|
||||
salvată — refolosibilă apoi ca univers de scanare (`Symbol Universe → Custom
|
||||
Symbol List`). O scanare completă pe Russell 3000 (~2300 simboluri activi)
|
||||
durează vizibil mai mult decât pe S&P 500, dar acoperă și companii mici, nu
|
||||
doar cele mari.
|
||||
|
||||
## Gotchas practice — cele mai importante
|
||||
- **Interval-ul indicatorului de trigger nu se sincronizează automat cu
|
||||
timeframe-ul scanerului** — dacă construiești scanerul pe 60 min dar uiți
|
||||
să schimbi `Interval` la parametrii `jbtgrshdATM` la 60 min, indicatorul
|
||||
calculează pe alt timeframe decât crezi.
|
||||
- **Delay-ul scanerului**: rulează pe candela deja închisă, nu pe cea în
|
||||
formare — un scanner Daily rulat la ora 12 ziua arată triggerul de ieri,
|
||||
nu ce se formează azi. Un scanner pe interval mai mic (15/60 min) reduce
|
||||
delay-ul, dar nu-l elimină.
|
||||
- **Virgulă vs. punct la pragurile zecimale** — TradeStation acceptă doar
|
||||
punct (`0.5`), virgula dă `invalid expression`.
|
||||
- **Universul mare = timp de scanare mare** — nu seta implicit `All Stocks`
|
||||
dacă testezi/ajustezi criterii; testează pe un subset (S&P 500), apoi
|
||||
extinde.
|
||||
|
||||
## Referințe
|
||||
- [TradeStation — RadarScreen and Scanner overview](https://www.tradestation.com/platforms-and-tools/) — prezentare generală a platformei (scanner și RadarScreen fac parte din același ecosistem descris în curs).
|
||||
- [Investopedia — Pivot Point](https://www.investopedia.com/terms/p/pivotpoint.asp) — aceeași referință ca lecția 2, folosită aici ca filtru de proximitate în scanare.
|
||||
- [Investopedia — Stock Screener: Definition, How It Works, and Example](https://www.investopedia.com/terms/s/screener.asp) — explicație generală a conceptului de screener/scanner, aplicabil independent de platformă.
|
||||
- [Russell Indexes — Russell 3000 Index](https://www.ftserussell.com/products/indices/russell-us) — sursa oficială a componenței Russell 3000, folosită în curs pentru lista custom.
|
||||
|
||||
---
|
||||
*Notă: secțiunile "De ce contează un scanner", "De la scanner la trade" (cu
|
||||
diagrama DA/NU și cele două exemple numerice ULTA BEAUTY/MAR, inclusiv toate
|
||||
cifrele de entry/SL/TP), tabelul RS/SR și explicația factorului de scalare
|
||||
sunt completări ale mele, dincolo de ce spune explicit transcrierea — cursul
|
||||
arată pas cu pas construirea scanerului în TradeStation, cu simboluri reale
|
||||
găsite live (MCO, ULTA BEAUTY, EPU, CURL, L, Amazon, MAR, SMDX, USFD), dar
|
||||
fără prețuri exacte citite de pe grafic și fără planuri de trade complete
|
||||
pentru rezultatele găsite.*
|
||||
@@ -45,6 +45,7 @@
|
||||
<li><a href="03_MODUL_2/08_volumul_sangele_pietei.html">03_MODUL_2 / 08_volumul_sangele_pietei</a></li>
|
||||
<li><a href="03_MODUL_2/09_indicatorul_power.html">03_MODUL_2 / 09_indicatorul_power</a></li>
|
||||
<li><a href="03_MODUL_2/10_buysell_momentum_trigger.html">03_MODUL_2 / 10_buysell_momentum_trigger</a></li>
|
||||
<li><a href="03_MODUL_2/11_construire_scanere_sf_byd_sld.html">03_MODUL_2 / 11_construire_scanere_sf_byd_sld</a></li>
|
||||
<li><a href="05_MODUL_4/01_patternuri_complexe_partea_a_doua.html">05_MODUL_4 / 01_patternuri_complexe_partea_a_doua</a></li></ul>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user