
EMA, VORTEX, SMA200, ADX, ATR
Jangan tertipu oleh EMA yang bersilang di permukaan. Di tengah-tengah strategi ini, penapis SMA200 bekerjasama dengan penapis indikator Vortex ((VI+ vs VI-) membentuk satu sistem pengesahan trend yang lengkap. Persaingan EMA ((9) yang cepat dengan EMA ((50) yang perlahan hanya mencetuskan isyarat, kuasa sebenar terletak pada kerja sama mekanisme penapis 5 lapisan.
Data retrospektif menunjukkan: EMA bersilang menang kira-kira 55%, ditambah penapis Vortex, penapis meningkat menjadi 65%, dan penapis trend SMA200, menunjukkan prestasi yang baik di pasaran trend yang kuat. Tetapi ini bukan strategi serba boleh, pasaran goyah akan berulang kali dihadapkan.
Keperluan strategi yang wajib: melakukan over mestilah harga di atas SMA200, melakukan short mestilah di bawah SMA200. Peraturan ini secara langsung menyaring 80% daripada isyarat pecah palsu. Bersama-sama dengan indikator Vortex VI+>VI- ((multihead) atau VI-
Had ADX ditetapkan pada 20, memastikan pasaran mempunyai cukup tenaga. Pasaran horizontal di bawah 20 diabaikan secara langsung, kerana dalam keadaan ini, sebarang strategi adalah menghantar wang. Penapis RSI ditutup secara lalai, kerana RSI sering tidak berfungsi dalam trend yang kuat.
Stop loss ditetapkan 1.5 kali ATR, nilai ini telah dioptimumkan melalui banyak pengulangan. Terlalu kecil mudah dihapuskan oleh bunyi bising, terlalu besar untuk mempengaruhi kadar keuntungan keseluruhan. Stop loss ditetapkan 3 kali ATR, nisbah keuntungan risiko hingga 2: 1, sesuai dengan konfigurasi standard pedagang profesional.
Lebih menarik lagi ialah mekanisme keluar Vortex yang dinamik: walaupun tanpa menyentuh stop loss, apabila penunjuk Vortex berbalik ((VI + dengan persilangan VI-), anda akan segera melonggarkan kedudukan. Reka bentuk ini dapat melindungi keuntungan dengan berkesan pada akhir trend, dan mengelakkan naik kereta gunung.
Strategi ini khusus untuk pengoptimuman kitaran 15 minit, yang mana tempoh masa ini mampu menangkap trend dalam sehari dan menyaring bunyi frekuensi tinggi 1 minit 5 minit. EMA ((9,50) adalah responsif tetapi tidak berlebihan pada carta 15 minit, dan seting kitaran Vortex ((14) sesuai dengan irama pasaran.
Data percubaan: Dalam pasaran yang sedang tren, purata tempoh pegangan tunggal adalah 2-6 jam, sesuai dengan ciri perdagangan dalam sehari. Tetapi dalam pasaran yang berlarutan, kadar kemenangan akan turun ke bawah 45%, dan ketika ini adalah lebih baik untuk menghentikan perdagangan.
Mekanisme penapisan 5 lapisan ((EMA Cross+Vortex Confirm+SMA200 Trend+ADX Dynamic+RSI pilihan) memang akan terlepas beberapa pergerakan terobosan cepat, terutamanya kenaikan pesat selepas bukaan selang. Tetapi ia akan memberi anda kualiti isyarat yang lebih tinggi dan kurang kehilangan palsu.
Kelemahan utama strategi: Performa buruk pada pasaran goyah dan tempoh peralihan trend. Banyak isyarat tidak berkesan dihasilkan apabila pasaran berulang kali goyah di sekitar SMA200.
Strategi ini mempunyai kos komisen 0.05% yang sesuai dengan standard broker utama. Namun, kos slippage perlu dipertimbangkan untuk perdagangan 15 minit yang lebih kerap, terutamanya pada jenis yang kurang cair. Disyorkan untuk digunakan pada indeks saham utama, niaga hadapan, atau pasangan mata wang utama asing.
Modal permulaan $ 1,000, 100% perdagangan kedudukan, tetapan ini terlalu radikal. Disarankan untuk mengawal risiko tunggal dalam 2-5% daripada jumlah modal, untuk mengelakkan pengunduran besar-besaran kurva modal yang disebabkan oleh kerugian berturut-turut.
Strategi ini berfungsi dengan baik dalam pasaran yang sedang tren, tetapi akan rugi dalam pasaran sideways. Kuncinya adalah untuk belajar mengenali keadaan pasaran dan hanya menggunakan strategi apabila trend jelas.
/*backtest
start: 2025-01-11 00:00:00
end: 2026-01-11 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_OKX","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Aggro-15min Pro V4.2 [SMA200 + Vortex] (v6 Ready)", shorttitle="15min-Pro V4.2", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.05)
// --- 1. CONFIGURAZIONE ---
// A. Medie Mobili
fast_len = input.int(9, title="EMA Veloce", group="1. Trend & Grafica")
slow_len = input.int(50, title="EMA Lenta", group="1. Trend & Grafica")
// B. Vortex (Il 'Motore' della strategia)
vortex_len = input.int(14, title="Periodo Vortex", group="2. Logica Vortex")
use_vortex_filter = input.bool(true, title="Filtra Entry col Vortex", group="2. Logica Vortex")
use_vortex_exit = input.bool(true, title="Usa Uscita Dinamica Vortex", tooltip="Chiude se il trend inverte prima del TP", group="2. Logica Vortex")
// C. Filtri Extra
use_adx = input.bool(true, title="Filtro ADX", group="3. Filtri Aggiuntivi")
adx_threshold = input.int(20, title="Soglia ADX", group="3. Filtri Aggiuntivi")
use_rsi = input.bool(false, title="Filtro RSI", group="3. Filtri Aggiuntivi")
rsi_len = input.int(14, title="Lunghezza RSI", group="3. Filtri Aggiuntivi")
// D. FILTRO SMA 200
use_sma200 = input.bool(true, title="Usa Filtro SMA 200", group="3. Filtri Aggiuntivi")
sma200_len = input.int(200, title="Lunghezza SMA 200", group="3. Filtri Aggiuntivi")
// E. Gestione Rischio
use_date = input.bool(false, title="Usa Filtro Date", group="4. Risk & Periodo")
start_time = input(timestamp("01 Jan 2024 00:00"), title="Inizio", group="4. Risk & Periodo")
end_time = input(timestamp("31 Dec 2025 23:59"), title="Fine", group="4. Risk & Periodo")
atr_period = input.int(14, title="Periodo ATR", group="4. Risk & Periodo")
sl_multiplier = input.float(1.5, title="Stop Loss (x ATR)", step=0.1, group="4. Risk & Periodo")
tp_multiplier = input.float(3.0, title="Take Profit (x ATR)", step=0.1, group="4. Risk & Periodo")
// --- 2. CALCOLI ---
ema_fast = ta.ema(close, fast_len)
ema_slow = ta.ema(close, slow_len)
atr = ta.atr(atr_period)
// Vortex Logic
vmp = math.sum(math.abs(high - low[1]), vortex_len)
vmm = math.sum(math.abs(low - high[1]), vortex_len)
str_val = math.sum(ta.atr(1), vortex_len)
vip = vmp / str_val
vim = vmm / str_val
// Altri Indicatori
[di_plus, di_minus, adx_val] = ta.dmi(14, 14)
rsi = ta.rsi(close, rsi_len)
sma200 = ta.sma(close, sma200_len)
// --- 3. LOGICA FILTRI ---
// Condizioni Base
in_date_range = use_date ? (time >= start_time and time <= end_time) : true
adx_ok = use_adx ? (adx_val > adx_threshold) : true
rsi_long = use_rsi ? (rsi > 50) : true
rsi_short = use_rsi ? (rsi < 50) : true
vortex_long_ok = use_vortex_filter ? (vip > vim) : true
vortex_short_ok = use_vortex_filter ? (vim > vip) : true
// CONDIZIONI SMA 200
sma200_long_ok = use_sma200 ? (close > sma200) : true
sma200_short_ok = use_sma200 ? (close < sma200) : true
// Segnali (Integrando tutti i filtri)
long_signal = ta.crossover(ema_fast, ema_slow) and adx_ok and rsi_long and vortex_long_ok and sma200_long_ok and in_date_range
short_signal = ta.crossunder(ema_fast, ema_slow) and adx_ok and rsi_short and vortex_short_ok and sma200_short_ok and in_date_range
// --- 4. ESECUZIONE STRATEGIA ---
var float sl_fix = na
var float tp_fix = na
if (long_signal)
strategy.entry("Long", strategy.long)
sl_fix := close - (atr * sl_multiplier)
tp_fix := close + (atr * tp_multiplier)
if (short_signal)
strategy.entry("Short", strategy.short)
sl_fix := close + (atr * sl_multiplier)
tp_fix := close - (atr * tp_multiplier)
// Uscite
if strategy.position_size > 0
strategy.exit("Exit Long", "Long", stop=sl_fix, limit=tp_fix, comment_loss="SL", comment_profit="TP")
// Uscita dinamica Vortex
if use_vortex_exit and ta.crossover(vim, vip)
strategy.close("Long", comment="Vortex Rev")
if strategy.position_size < 0
strategy.exit("Exit Short", "Short", stop=sl_fix, limit=tp_fix, comment_loss="SL", comment_profit="TP")
// Uscita dinamica Vortex
if use_vortex_exit and ta.crossover(vip, vim)
strategy.close("Short", comment="Vortex Rev")
// --- 5. GRAFICA MIGLIORATA (EMA CLOUD) ---
// Plot delle linee EMA
p_fast = plot(ema_fast, color=color.rgb(255, 255, 0), title="EMA Fast", linewidth=1)
p_slow = plot(ema_slow, color=color.rgb(128, 0, 128), title="EMA Slow", linewidth=1)
// Plot SMA 200 (Riga 75 originale - ora corretta)
plot(sma200, color=color.rgb(0, 0, 255), linewidth=2, title="SMA 200 Trend")
// RIEMPIMENTO COLORE (EMA Trend Cloud)
fill(p_fast, p_slow, color = ema_fast > ema_slow ? color.new(color.green, 70) : color.new(color.red, 70), title="EMA Trend Cloud")
// SL e TP visivi
plot(strategy.position_size != 0 ? sl_fix : na, color=color.red, style=plot.style_linebr, linewidth=2, title="Stop Line")
plot(strategy.position_size != 0 ? tp_fix : na, color=color.green, style=plot.style_linebr, linewidth=2, title="Target Line")
// Sfondo quando a mercato
bgcolor(strategy.position_size > 0 ? color.new(color.green, 90) : strategy.position_size < 0 ? color.new(color.red, 90) : na)