
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.
Strategi ini berdasarkan kepada dua indikator analisis teknikal:
EMA rata-rata melintasi. Mengambil keputusan mengenai trend melintasi garis laju EMA (3), EMA (11) dan EMA (18) dan berfungsi sebagai isyarat keluar masuk.
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:
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.
Mengambil kesempatan daripada EMA Linear Crossover dan MACD untuk menilai dua kali ganda dan meningkatkan ketepatan.
Tetapkan tiga peluang melakukan lebih banyak, dua peluang penyelesaian, menjadikan perdagangan strategi lebih kerap, ruang keuntungan meluas.
Ruang untuk mengoptimumkan parameter dinamik besar. EMA garisan pantas, EMA garisan perlahan, EMA dan MACD panjang 0 boleh disesuaikan dengan baik.
Logik strategi jelas dan mudah difahami, mudah untuk dimulakan dan dioptimumkan.
EMA cross dan MACD akan menghasilkan peratusan kesalahan yang boleh menyebabkan kerugian yang tidak perlu.
Perdagangan yang kerap, perhentian kecil, risiko kerugian berkumpul.
Optimasi parameter adalah sukar, dan pengoptimuman yang tidak betul mungkin terlalu sesuai dengan data sejarah.
Anda perlu mempertimbangkan kos transaksi.
Mengenai risiko:
Tetapkan stop loss yang munasabah untuk mengurangkan kerugian tunggal.
Sesuaikan parameter dengan betul untuk mengelakkan overfitting.
Pertimbangkan kesan kos, seperti mengurangkan kekerapan transaksi.
Ubah ujian penunjuk lain: seperti Brinband, KDJ dan lain-lain.
Mengoptimumkan parameter EMA untuk persilangan garis rata: ubah parameter panjang EMA garis cepat dan EMA garis lambat.
Parameter untuk mengoptimumkan MACD: mengubah DIFF MACD dan DEA untuk mengira panjang EMA.
Menambah strategi hentian kerugian: seperti hentian perdagangan, hentian masa, hentian bergerak dan sebagainya.
Mengambil kira kesan kos transaksi, menyesuaikan jumlah kemasukan.
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.
/*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)