Strategi Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tanggal: 2024-01-17 17:45:45
Tag:

img

Gambaran umum

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.

Prinsip-prinsip

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:

  1. Menghitung rata-rata bergerak sederhana 8 periode dan 21 periode
  2. Mendeteksi sinyal silang antara keduanya
  3. Hitung kemiringan garis rata-rata bergerak 21 periode menggunakan fungsi arctangent atan
  4. Hanya menghasilkan sinyal panjang ketika kemiringan melebihi ambang positif yang ditetapkan sebelumnya
  5. Hanya menghasilkan sinyal pendek ketika kemiringan turun di bawah ambang negatif yang telah ditetapkan sebelumnya

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Ide strategi sederhana dan mudah dipahami/diimplementasikan
  2. Menggabungkan indeks kemiringan membantu menyaring periode non-trending dan meningkatkan kualitas sinyal
  3. Menggunakan rata-rata bergerak ganda memungkinkan keduanya untuk memainkan kekuatan mereka, meningkatkan ketahanan
  4. Parameter dapat disesuaikan sesuai dengan instrumen perdagangan yang berbeda
  5. Implementasi program sederhana memfasilitasi optimasi lebih lanjut

Analisis Risiko

Beberapa risiko juga ada dengan strategi ini:

  1. Lebih banyak sinyal palsu dapat terjadi selama fluktuasi pasar yang keras
  2. Crossover sendiri cenderung menghasilkan beberapa sinyal palsu
  3. Ada beberapa tingkat keterlambatan, tidak dapat langsung menangkap pembalikan tren

Beberapa cara untuk mengoptimalkan berdasarkan risiko ini:

  1. Sesuaikan parameter MA sesuai dengan karakteristik pasar
  2. Mengoptimalkan ambang kemiringan untuk meningkatkan ketahanan
  3. Tambahkan mekanisme stop loss untuk mengendalikan kerugian tunggal
  4. Masukkan indikator lain untuk menyaring sinyal
  5. Menggunakan pengaturan parameter adaptif untuk meningkatkan ketahanan

Arahan Optimasi

Beberapa arah untuk mengoptimalkan strategi:

  1. Menggunakan MAs adaptif, menyesuaikan parameter berdasarkan volatilitas
  2. Masukkan analisis volume untuk menghindari kesalahan selama konsolidasi
  3. Menambahkan indeks volatilitas untuk meningkatkan kualitas dan ketepatan waktu
  4. Tambahkan pembelajaran mesin untuk optimasi parameter otomatis
  5. Manfaatkan pembelajaran mendalam untuk mengungkap pola nonlinear yang lebih kompleks

Kesimpulan

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)
    


Lebih banyak