Strategi Three SMA Crossover Momentum adalah strategi indikator teknis khas yang melacak tren pasar. Strategi ini menggabungkan rata-rata bergerak sederhana 16-, 36- dan 72-periode dan menggunakan crossover bullish dan bearish mereka untuk menentukan tren pasar, bersama dengan Kaufman Adaptive Moving Average (KAMA) sebagai filter untuk mengambil posisi panjang atau pendek ketika arah tren relatif jelas.
Indikator inti dari strategi ini adalah rata-rata bergerak sederhana 16-, 36-, dan 72-periode. Ketika SMA jangka pendek melintasi satu periode yang lebih lama ke atas, itu menandakan bahwa pasar memasuki tren naik. Ketika SMA jangka pendek melintasi di bawah satu periode yang lebih lama ke bawah, itu menandakan bahwa pasar memasuki tren menurun. Misalnya, ketika 16-SMA melintasi 36-SMA dan 72-SMA, itu adalah sinyal bullish. Dan ketika 16-SMA melintasi di bawah 36-SMA dan 72-SMA, itu adalah sinyal bearish.
Kaufman Adaptive Moving Average (KAMA) berfungsi sebagai filter untuk menghindari sinyal yang salah ketika tren tidak jelas.
Strategi ini melacak situasi penyeberangan SMA untuk mengambil posisi panjang atau pendek ketika tren relatif jelas. Kondisi panjang adalah penyeberangan 16-SMA di atas 36-SMA dan 72-SMA dengan KAMA linier. Kondisi pendek adalah penyeberangan 16-SMA di bawah 36-SMA dan 72-SMA dengan KAMA linier.
Keuntungan dari strategi ini adalah:
Ada juga beberapa risiko dengan strategi ini:
Risiko dapat dikurangi dengan menyesuaikan parameter SMA, menetapkan batasan stop loss, atau hanya berlaku untuk pasar yang sangat volatile.
Strategi dapat dioptimalkan dengan cara berikut:
Strategi Three SMA Crossover Momentum adalah strategi trend-following yang cukup klasik dan praktis secara keseluruhan. Strategi ini menilai tren pasar jangka menengah dan panjang secara efektif melalui crossover SMA multi-periode dan menyaring beberapa kebisingan. Strategi ini dapat berfungsi sebagai salah satu indikator referensi waktu untuk perdagangan posisi.
/*backtest start: 2023-11-24 00:00:00 end: 2023-12-24 00:00:00 period: 1h basePeriod: 15m 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/ // © Wielkieef //@version=5 strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) src = close Length1 = input.int(16, title=' 1-SMA Lenght', minval=1, group='SMA') Length2 = input.int(36, title=' 2-SMA Lenght', minval=1, group='SMA') Length3 = input.int(72, title=' 3-SMA Lenght', minval=1, group='SMA') SMA1 = ta.sma(close, Length1) SMA2 = ta.sma(close, Length2) SMA3 = ta.sma(close, Length3) Long_ma = SMA1 > SMA2 and SMA2 > SMA3 Short_ma = SMA1 < SMA2 and SMA2 < SMA3 LengthMainSMA = input.int(100, title=' Trend SMA ', minval=1) SMAas = ta.sma(src, LengthMainSMA) // Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef) lengthas = input.int(50, title=' KAMA Lenght') sp = input.bool(true, title=' Self Powered') er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas) pow = sp ? 1 / er : 2 per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow) a = 0. a := per * src + (1 - per) * nz(a[1], src) mad4h = 0. a_f = a / a[1] > .999 and a / a[1] < 1.001 ///. Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray barcolor(color=Bar_color) long_cond = Long_ma and SMAas < close and not a_f and close > a short_cond = Short_ma and SMAas > close and not a_f and close < a long_stop = Short_ma and SMAas < close short_stop = Long_ma and SMAas > close SMA1plot = plot(SMA1, color=Bar_color, linewidth=2) SMA2plot = plot(SMA2, color=Bar_color, linewidth=4) SMA3plot = plot(SMA3, color=Bar_color, linewidth=2) fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50)) if long_cond strategy.entry('Long', strategy.long) if short_cond strategy.entry('Short', strategy.short) strategy.close_all(when=long_stop or short_stop) //by wielkieef