Strategi ini menentukan masuk dan keluar berdasarkan situasi persimpangan garis EMA yang cepat (3), garis EMA yang perlahan (11) dan garis EMA yang lebih perlahan (18), digabungkan dengan persimpangan garis sifar MACD.
Strategi ini terutamanya berdasarkan dua penunjuk analisis teknikal:
EMA Crossover: Ia menggunakan persilangan EMA cepat (3), EMA perlahan (11) dan EMA perlahan (18) untuk menentukan trend dan sebagai isyarat kemasukan dan keluar.
Indikator MACD dan Perpindahan Garis Sifarnya. MACD terdiri daripada DIFF dan DEA. DIFF dibina oleh EMA cepat (3) dikurangkan EMA perlahan (11). DEA adalah EMA (27) MACD. MACD>0 menunjukkan kenaikan dan MACD<0 menunjukkan penurunan. Perpindahan garis sifar bertindak sebagai isyarat kemasukan dan keluar.
Menurut gabungan persilangan EMA dan persilangan garis sifar MACD, terdapat 3 peluang masuk dan 2 peluang keluar:
Ringkasnya, strategi ini memanfaatkan sepenuhnya kelebihan sistem silang EMA berganda dan penunjuk MACD. Dengan menyesuaikan parameter purata bergerak dan MACD secara dinamik, ia dapat meningkatkan keuntungan strategi.
Ia menggunakan kekuatan kedua-dua crossover EMA dan penunjuk MACD, meningkatkan ketepatan melalui pengesahan dua penunjuk.
Terdapat 3 peluang masuk panjang dan 2 peluang keluar, meningkatkan kekerapan perdagangan dan potensi keuntungan.
Ruang yang besar untuk pengoptimuman parameter dinamik. panjang EMA pantas, EMA perlahan, EMA garis sifar dan MACD semua boleh dioptimumkan.
Logik yang jelas menjadikannya mudah untuk debug dan mengoptimumkan.
Kedua-dua crossover EMA dan penunjuk MACD mempunyai beberapa isyarat palsu, yang boleh membawa kepada kerugian yang tidak perlu.
Frekuensi perdagangan yang tinggi dengan saiz stop loss yang kecil dalam setiap perdagangan, jadi kerugian boleh terkumpul.
Kesukaran dalam pengoptimuman parameter. pengoptimuman yang tidak betul boleh menyebabkan pemasangan berlebihan.
Kesan kos perdagangan perlu dipertimbangkan sepenuhnya.
Untuk mengurangkan risiko:
Tetapkan stop loss yang betul untuk mengehadkan kerugian dalam perdagangan tunggal.
Sesuaikan parameter dengan sewajarnya untuk mengelakkan pemasangan berlebihan.
Pertimbangkan kesan kos perdagangan, seperti mengurangkan kekerapan perdagangan.
Alternatif ujian seperti Bollinger Bands, KDJ dan lain-lain.
Mengoptimumkan parameter silang EMA: Mengubah panjang EMA cepat dan perlahan.
Mengoptimumkan parameter MACD: Mengubah panjang EMA pengiraan DIFF dan DEA.
Tambah strategi stop loss: bilangan perdagangan berhenti, berhenti masa, berhenti berturut-turut dan lain-lain
Sesuaikan kekerapan kemasukan dengan mengambil kira kos dagangan.
Strategi ini menggabungkan sistem crossover EMA berganda dan penunjuk MACD untuk membina strategi parameter dinamik dengan kekerapan perdagangan yang tinggi dan keuntungan yang kuat. Juga, logik yang jelas menjadikannya mudah difahami dan dioptimumkan. Tetapi terdapat juga risiko isyarat palsu dan terlalu sesuai yang perlu ditangani melalui langkah-langkah stop loss yang betul, anti-overfitting dan lain-lain. Secara keseluruhan, strategi ini mempunyai kegunaan praktikal yang besar.
/*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)