Strategi ini menggabungkan sistem crossover purata bergerak dan penunjuk MACD untuk melaksanakan strategi perdagangan automatik yang panjang dalam tempoh trend dan mengambil keuntungan / berhenti pada pembalikan trend.
Strategi ini terutamanya berdasarkan gabungan sistem crossover purata bergerak dan penunjuk MACD. Khususnya, ia pergi lama apabila purata bergerak jangka pendek melintasi purata bergerak jangka panjang, dan pergi pendek apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang.
Pada masa yang sama, penunjuk MACD digunakan untuk mengesahkan isyarat perdagangan. Hanya apabila garis MACD DIFF melintasi garis DEA isyarat panjang akan dicetuskan. Dan sebaik sahaja garis DIFF melintasi di bawah garis DEA, kedudukan panjang akan ditutup untuk stop loss.
Di samping itu, RSI digunakan untuk mengelakkan jangka pendek yang berlebihan, dengan kedudukan pendek dimulakan hanya apabila RSI di bawah 30%.
Untuk stop loss, strategi ini menggunakan kaedah stop trailing peratusan tetap, dengan stop loss panjang ditetapkan pada 1% di bawah harga kemasukan, dan stop loss pendek ditetapkan pada 1% di atas harga kemasukan.
Kelebihan terbesar strategi ini adalah menggunakan sistem purata bergerak untuk menentukan arah trend utama, kemudian menggunakan penunjuk MACD untuk isyarat kemasukan, yang dapat menapis pecah palsu dengan berkesan.
Di samping itu, peratusan stop loss tetap dan mengambil keuntungan bergerak membantu mengekalkan kerugian dalam had yang boleh diterima, sambil mengamankan keuntungan lebih awal jika boleh.
Risiko utama strategi ini ialah:
Sistem persilangan purata bergerak mempunyai masalah kelewatan, yang boleh menyebabkan penangguhan kemasukan dan kehilangan titik kemasukan terbaik. Ini boleh ditingkatkan dengan mengoptimumkan parameter MA.
Indikator MACD cenderung menghasilkan isyarat palsu. Penapis lain seperti KDJ boleh ditambah.
Peratusan stop loss tetap kadang-kadang tidak dapat keluar tepat pada masanya.
Strategi ini mungkin mempunyai pengeluaran yang besar. saiz kedudukan boleh dikurangkan untuk mengurangkan risiko.
Strategi ini hanya berlangsung lama dan tidak boleh mendapat keuntungan daripada trend penurunan.
Strategi ini boleh ditingkatkan dalam aspek berikut:
Mengoptimumkan parameter MA untuk isyarat yang lebih tepat.
Menambah penunjuk lain untuk menapis isyarat silang MA, seperti KDJ, RSI dan lain-lain, untuk mengurangkan perdagangan buruk.
Uji kaedah stop loss dinamik seperti trailing stop dan ATR stop untuk mengawal risiko dengan lebih baik.
Tambahkan mekanisme pendek supaya strategi dapat mendapat keuntungan daripada trend menurun.
Mengoptimumkan saiz kedudukan dan pengurusan wang untuk mengurangkan pengeluaran maksimum.
Uji prestasi pada produk dan kelas aset yang berbeza untuk memperluaskan penerapan.
Menggabungkan algoritma pembelajaran mesin untuk mengoptimumkan parameter secara automatik dan mengurangkan campur tangan manual.
Strategi ini menggabungkan kekuatan sistem crossover purata bergerak dan penunjuk MACD untuk keuntungan yang tinggi. Penambahbaikan lanjut dalam penyesuaian parameter, penapis tambahan, mekanisme stop loss, dan mekanisme pendek dapat meningkatkan kestabilan dan mengurangkan pengeluaran. Penggabungan pembelajaran mesin juga dapat memperluaskan penerapan. Secara keseluruhan ia memberikan arah yang baik untuk strategi perdagangan kuantitatif, tetapi masih memerlukan ujian dan pengoptimuman berterusan untuk menjadi strategi yang kukuh.
/*backtest start: 2023-10-16 00:00:00 end: 2023-10-23 00:00:00 period: 2m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Toxic_Cat_ //@version=5 // strategy("MA_50_200_CROSS", overlay=true, margin_long=100, margin_short=100) EMA21 = ta.ema(close, 21) EMA100 = ta.ema(close, 100) [macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) plot(EMA21) plot(EMA100, color = color.orange) openLong = ta.crossover(EMA21, EMA100) and macdLine > signalLine openShort = ta.crossunder(EMA21, EMA100) and ta.rsi(close, 14) <= 33 crossunderMACD = ta.crossunder(macdLine, signalLine) if (strategy.opentrades < 1) if openLong strategy.entry("L",strategy.long, 1) if openShort strategy.entry("S",strategy.short, 1) // slose long // if ((strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.03) <= open) // strategy.exit("profit L", "L", limit = close) // else if strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.01 >= open or crossunderMACD // strategy.exit("loss L", "L", stop = close) // slose short // if (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03) >= open // strategy.exit("profit S", "S", limit = (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03)) // else if strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01 <= open // strategy.exit("loss S", "S", stop = (strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01))