Strategi ini menggunakan rata-rata bergerak ganda, khususnya 8-periode dan 21-periode. Ini menghasilkan sinyal panjang ketika MA yang lebih pendek melintasi yang lebih panjang, dan sinyal pendek ketika MA yang lebih pendek melintasi yang lebih panjang.
Strategi ini juga menggabungkan kemiringan garis rata-rata bergerak untuk menyaring beberapa periode non-trend dan hanya menghasilkan sinyal ketika tren lebih jelas.
Inti dari strategi ini terletak pada persilangan rata-rata bergerak jangka pendek dan jangka panjang. MA yang lebih pendek dapat menangkap perubahan tren lebih cepat, sementara MA yang lebih lama memiliki efek penyaringan kebisingan yang lebih baik. Pembentukan tren naik disarankan ketika MA yang lebih pendek menyeberangi MA yang lebih panjang, yang mengarah ke sinyal panjang; pembentukan tren menurun disarankan ketika MA yang lebih pendek menyeberangi di bawah MA yang lebih panjang, yang mengarah ke sinyal pendek.
Strategi ini juga menetapkan ambang kemiringan. Hanya ketika kemiringan lebih besar dari nilai ambang positif sinyal panjang akan dihasilkan. Hanya ketika kemiringan lebih kecil dari nilai ambang negatif sinyal pendek akan dihasilkan. Ini membantu menyaring zona di mana tidak ada tren yang jelas, menghasilkan sinyal perdagangan berkualitas lebih tinggi.
Secara khusus, logika untuk menghasilkan sinyal perdagangan adalah:
Keuntungan dari strategi ini meliputi:
Beberapa risiko juga ada dengan strategi ini:
Beberapa cara untuk mengoptimalkan berdasarkan risiko ini:
Beberapa arah untuk mengoptimalkan strategi:
Secara singkat, strategi MA ganda ini sederhana dan praktis. Dengan menangkap karakteristik tren yang berbeda melalui dua parameter periode dan menggabungkannya untuk menghasilkan sinyal perdagangan. Sementara itu, menggabungkan ambang kemiringan meningkatkan kualitas sinyal. Strategi ini dapat berfungsi sebagai dasar untuk ekstensi, dengan ruang optimasi dan potensi yang cukup.
/*backtest start: 2024-01-09 00:00:00 end: 2024-01-16 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //written by sixpathssenin //@version=4 strategy(title="Dual Moving Average",initial_capital=10000,overlay=true) ma1= sma(close,8) ma2= sma(close,21) angleCriteria = input(title="Angle", type=input.integer, defval=7, minval=1, maxval=13) i_lookback = input(2, "Angle Period", input.integer, minval = 1) i_atrPeriod = input(10, "ATR Period", input.integer, minval = 1) i_angleLevel = input(6, "Angle Level", input.integer, minval = 1) i_maSource = input(close, "MA Source", input.source) f_angle(_src, _lookback, _atrPeriod) => rad2degree = 180 / 3.141592653589793238462643 //pi ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod)/_lookback) ang _angle = f_angle(ma2, i_lookback, i_atrPeriod) plot(ma1,color=#FF0000) plot(ma2,color=#00FF00) crosso=crossover(ma1,ma2) crossu=crossunder(ma1,ma2) _lookback = 15 f_somethingHappened(_cond, _lookback) => bool _crossed = false for i = 1 to _lookback if _cond[i] _crossed := true _crossed longcrossed = f_somethingHappened(crosso,_lookback) shortcrossed = f_somethingHappened(crossu,_lookback) long = longcrossed and _angle > angleCriteria short= shortcrossed and _angle < -(angleCriteria) if(long) strategy.entry("Long",strategy.long) if(short) strategy.entry("short",strategy.short)