Strategi EMA Golden Cross

Penulis:ChaoZhang, Tanggal: 2023-09-18 21:18:17
Tag:

Gambaran umum

EMA golden cross adalah strategi perdagangan kuantitatif yang umum. Strategi ini menggunakan dua rata-rata bergerak eksponensial (EMA) dengan parameter yang berbeda. Ketika EMA periode yang lebih pendek melintasi di atas EMA periode yang lebih lama, itu akan panjang. Ketika EMA periode yang lebih pendek melintasi di bawah EMA periode yang lebih lama, itu menutup posisi. Strategi ini memanfaatkan reaksi yang lebih cepat dari EMA periode pendek dan tren berikut kemampuan EMA periode panjang untuk menghasilkan sinyal perdagangan.

Logika Strategi

Strategi ini pertama-tama mendefinisikan dua EMA, ema1 dengan panjang 10 dan ema2 dengan panjang 21. Kemudian menghitung nilai kedua EMA. Ketika ema1 melintasi di atas ema2, itu menandakan terobosan ke atas, yang merupakan sinyal panjang. Ketika ema1 melintasi di bawah ema2, itu menandakan pemecahan melalui EMA, yang merupakan sinyal posisi dekat.

Untuk menyaring kebocoran palsu, kode ini juga mendefinisikan nilai ambang, yang dihitung sebagai:

threshold = ((ema1 - ema2)*100) / ((ema1 + ema2)/2) 

Sempadan ini mewakili persentase jarak EMA terhadap rata-rata EMA. Ketika ambang berada di atas 0,15%, itu adalah sinyal panjang. Ketika ambang berada di bawah -0,006%, itu adalah sinyal posisi dekat.

Singkatnya, sinyal perdagangan dari strategi ini adalah:

  • Sinyal panjang: ema1 melintasi atas ema2, dan ambang >= 0,15%
  • Sinyal posisi dekat: ema1 melintasi di bawah ema2, dan ambang <= -0,006%

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Menggunakan EMA dapat meluruskan data harga dan membantu menghasilkan sinyal perdagangan.

  2. Sistem EMA ganda menyeimbangkan daya tanggap dan stabilitas.

  3. Batasnya menyaring kegagalan palsu dan menghindari perdagangan yang tidak perlu.

  4. Logika strategi sederhana dan jelas, cocok untuk pemula.

  5. Parameter EMA dan ambang batas dapat dioptimalkan.

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. EMA tertinggal dari harga dan mungkin melewatkan peluang jangka pendek.

  2. Risiko terjebak ketika tren berbalik, berpotensi menyebabkan kerugian besar.

  3. Batas yang tidak tepat dapat menyaring sinyal yang valid atau menghasilkan sinyal palsu.

  4. Jika parameter EMA tidak cocok, kedua EMA mungkin tidak menunjukkan perbedaan yang signifikan, menghasilkan sinyal palsu.

  5. Stop loss harus ditetapkan secara wajar untuk menghindari terganggu oleh perubahan pasar yang besar.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter EMA dan menguji periode yang berbeda.

  2. Optimalkan nilai ambang untuk menyeimbangkan sinyal palsu dan sinyal valid.

  3. Tambahkan indikator teknis lainnya seperti MACD, KDJ untuk mengkonfirmasi sinyal.

  4. Tambahkan mekanisme stop loss seperti trailing stop atau perintah OCO untuk membatasi kerugian.

  5. Pertimbangkan entri posisi parsial untuk mengurangi risiko.

  6. Uji periode penyimpanan yang berbeda untuk menemukan durasi yang optimal.

Kesimpulan

Strategi EMA golden cross memiliki logika yang jelas dan sederhana, memanfaatkan karakteristik EMA untuk menghasilkan sinyal perdagangan. Strategi ini memiliki keuntungan tertentu tetapi potensi risiko ada. Strategi dapat ditingkatkan dengan mengoptimalkan parameter, mengatur stop loss, menyaring sinyal dll. Ini cocok sebagai strategi perdagangan kuantitatif pemula.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

if high > ta.highest(high[1], 5)
    strategy.entry("Enter Long", strategy.long)
else if low < ta.lowest(low[1], 5)
    strategy.entry("Enter Short", strategy.short)//@version=3
strategy(title="ema10-21", shorttitle="10/21", overlay=true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 2500, commission_type = strategy.commission.percent, commission_value = 0.2)

len1 = input(10, minval=1, title="EMA #1 length")
src1 = input(close, title="EMA Source #1")
a = ta.ema(src1, len1)
plot(a, title="EMA #1", color=color.orange, linewidth=2, style=plot.style_line)

len2 = input(21, minval=1, title="EMA #2 length")
src2 = input(close, title="EMA Source #2")
b = ta.ema(src2, len2)
plot(b, title="EMA #2", color=color.blue, linewidth=2, style=plot.style_line)

threshold = ((a-b)*100)/((a+b)/2)
thresholdUp = threshold > 0.15
thresholdDown = threshold < -0.006

if (thresholdUp) 
    strategy.entry("Buy", strategy.long)
if (thresholdDown) 
    strategy.close("Buy", strategy.long)

//goLong() => (crossover(a, b)) and (threshold >= 0.0025)
//killLong() => (crossunder(a, b)) and (threshold <= -0.0025)
//strategy.entry("Buy", strategy.long, when = goLong())
//strategy.close("Buy", when = killLong())

//threshold = ((a-b)*100)/((a+b)/2)

//achat = out1 > out2
//vente = out1 < out2 //and threshold < -0.025

//strategy.entry("long", true, when = achat)
//strategy.exit("exit", "long", when = vente)

Lebih banyak