Strategi Dual SMA Momentum adalah strategi perdagangan berasaskan analisis teknikal yang menghasilkan isyarat beli dan jual berdasarkan dua petunjuk purata bergerak (SMA) mudah.
Strategi ini menggunakan dua penunjuk SMA dengan tingkap masa pendek dan panjang - SMA cepat (panjang 9 tempoh) dan SMA perlahan (panjang 45 tempoh).
Ia menjana isyarat panjang/beli apabila harga penutupan saham melintasi di atas kedua-dua garis SMA cepat dan perlahan, yang menunjukkan permulaan trend menaik.
Ia menjana isyarat short/sell apabila harga melintasi di bawah kedua-dua garis SMA, menunjukkan permulaan trend penurunan.
Tahap stop loss ditetapkan secara dinamik pada hari sebelumnya (untuk dagangan pendek) dan hari sebelumnya (untuk dagangan panjang).
Kelebihan utama strategi ini ialah:
Walau bagaimanapun, seperti semua strategi analisis teknikal, ia boleh berprestasi rendah semasa pasaran terhad dan whipsaw dengan isyarat palsu yang kerap.
Risiko utama strategi ini ialah:
Rendah kepada whipsaws dan isyarat palsu: Oleh kerana ia hanya bergantung pada crossover SMA, strategi ini boleh menghadapi whipsaws dan isyarat palsu semasa pasaran sampingan atau bergolak, mewujudkan kos perdagangan yang tidak perlu. Ini boleh dikurangkan dengan menggabungkan dengan penunjuk lain seperti RSI.
Risau terhadap pembalikan trend tiba-tiba: Pembalikan cepat selepas entri silang SMA boleh mencapai tahap stop loss dengan cepat sebelum trend terbentuk. Risiko ini boleh dikurangkan dengan mengoptimumkan panjang SMA atau menambah penapis lain.
Risiko pengoptimuman berlebihan dari penyesuaian parameter: Pengoptimuman panjang SMA dan parameter lain yang luas untuk membetulkan data sejarah boleh menyebabkan prestasi yang buruk dalam perdagangan langsung.
Beberapa cara di mana strategi ini boleh ditingkatkan ialah:
Menambah penunjuk lain seperti RSI untuk pengesahan perdagangan tambahan untuk meningkatkan masa dan ketepatan isyarat
Menggabungkan kaedah penempatan stop loss dinamik seperti ATR atau keluar candelier untuk menyesuaikan diri dengan lebih baik dengan turun naik pasaran
Mengoptimumkan panjang SMA berdasarkan turun naik sejarah dan bingkai masa dagangan untuk stok yang berbeza
Menambah pengurusan wang yang baik dan peraturan saiz kedudukan untuk memaksimumkan pulangan dan mengehadkan pengeluaran
Ringkasnya, strategi Dual SMA Momentum menawarkan pendekatan yang mudah untuk berdagang trend jangka pendek hingga sederhana. Walaupun asas dalam pendekatannya, penyempurnaan seperti penapis tambahan, berhenti dinamik dan pengoptimuman yang berhati-hati dapat membantu meningkatkan pulangan yang disesuaikan dengan risiko. Digunakan secara selektif semasa trend kenaikan dan penurunan saham, ia dapat menangkap pergerakan yang menguntungkan.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMA Crossover Strategy", overlay=true) // Input parameters fast_length = input(9, title="Fast SMA Length") slow_length = input(45, title="Slow SMA Length") // Calculate moving averages fast_sma = ta.sma(close, fast_length) slow_sma = ta.sma(close, slow_length) // Buy condition buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma) // Sell condition sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma) // Calculate stop loss levels prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on) prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on) // Plot signals on the chart plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit conditions long_stop_loss = sell_condition ? prev_low : na short_stop_loss = buy_condition ? prev_high : na strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss) strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss) strategy.entry("Long", strategy.long, when=buy_condition) strategy.entry("Short", strategy.short, when=sell_condition)