Strategi Kombinasi Moving Average Crossover dan MACD

Penulis:ChaoZhang, Tanggal: 2023-10-24 13:51:02
Tag:

img

Gambaran umum

Strategi ini menggabungkan sistem crossover rata-rata bergerak dan indikator MACD untuk menerapkan strategi perdagangan otomatis yang berjalan panjang dalam periode tren dan mengambil keuntungan / berhenti pada pembalikan tren.

Prinsip

Strategi ini terutama didasarkan pada kombinasi sistem crossover rata-rata bergerak dan indikator MACD. Secara khusus, ia pergi panjang ketika rata-rata bergerak jangka pendek melintasi rata-rata bergerak jangka panjang, dan pergi pendek ketika rata-rata bergerak jangka pendek melintasi di bawah rata-rata bergerak jangka panjang. Di sini EMA 21 hari digunakan sebagai MA jangka pendek dan EMA 100 hari sebagai MA jangka panjang.

Pada saat yang sama, indikator MACD digunakan untuk mengkonfirmasi sinyal perdagangan. Hanya ketika garis MACD DIFF melintasi garis DEA, sinyal panjang akan dipicu. Dan begitu garis DIFF melintasi di bawah garis DEA, posisi panjang akan ditutup untuk stop loss.

Selain itu, RSI digunakan untuk menghindari shorting yang berlebihan, dengan posisi pendek dimulai hanya ketika RSI di bawah 30%.

Untuk stop loss, strategi mengadopsi metode stop trailing persentase tetap, dengan stop loss panjang ditetapkan pada 1% di bawah harga masuk, dan stop loss pendek ditetapkan pada 1% di atas harga masuk.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah menggunakan sistem moving average untuk menentukan arah tren utama, kemudian menggunakan indikator MACD untuk sinyal masuk, yang dapat secara efektif menyaring breakout palsu.

Selain itu, stop loss persentase tetap dan mengambil keuntungan bergerak membantu menjaga kerugian dalam batas yang dapat diterima, sambil mengamankan keuntungan lebih awal bila memungkinkan.

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Sistem crossover rata-rata bergerak memiliki masalah keterlambatan, yang dapat menyebabkan keterlambatan masuk dan kehilangan titik masuk terbaik.

  2. Indikator MACD cenderung menghasilkan sinyal palsu. Filter lain seperti KDJ dapat ditambahkan.

  3. Stop loss persentase tetap kadang-kadang tidak bisa keluar tepat waktu.

  4. Strategi dapat memiliki drawdown besar. ukuran posisi dapat dikurangi untuk mengurangi risiko.

  5. Strategi ini hanya berlangsung lama dan tidak dapat mengambil keuntungan dari tren penurunan.

Arahan Optimasi

Strategi ini dapat ditingkatkan dalam hal berikut:

  1. Mengoptimalkan parameter MA untuk sinyal yang lebih tepat.

  2. Tambahkan indikator lain untuk menyaring sinyal silang MA, seperti KDJ, RSI dll, untuk mengurangi perdagangan buruk.

  3. Uji metode stop loss dinamis seperti trailing stop dan ATR stop untuk mengontrol risiko dengan lebih baik.

  4. Tambahkan mekanisme shorting sehingga strategi dapat mendapatkan keuntungan dari tren penurunan.

  5. Mengoptimalkan ukuran posisi dan manajemen uang untuk mengurangi penarikan maksimum.

  6. Kinerja pengujian pada produk dan kelas aset yang berbeda untuk memperluas penerapan.

  7. Mengintegrasikan algoritma pembelajaran mesin untuk mengoptimalkan parameter secara otomatis dan mengurangi intervensi manual.

Kesimpulan

Strategi ini menggabungkan kekuatan sistem crossover rata-rata bergerak dan indikator MACD untuk profitabilitas tinggi. peningkatan lebih lanjut dalam penyesuaian parameter, filter tambahan, mekanisme stop loss, dan mekanisme shorting dapat meningkatkan stabilitas dan mengurangi drawdown. penggabungan pembelajaran mesin juga dapat memperluas penerapan. secara keseluruhan memberikan arah yang baik untuk strategi perdagangan kuantitatif, tetapi masih membutuhkan pengujian dan optimalisasi terus menerus untuk menjadi strategi yang kuat.


/*backtest
start: 2023-10-16 00:00:00
end: 2023-10-23 00:00:00
period: 2m
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/
// © Toxic_Cat_

//@version=5
// strategy("MA_50_200_CROSS", overlay=true, margin_long=100, margin_short=100)

EMA21 = ta.ema(close, 21)
EMA100 = ta.ema(close, 100)
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)

plot(EMA21)
plot(EMA100, color = color.orange)

openLong = ta.crossover(EMA21, EMA100) and macdLine > signalLine
openShort = ta.crossunder(EMA21, EMA100) and ta.rsi(close, 14) <= 33

crossunderMACD = ta.crossunder(macdLine, signalLine)


if (strategy.opentrades < 1)
    if openLong 
        strategy.entry("L",strategy.long, 1)

   if openShort
      strategy.entry("S",strategy.short, 1)

// slose long
// if ((strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.03) <= open) 
//     strategy.exit("profit L", "L", limit = close)

// else if strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.01 >= open or crossunderMACD
//     strategy.exit("loss L", "L", stop = close)

// slose short
// if (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03) >= open
//     strategy.exit("profit S", "S", limit = (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03))

// else if strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01 <= open
//    strategy.exit("loss S", "S", stop = (strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01))

















Lebih banyak