Purata Pergerakan Dinamik dan Strategi Crossover MACD


Tarikh penciptaan: 2024-02-06 14:29:23 Akhirnya diubah suai: 2024-02-06 14:29:23
Salin: 0 Bilangan klik: 747
1
fokus pada
1617
Pengikut

Purata Pergerakan Dinamik dan Strategi Crossover MACD

Gambaran keseluruhan

Strategi ini menentukan masuk dan keluar dengan mengira persilangan garis cepat EMA 3), garis lambat EMA 11 dan EMA 18 yang bercampur dengan MACD. Strategi ini adalah strategi dinamik yang menggunakan kedua-dua EMA dan MACD untuk membuat keputusan perdagangan.

Prinsip Strategi

Strategi ini berdasarkan kepada dua indikator analisis teknikal:

  1. EMA rata-rata melintasi. Mengambil keputusan mengenai trend melintasi garis laju EMA (3), EMA (11) dan EMA (18) dan berfungsi sebagai isyarat keluar masuk.

  2. Indeks MACD dan penyambung paksi sifarnya. MACD terdiri daripada perbezaan jarak ((DIFF) dan DEA. DIFF membentuk garis pantas EMA ((3) tolak garis perlahan EMA ((11)). DEA membentuk EMA ((27) MACD. MACD>0 menunjukkan banyak kepala, MACD menunjukkan kepala kosong.

Berdasarkan kombinasi EMA Cross dan MACD Zero Axis Cross, tiga peluang masuk dan dua peluang keluar ditetapkan:

  1. MACD berada di atas 0 dan berpusing ke atas untuk peluang pertama
  2. Garis pantas EMA ((3) melalui garis perlahan EMA ((11) untuk peluang kedua untuk melakukan lebih
  3. Garis pantas EMA ((3) melalui garis perlahan EMA ((18) membuat lebih banyak peluang untuk kedudukan penuh ketiga
  4. Garis pantas EMA ((3)) bawah menembusi garis perlahan EMA ((11) untuk peluang kosong pertama kali
  5. MACD berada di bawah 0 dan berpusing ke bawah untuk peluang kosong kedua

Secara keseluruhan, strategi ini menggabungkan sistem silang EMA ganda dan penunjuk MACD, yang dapat meningkatkan keuntungan strategi dengan menyesuaikan parameter garis purata dan parameter MACD secara dinamik.

Kelebihan Strategik

  1. Mengambil kesempatan daripada EMA Linear Crossover dan MACD untuk menilai dua kali ganda dan meningkatkan ketepatan.

  2. Tetapkan tiga peluang melakukan lebih banyak, dua peluang penyelesaian, menjadikan perdagangan strategi lebih kerap, ruang keuntungan meluas.

  3. Ruang untuk mengoptimumkan parameter dinamik besar. EMA garisan pantas, EMA garisan perlahan, EMA dan MACD panjang 0 boleh disesuaikan dengan baik.

  4. Logik strategi jelas dan mudah difahami, mudah untuk dimulakan dan dioptimumkan.

Risiko Strategik

  1. EMA cross dan MACD akan menghasilkan peratusan kesalahan yang boleh menyebabkan kerugian yang tidak perlu.

  2. Perdagangan yang kerap, perhentian kecil, risiko kerugian berkumpul.

  3. Optimasi parameter adalah sukar, dan pengoptimuman yang tidak betul mungkin terlalu sesuai dengan data sejarah.

  4. Anda perlu mempertimbangkan kos transaksi.

Mengenai risiko:

  1. Tetapkan stop loss yang munasabah untuk mengurangkan kerugian tunggal.

  2. Sesuaikan parameter dengan betul untuk mengelakkan overfitting.

  3. Pertimbangkan kesan kos, seperti mengurangkan kekerapan transaksi.

Arah pengoptimuman strategi

  1. Ubah ujian penunjuk lain: seperti Brinband, KDJ dan lain-lain.

  2. Mengoptimumkan parameter EMA untuk persilangan garis rata: ubah parameter panjang EMA garis cepat dan EMA garis lambat.

  3. Parameter untuk mengoptimumkan MACD: mengubah DIFF MACD dan DEA untuk mengira panjang EMA.

  4. Menambah strategi hentian kerugian: seperti hentian perdagangan, hentian masa, hentian bergerak dan sebagainya.

  5. Mengambil kira kesan kos transaksi, menyesuaikan jumlah kemasukan.

ringkaskan

Strategi ini menggunakan kombinasi sistem silang EMA ganda dan penunjuk MACD untuk membina strategi parameter dinamik yang mempunyai frekuensi perdagangan yang tinggi dan potensi keuntungan. Pada masa yang sama, logik strategi mudah dan jelas, mudah difahami dan disesuaikan dengan optimum. Tetapi terdapat juga risiko kesalahan pelaporan dan kesukaran dalam pengoptimuman parameter, yang perlu ditangani dengan cara yang munasabah, seperti menghentikan kerugian, dan mencegah penyesuaian berlebihan.

Kod 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)