EMA dan Strategi Trading MACD dengan Trailing Stop Loss

Penulis:ChaoZhang, Tanggal: 2023-09-20 11:21:14
Tag:

Gambaran umum

Strategi ini menggabungkan indikator moving average eksponensial (EMA) dan moving average convergence divergence (MACD) untuk menghasilkan sinyal perdagangan, dan mengadopsi trailing stop loss untuk mengendalikan risiko.

Logika Strategi

Ketika garis EMA cepat melintasi di atas garis EMA lambat dan histogram MACD berubah menjadi bearish, strategi berjalan panjang. Ketika posisi panjang ada, garis stop loss menurun ditetapkan. Jika harga turun di bawah garis stop loss dengan persentase tertentu, posisi panjang akan dihentikan.

Secara khusus, strategi ini menggunakan EMA 7 hari dan EMA 14 hari untuk membangun EMA cepat dan lambat. Nilai MACD diperoleh dengan mengurangi EMA 26 hari dari EMA 12 hari, dan garis Sinyal diperoleh dengan EMA 9 hari dari MACD. Ketika EMA 7 hari melintasi di atas EMA 14 hari dan nilai MACD melintasi di atas garis Sinyal, posisi panjang dibuka. Kemudian garis stop loss menurun ditetapkan. Jika harga turun dari level yang lebih tinggi dengan persentase tertentu, posisi panjang akan dihentikan.

Analisis Keuntungan

Strategi ini menggabungkan indikator EMA dan MACD, yang dapat secara efektif menyaring breakout palsu. EMA menilai arah tren dan MACD menentukan titik masuk. Menggabungkan keduanya dapat mengurangi frekuensi perdagangan sambil meningkatkan kualitas sinyal. Stop loss trailing dapat memaksimalkan perlindungan keuntungan yang ada dan stop loss tepat waktu ketika pergerakan yang merugikan besar terjadi.

Uji balik menunjukkan bahwa strategi ini dapat menghasilkan pengembalian yang layak bahkan di pasar beruang, yang menunjukkan robusitas tertentu. Frekuensi perdagangan tidak tinggi, cocok untuk kepemilikan jangka menengah hingga panjang. Parameter periode EMA dapat disesuaikan untuk menyesuaikan tren mengikuti tren.

Analisis Risiko

Strategi ini terutama bergantung pada indikator, dengan risiko tertipu. Selama konsolidasi yang terbatas pada kisaran, EMA dan MACD dapat menghasilkan sinyal palsu yang berlebihan, yang mengarah pada perdagangan yang berlebihan dan kerugian. Stop loss trailing hanya berfungsi untuk downside breakout, tidak dapat menangani pembalikan tajam setelah upside breakout.

Perpanjangan periode EMA secara tepat dapat mengurangi sinyal palsu. Indikator lain juga dapat dikombinasikan untuk menyaring sinyal, seperti indikator volume atau volatilitas. Selain itu, persentase stop loss dapat disesuaikan berdasarkan kondisi pasar, untuk menyeimbangkan risiko stop loss dan whipsaw.

Arahan Optimasi

  1. Kombinasi periode EMA yang berbeda dapat diuji untuk menemukan parameter yang lebih cocok.

  2. Indikator lain seperti RSI, KD dapat ditambahkan untuk penyaringan sinyal dan peningkatan kualitas.

  3. Persentase stop loss dapat disesuaikan berdasarkan produk yang berbeda, dengan stop trailing dinamis.

  4. Breakout, pengenalan pola dan teknik lain dapat dimasukkan untuk aturan masuk dan keluar yang lebih dapat disesuaikan.

  5. Pembelajaran mesin dapat membantu dalam memprediksi arah tren secara keseluruhan untuk membantu EMA.

Ringkasan

Secara keseluruhan, strategi ini cukup kuat, menghasilkan pengembalian yang layak bahkan di pasar beruang. Tetapi ada risiko whipsaw tertentu, yang membutuhkan penyesuaian parameter dan penyaringan sinyal. Optimalisasi lebih lanjut dengan indikator teknis lainnya dan pembelajaran mesin dapat sangat meningkatkannya. Singkatnya, strategi ini menyediakan templat yang dapat diandalkan untuk perdagangan kuantitatif.


/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 10m
basePeriod: 1m
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/
// © Coinrule

//@version=5
strategy('EMA and MACD with Trailing Stop Loss',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

// EMAs 
fastEMA = ta.ema(close, 7)
slowEMA = ta.ema(close, 14)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA


// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd_signal, macd)


// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999
    

if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
    strategy.entry(id="Long", direction = strategy.long)

strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)


//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)


Lebih banyak