Strategi Crossover Rata-rata Bergerak Eksponensial Ganda

Penulis:ChaoZhang, Tanggal: 2023-11-23 17:34:06
Tag:

img

Gambaran umum

Strategi Crossover Dual Exponential Moving Average adalah strategi trend-following yang khas. Strategi ini menggunakan golden cross dan dead cross dari Double Exponential Moving Averages (DEMA) dengan parameter yang berbeda untuk menentukan tren pasar dan membuat posisi panjang dan pendek yang sesuai.

Logika Strategi

Strategi ini menggunakan 3 DEMA secara bersamaan dengan parameter yang berbeda: DEMA ((8), DEMA ((20) dan DEMA ((63).

  • DEMA (8) bereaksi paling cepat untuk menangkap tren jangka pendek;

  • DEMA))) bergerak sedikit lebih lambat untuk mengidentifikasi tren jangka menengah;

  • DEMA ((63) bereaksi paling lambat untuk menilai arah tren jangka panjang.

Ketika garis cepat DEMA ((8) melintasi di atas garis menengah DEMA ((20) dan garis lambat DEMA ((63), ini menunjukkan bahwa pasar berputar dari bawah ke atas, posisi panjang harus dibuat. Ketika DEMA ((8) melintasi di bawah DEMA ((20) dan DEMA ((63), ini menunjukkan bahwa pasar berputar dari atas ke bawah, posisi pendek harus dibuat.

Analisis Keuntungan

Dibandingkan dengan rata-rata bergerak tunggal, rata-rata bergerak eksponensial ganda lebih sensitif terhadap perubahan harga dan dapat mendeteksi titik balik tren lebih awal.

Kombinasi dari garis DEM multi-frame meningkatkan kualitas sinyal perdagangan dan menghindari false breakout. Pada saat yang sama, strategi hanya menghasilkan sinyal ketika tiga garis bersilang, menghindari frekuensi perdagangan yang berlebihan.

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Lebih sedikit sinyal silang dari tiga garis mungkin kehilangan beberapa peluang perdagangan.
  2. Garis-garis DEM yang melintasi keterlambatan mungkin tidak dapat merespons perubahan harga tepat waktu ketika pasar berfluktuasi dengan keras.
  3. Tidak bisa mengatasi pasar besar yang tidak berkembang secara efektif.

Risiko dapat ditingkatkan dan dikendalikan lebih lanjut dengan mengoptimalkan parameter, menambahkan kondisi filter dll.

Arahan Optimasi

Strategi dapat dioptimalkan dari aspek berikut:

  1. Mengoptimalkan parameter rata-rata bergerak agar lebih sesuai dengan karakteristik pasar yang berbeda.
  2. Tambahkan filter seperti volume, volatilitas untuk menghindari sinyal yang salah.
  3. Gabungkan indikator lain seperti MACD, KDJ untuk menyaring sinyal palsu.
  4. Tambahkan strategi stop loss untuk mengendalikan kerugian tunggal.
  5. Mengoptimalkan manajemen posisi untuk membuat rasio keuntungan lebih besar dari rasio kerugian.

Ringkasan

Strategi crossover DEMA memiliki gagasan keseluruhan yang jelas. Dengan menggabungkan DEMA multi-frame timeframe, ia dapat secara efektif menentukan arah tren pasar dan merupakan strategi trend-following yang khas. Strategi dapat ditingkatkan dengan pengoptimalan parameter, penambahan filter, manajemen stop loss dll sesuai dengan kebutuhan aktual, sehingga dapat memperoleh hasil strategi yang lebih baik.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © Noldo

//@version=4
//Quoted by Author HighProfit

//Lead-In
strategy("Double Exponential Moving Average 8-20-63 Strategy", 
         shorttitle="DEMA-8-20-63", 
         overlay=true,
         max_bars_back = 5000,
         initial_capital=100000, 
         max_bars_back = 5000,
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         commission_type=strategy.commission.percent, 
         commission_value=0.1,
         pyramiding = 0)

short = input(8, minval=1)
srcShort = input(ohlc4, title="Source Dema 1")

long = input(20, minval=1)
srcLong = input(low, title="Source Dema 2")

long2 = input(63, minval=1)
srcLong2 = input(close, title="Source Dema 3")
e1 = ema(srcShort, short)
e2 = ema(e1, short)
dema1 = 2 * e1 - e2
plot(dema1, color=color.green, linewidth=2)

e3 = ema(srcLong, long)
e4 = ema(e3, long)
dema2 = 2 * e3 - e4
plot(dema2, color=color.blue, linewidth=2)

e5 = ema(srcLong2, long2)
e6 = ema(e5, long2)
dema3 = 2 * e5 - e6
plot(dema3, color=color.black, linewidth=2)

longC  = dema1 > dema2 and dema1 > dema3
shortC = dema1 < dema2 and dema1 < dema3 

alertlong  = longC and  not longC[1]
alertshort = shortC and not shortC[1]


strategy.entry("Long" , strategy.long , when = longC ,comment="Long")
strategy.entry("Short", strategy.short, when = shortC,comment="Short")

// Alerts 

alertcondition(longC  , title='Long' , message=' Buy  Signal ')
alertcondition(shortC , title='Short', message=' Sell Signal ')



Lebih banyak