Strategi Dual SMA Crossover menghasilkan isyarat perdagangan dengan mengira persilangan dua garis SMA dengan tetapan parameter yang berbeza. Apabila garis SMA yang lebih cepat melintasi di atas garis SMA yang lebih perlahan, isyarat beli dihasilkan. Apabila garis SMA yang lebih perlahan melintasi di bawah garis SMA yang lebih cepat, isyarat jual dihasilkan. Strategi ini menggunakan dua set parameter SMA pada masa yang sama, satu set untuk menentukan titik masuk, dan yang lain untuk menentukan titik keluar.
Strategi ini menggunakan dua set parameter SMA,smaB1
, smaB2
untuk isyarat beli, dansmaS1
, smaS2
untuk isyarat jual, yang mewakili purata bergerak yang lebih perlahan dan lebih cepat masing-masing.smaB1
Salib di atassmaB2
, isyarat beli dihasilkan.smaS2
Salib di bawahsmaS1
, isyarat jual dihasilkan. Ini membolehkan penyesuaian fleksibel syarat masuk dan keluar untuk menyesuaikan diri dengan perubahan persekitaran pasaran.
Secara khusus, strategi ini memantau situasi persilangan antara dua garis SMA yang dikira dari harga penutupan untuk menentukan masa membeli dan menjual. Apabila garis SMA yang lebih cepat melintasi di atas garis SMA yang lebih perlahan, ia dinilai bahawa trend harga adalah menaik, jadi pergi panjang pada masa ini. Dan apabila garis SMA yang lebih perlahan melintasi di bawah garis SMA yang lebih cepat, trend harga bertukar ke bawah, jadi keluar dari kedudukan panjang.
Kelebihan utama strategi ini ialah:
Terdapat juga beberapa risiko yang berkaitan dengan strategi ini:
Untuk mengawal risiko di atas, kaedah seperti pengoptimuman parameter SMA, stop loss dinamik untuk mengunci keuntungan, dan lain-lain boleh digunakan untuk meningkatkan strategi.
Beberapa arah pengoptimuman untuk strategi ini:
Strategi SMA Crossover menghasilkan isyarat perdagangan yang mudah dan berkesan dengan mengira situasi silang antara dua garis SMA. Fleksibiliti untuk menyesuaikan parameter menjadikan strategi ini dapat disesuaikan dengan produk yang berbeza, dan ia adalah strategi trend yang biasa digunakan. Penambahbaikan lanjut boleh dibuat kepada strategi ini melalui pengoptimuman parameter, penapisan isyarat dll untuk menghasilkan isyarat yang lebih boleh dipercayai.
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-22 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © melihtuna //@version=4 strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent) smaB1 = input(title="smaB1",defval=377) smaB2 = input(title="smaB2",defval=200) smaS1 = input(title="smaS1",defval=377) smaS2 = input(title="smaS2",defval=200) smawidth = 2 plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1') plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2') plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1') plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2') // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2020, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => time >= start and time <= finish ? true : false longCondition = crossover(sma(close, smaB1),sma(close, smaB2)) if (window() and longCondition) strategy.entry("BUY", strategy.long) shortCondition = crossover(sma(close, smaS2),sma(close, smaS1)) if (window() and shortCondition) strategy.entry("SELL", strategy.short)