Strategi Crossover Rata-rata Pergerakan Dinamis dan MACD


Tanggal Pembuatan: 2024-02-06 14:29:23 Akhirnya memodifikasi: 2024-02-06 14:29:23
menyalin: 0 Jumlah klik: 747
1
fokus pada
1617
Pengikut

Strategi Crossover Rata-rata Pergerakan Dinamis dan MACD

Ringkasan

Strategi ini menentukan masuk dan keluar dengan menghitung persilangan garis cepat EMA (3), EMA (11) dan EMA (18) dalam kombinasi dengan MACD. Strategi ini adalah strategi dinamis yang menggunakan kedua indikator EMA dan MACD untuk membuat keputusan perdagangan.

Prinsip Strategi

Strategi ini didasarkan pada dua indikator analisis teknis:

  1. EMA garis rata-rata bersilang. Dengan garis cepat EMA (3), garis lambat EMA (11) dan garis lambat EMA (18) untuk menilai tren bersilang dan berfungsi sebagai sinyal masuk dan keluar.

  2. Indikator MACD dan sumbu nolnya. MACD terdiri dari divergensi ((DIFF) dan DEA. DIFF adalah garis cepat EMA ((3) dikurangi garis lambat EMA ((11) membentuk DEA adalah MACD EMA ((27)). MACD>0 menunjukkan multihead, MACD menunjukkan kosong.

Berdasarkan kombinasi EMA cross dan MACD zero axis cross, ditetapkan tiga kesempatan masuk dan dua kesempatan keluar:

  1. MACD berada di atas sumbu nol dan melintang ke atas untuk pertama kalinya
  2. Garis cepat EMA ((3)) melewati garis lambat EMA ((11) untuk kesempatan kedua untuk melakukan lebih
  3. Garis cepat EMA ((3)) melewati garis lambat EMA ((18) membuat lebih banyak kesempatan untuk posisi penuh ketiga
  4. Garis cepat EMA ((3)) di bawah garis lambat EMA ((11) untuk peluang kosong pertama kali
  5. MACD berada di bawah sumbu nol dan berpotongan ke bawah untuk peluang shorting kedua

Secara keseluruhan, strategi ini mengintegrasikan sistem dua EMA dan MACD crossover untuk meningkatkan profitabilitas strategi dengan menyesuaikan parameter rata-rata dan MACD secara dinamis.

Keunggulan Strategis

  1. Mengambil keuntungan dari EMA crossover rata-rata dan MACD indikator, penilaian ganda indikator komprehensif, meningkatkan akurasi.

  2. Siapkan tiga kali melakukan lebih banyak peluang, dua kali melakukan likuidasi, sehingga lebih sering melakukan strategi perdagangan, dan ruang untuk keuntungan diperluas.

  3. Ada banyak ruang untuk mengoptimalkan parameter dinamis. EMA garis cepat, EMA garis lambat, EMA sumbu nol dan MACD panjang dapat disesuaikan secara optimal.

  4. Strategi logis yang jelas dan mudah dipahami, mudah untuk debug dan optimasi.

Risiko Strategis

  1. EMA crossover dan MACD akan menghasilkan persentase misreporting tertentu yang dapat menyebabkan kerugian yang tidak perlu.

  2. Frekuensi perdagangan tinggi, stop loss kecil, dan risiko akumulasi kerugian.

  3. Parameter sangat sulit untuk dioptimalkan, dan jika tidak dioptimalkan, data historis akan terlampau cocok.

  4. Konsekuensi dari biaya transaksi harus dipertimbangkan.

Mengenai risiko:

  1. Setel stop loss yang masuk akal untuk mengurangi kerugian tunggal.

  2. Sesuaikan parameter dengan benar untuk mencegah overfitting.

  3. Mempertimbangkan dampak biaya, seperti mengurangi frekuensi transaksi.

Arah optimasi strategi

  1. Ubah tes indikator lainnya: seperti pita Brin, KDJ, dan lain-lain.

  2. Mengoptimalkan parameter EMA untuk persimpangan rata-rata: mengubah parameter panjang EMA untuk garis cepat dan EMA untuk garis lambat.

  3. Parameter untuk mengoptimalkan MACD: mengubah MACD untuk DIFF dan DEA untuk menghitung panjang EMA.

  4. Meningkatkan strategi stop loss: seperti stop loss dalam jumlah transaksi, stop loss dalam waktu, stop loss bergerak, dan sebagainya.

  5. Mengingat dampak dari biaya transaksi, menyesuaikan jumlah entri.

Meringkaskan

Strategi ini menggunakan kombinasi dari dua EMA cross-system dan MACD indikator untuk membangun strategi parameter dinamis dengan frekuensi perdagangan yang tinggi dan potensi keuntungan. Pada saat yang sama, logika strategi sederhana dan jelas, mudah dipahami dan disesuaikan dengan optimasi. Namun, ada juga risiko misreporting dan kesulitan dalam mengoptimalkan parameter, yang perlu ditangani dengan cara yang masuk akal seperti menghentikan kerugian dan mencegah overfitting. Secara keseluruhan, strategi ini memiliki kepraktisan yang kuat.

Kode Sumber Strategi
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false)

short = ema(close,3)
long = ema(close, 11)
long2 = ema(close, 18)
//plot(short, color = red, linewidth = 4)
//plot(long, color = blue, linewidth = 4)
//plot(long2, color = green, linewidth = 4)

isCross1 = crossover(short, long)
isCross2 = crossover(short, long2)
isCrossSell = crossunder(short, long)
//isCross3 = crossover(long, long2)

//plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar)
//plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar)

//plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar)

//plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar)

fastLength = input(3)
slowlength = input(11)
MACDLength = input(27)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength) //signal
delta = MACD - aMACD // histograma

strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0))

strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1)

strategy.entry("all in", strategy.long, comment="all in",when=isCross2)

strategy.close("2nd in",when=isCrossSell) 
strategy.close("all in",when=isCrossSell)
//strategy.close("2nd in",when=crossunder(delta, 0)) 
//strategy.close("all in",when=crossunder(delta, 0))
strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) 
    
histColour = (delta > 0) ? green : (delta < 0) ? red :  #4169E1
    
plot(MACD,color=red,linewidth=2)
plot(aMACD,color=blue,linewidth=2)
plot(delta,style=histogram, color=histColour, linewidth=10)
plot(0,color=white)