Strategi Perdagangan Pembalikan Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2023-12-04 16:39:13 Akhirnya memodifikasi: 2023-12-04 16:39:13
menyalin: 0 Jumlah klik: 554
1
fokus pada
1619
Pengikut

Strategi Perdagangan Pembalikan Rata-rata Pergerakan Ganda

Ringkasan

Ini adalah strategi perdagangan berbalik berdasarkan indikator moving average ganda. Strategi ini menghasilkan sinyal perdagangan dengan menghitung moving average dari dua set parameter yang berbeda untuk menilai tren harga berdasarkan perubahan arahnya dan menetapkan parameter sensitivitas terhadap perubahan arah.

Prinsip Strategi

Strategi ini memungkinkan untuk memilih jenis moving average (misalnya SMA, EMA, dll), panjang dan sumber harga (misalnya harga close out, harga tipikal, dll). Setelah menghitung dua set moving average, menentukan arahnya dengan menentukan reaksi parameter.

Selain itu, strategi ini juga menetapkan arah perubahan dan menentukan kondisi kenaikan / penurunan yang berkelanjutan, untuk menghindari sinyal yang salah. Dan menampilkan status penurunan harga dengan warna yang berbeda.

Analisis Keunggulan

Strategi movevg ganda ini dikombinasikan dengan garis cepat dan lambat yang ditetapkan dengan parameter yang berbeda, yang secara efektif dapat memfilter kebisingan pasar perdagangan gelombang dan mengidentifikasi tren yang lebih kuat. Dibandingkan dengan strategi movevg tunggal, ini mengurangi sinyal yang salah dan dapat masuk saat tren lebih jelas, sehingga mendapatkan tingkat kemenangan yang lebih tinggi.

Parameter reaksi sensitivitas memungkinkan strategi ini untuk beradaptasi secara fleksibel untuk berbagai siklus dan varietas. Proses strategi intuitif dan sederhana, mudah dipahami dan dioptimalkan.

Analisis risiko

Risiko terbesar dari strategi ini adalah kehilangan atau membangun posisi terbalik dengan melewatkan titik balik. Ini terkait dengan pengaturan reaksi parameter. Jika reaksi terlalu kecil, mudah untuk menghasilkan sinyal yang salah; Jika reaksi terlalu besar, mungkin untuk melewatkan titik masuk yang lebih baik.

Risiko lain adalah tidak dapat mengontrol kerugian secara efektif. Ketika harga berfluktuasi tajam, tidak dapat berhenti dengan cepat, menyebabkan kerugian berkembang. Ini perlu didukung dengan strategi stop loss untuk mengontrol.

Arah optimasi

Strategi optimasi ini berfokus pada pilihan reaksi parameter, jenis dan panjang rata-rata bergerak. Reaksi dapat ditambahkan sesuai untuk mengurangi sinyal yang salah. Parameter rata-rata bergerak dapat diuji berdasarkan periode dan varietas yang berbeda, memilih kombinasi yang menghasilkan sinyal terbaik.

Selain itu, kombinasi dengan indikator lain seperti RSI, KD dan lain-lain untuk mengkonfirmasi sinyal perdagangan juga merupakan ide optimasi. Atau menggunakan metode pembelajaran mesin untuk memilih parameter secara otomatis.

Meringkaskan

Strategi ini secara keseluruhan lebih sederhana dan praktis, dengan filter rata-rata bergerak ganda dan menghasilkan sinyal perdagangan, dapat secara efektif mengidentifikasi reversal tren, merupakan strategi pelacakan tren yang khas. Setelah kombinasi parameter yang dioptimalkan, kemampuan menangkap pasar yang baik dan kemampuan menahan posisi pasar akan ditingkatkan.

Kode Sumber Strategi
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle="MA_color strategy", title="Moving Average Color", overlay=true)

// === INPUTS

ma_type   = input(defval="HullMA", title="MA Type: ", options=["SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "ZEMA", "TMA", "SSMA"])
ma_len    = input(defval=32, title="MA Lenght", minval=1)
ma_src    = input(close, title="MA Source")
reaction  = input(defval=2, title="MA Reaction", minval=1)

// SuperSmoother filter
// © 2013  John F. Ehlers
variant_supersmoother(src,len) =>
    a1 = exp(-1.414*3.14159 / len)
    b1 = 2*a1*cos(1.414*3.14159 / len)
    c2 = b1
    c3 = (-a1)*a1
    c1 = 1 - c2 - c3
    v9 = 0.0
    v9 := c1*(src + nz(src[1])) / 2 + c2*nz(v9[1]) + c3*nz(v9[2])
    v9
    
variant_smoothed(src,len) =>
    v5 = 0.0
    v5 := na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len
    v5

variant_zerolagema(src,len) =>
    ema1 = ema(src, len)
    ema2 = ema(ema1, len)
    v10 = ema1+(ema1-ema2)
    v10
    
variant_doubleema(src,len) =>
    v2 = ema(src, len)
    v6 = 2 * v2 - ema(v2, len)
    v6

variant_tripleema(src,len) =>
    v2 = ema(src, len)
    v7 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len)              
    v7
    
variant(type, src, len) =>
    type=="EMA"     ? ema(src,len) : 
      type=="WMA"   ? wma(src,len): 
      type=="VWMA"  ? vwma(src,len) : 
      type=="SMMA"  ? variant_smoothed(src,len) : 
      type=="DEMA"  ? variant_doubleema(src,len): 
      type=="TEMA"  ? variant_tripleema(src,len): 
      type=="HullMA"? wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) :
      type=="SSMA"  ? variant_supersmoother(src,len) : 
      type=="ZEMA"  ? variant_zerolagema(src,len) : 
      type=="TMA"   ? sma(sma(src,len),len) : sma(src,len)


// === Moving Average
ma_series = variant(ma_type,ma_src,ma_len)

direction = 0
direction := rising(ma_series,reaction) ? 1 : falling(ma_series,reaction) ? -1 : nz(direction[1])
change_direction= change(direction,1)
change_direction1= change(direction,1)

pcol = direction>0 ? lime : direction<0 ? red : na
plot(ma_series, color=pcol,style=line,join=true,linewidth=3,transp=10,title="MA PLOT")

/////// Alerts ///////

alertcondition(change_direction,title="Change Direction MA",message="Change Direction MA")


longCondition = direction>0
shortCondition = direction<0
if (longCondition)
    strategy.entry("BUY", strategy.long)
if (shortCondition)
    strategy.entry("SELL", strategy.short)