
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.
Strategi ini didasarkan pada dua indikator analisis teknis:
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.
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:
Secara keseluruhan, strategi ini mengintegrasikan sistem dua EMA dan MACD crossover untuk meningkatkan profitabilitas strategi dengan menyesuaikan parameter rata-rata dan MACD secara dinamis.
Mengambil keuntungan dari EMA crossover rata-rata dan MACD indikator, penilaian ganda indikator komprehensif, meningkatkan akurasi.
Siapkan tiga kali melakukan lebih banyak peluang, dua kali melakukan likuidasi, sehingga lebih sering melakukan strategi perdagangan, dan ruang untuk keuntungan diperluas.
Ada banyak ruang untuk mengoptimalkan parameter dinamis. EMA garis cepat, EMA garis lambat, EMA sumbu nol dan MACD panjang dapat disesuaikan secara optimal.
Strategi logis yang jelas dan mudah dipahami, mudah untuk debug dan optimasi.
EMA crossover dan MACD akan menghasilkan persentase misreporting tertentu yang dapat menyebabkan kerugian yang tidak perlu.
Frekuensi perdagangan tinggi, stop loss kecil, dan risiko akumulasi kerugian.
Parameter sangat sulit untuk dioptimalkan, dan jika tidak dioptimalkan, data historis akan terlampau cocok.
Konsekuensi dari biaya transaksi harus dipertimbangkan.
Mengenai risiko:
Setel stop loss yang masuk akal untuk mengurangi kerugian tunggal.
Sesuaikan parameter dengan benar untuk mencegah overfitting.
Mempertimbangkan dampak biaya, seperti mengurangi frekuensi transaksi.
Ubah tes indikator lainnya: seperti pita Brin, KDJ, dan lain-lain.
Mengoptimalkan parameter EMA untuk persimpangan rata-rata: mengubah parameter panjang EMA untuk garis cepat dan EMA untuk garis lambat.
Parameter untuk mengoptimalkan MACD: mengubah MACD untuk DIFF dan DEA untuk menghitung panjang EMA.
Meningkatkan strategi stop loss: seperti stop loss dalam jumlah transaksi, stop loss dalam waktu, stop loss bergerak, dan sebagainya.
Mengingat dampak dari biaya transaksi, menyesuaikan jumlah entri.
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.
/*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)