Strategi ini adalah strategi perdagangan algoritma yang mengikuti trend. Ia mengira dua garis EMA dengan parameter yang berbeza dan menghasilkan isyarat perdagangan apabila Golden Cross dan Death Cross berlaku antara dua EMA. Strategi ini juga menggabungkan beberapa garis EMA untuk keluar keuntungan dan menetapkan titik stop loss untuk mengawal risiko.
Strategi ini menggunakan 4 garis EMA, termasuk EMA cepat dan EMA perlahan, yang silangannya digunakan untuk menjana isyarat beli dan jual. Di samping itu, dua garis EMA dengan parameter antara EMA cepat dan perlahan digunakan untuk keluar sebahagian atau sepenuhnya posisi terlebih dahulu untuk mengunci keuntungan.
Secara khusus, apabila EMA pantas melintasi EMA perlahan, isyarat beli dihasilkan. Apabila EMA pantas melintasi di bawah EMA perlahan, isyarat jual dihasilkan. Ini adalah strategi silang EMA ganda biasa. Untuk mengesan trend dengan lebih baik dan meningkatkan keuntungan, selepas memasuki kedudukan, strategi akan secara selektif keluar sebahagian atau semua kedudukan apabila EMA pantas melintasi di atas garis EMA kedua atau apabila EMA pantas melintasi di bawah garis EMA ketiga.
Di samping itu, strategi menetapkan kedua-dua titik stop loss panjang dan pendek untuk mengelakkan kerugian yang berlebihan. khususnya, stop loss untuk kedudukan panjang ditetapkan pada 6% daripada harga masuk, dan 3% untuk kedudukan pendek.
Berbanding dengan strategi silang dua-EMA yang tipikal, kelebihan utama strategi ini termasuk:
Menetapkan pelbagai garis EMA untuk keluar keuntungan dapat mengunci keuntungan dengan lebih baik dan mencegah penyusutan keuntungan semasa penarikan balik berikutnya.
Kedudukan pendek mempunyai stop loss yang lebih kecil, yang dapat menahan turun naik pasaran biasa yang lebih besar dan mengelakkan stop loss yang kerap.
Menetapkan garis EMA dengan parameter yang berbeza untuk keluar keuntungan membolehkan memilih titik keluar yang optimum berdasarkan keadaan pasaran.
Strategi keseluruhan mempunyai keupayaan trend yang baik untuk menangkap keuntungan yang lebih besar dari trend jangka menengah hingga panjang.
Risiko utama strategi ini termasuk:
Dalam pasaran terhad julat, isyarat dagangan yang dihasilkan oleh garis EMA adalah kerap, yang boleh membawa kepada perdagangan berlebihan.
Stop loss pendek hanya dapat mencegah keadaan pasaran yang melampau dan tidak dapat mencegah pengeluaran yang signifikan dalam akaun strategi.
Risiko pengeluaran masih wujud. Keuntungan boleh menyusut dengan ketara apabila penyesuaian jangka panjang berlaku.
Strategi ini sensitif terhadap penyesuaian parameter. Konfigurasi yang tidak betul boleh menyebabkan kegagalan strategi.
Memandangkan risiko di atas, strategi ini boleh dioptimumkan dalam aspek berikut:
Meningkatkan algoritma pembelajaran mesin untuk membantu penilaian trend dan mengurangkan kemungkinan perdagangan yang salah.
Meningkatkan mekanisme stop loss adaptif untuk menyesuaikan stop loss secara dinamik berdasarkan turun naik pasaran.
Tetapkan penggunaan modal untuk mengelakkan pendudukan modal yang berlebihan dan meningkatkan mekanisme pengurusan kedudukan.
Pilih produk dagangan dengan trend yang jelas dan turun naik yang tinggi.
Meningkatkan modul pengoptimuman parameter untuk mencapai pengoptimuman automatik dan kemas kini parameter.
Secara keseluruhannya, strategi crossover dual-EMA adalah strategi trend berikut yang kos efektif. Ia mempunyai kelebihan seperti beberapa garis EMA untuk mengambil keuntungan, hentian pendek kecil, dan keupayaan trend berikut yang baik. Walau bagaimanapun, masih ada beberapa risiko dengan strategi ini. Ia memerlukan pengoptimuman penyesuaian parameter lebih lanjut dan penggabungan algoritma pembelajaran mesin untuk meningkatkan kestabilan. Secara umum, strategi ini sesuai untuk pelabur dengan beberapa pengalaman perdagangan untuk menjalankan perdagangan algoritma.
/*backtest start: 2023-02-19 00:00:00 end: 2024-02-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © RealTraderAkeme //@version=5 strategy("AKEME_EMA_CROSS_V6", overlay=true) ////////////////////////////////////////////////////////////PARAMETERS///////////////////////////////////////////////////////////////// emaFast_op = input(title="Fast_EMA", defval=6) emaSlow_op = input(title="Slow_EMA", defval=26) emaExit_op = input(title="Sell_EMA_Exit",defval=10) emabuyExit_op = input(title="Buy_EMA_Exit",defval=20) Order_Value = input(defval=1000, title="Order_Value in Pounds") Direction_Of_Trade = input(title="Trade Direction", defval="Both") ////////////////////////////////////////////////////////////INPUTS////////////////////////////////////////////////////////////////// fastEMA = ta.ema(close, emaFast_op) slowEMA = ta.ema(close,emaSlow_op) emaExit = ta.ema(close,emaExit_op) emabuyExit = ta.ema(close,emabuyExit_op) Entry_Ratio = strategy.openprofit/Order_Value //////////////////////////////////////////////////////////GRAPHS////////////////////////////////////////////////////////////////// plot(fastEMA, color=color.orange, linewidth = 2) plot(slowEMA,color = color.blue, linewidth = 2) plot(emaExit,color = color.gray, linewidth = 2) plot(series=emabuyExit, color= color.rgb(210, 74, 235), linewidth=2) /////////////////////////////////////////////////////Conditions////////////////////////////////////////////////////////////////////// longOK = (Direction_Of_Trade == "Long") or (Direction_Of_Trade == "Both") shortOK = (Direction_Of_Trade == "Short") or (Direction_Of_Trade == "Both") ///////////////////////////////////////////////////////////ENTRIES&EXITS/////////////////////////////////////////////////////////////// longCondition = ta.crossover(fastEMA, slowEMA) and longOK if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = ta.crossunder(fastEMA, slowEMA) and shortOK if (shortCondition) strategy.entry("Sell", strategy.short) if (strategy.position_size > 0 and shortCondition) strategy.exit(id="exit Buy", stop=close) if (strategy.position_size < 0 and longCondition) strategy.exit(id="exit Sell", stop=close) /////////////////////////////////////////////////////TAKE PROFIT CONDITIONS//////////////////////////////////////////////////////// if ta.crossunder(fastEMA, emabuyExit) and Entry_Ratio > 0.08333 strategy.close("Buy",comment = "Exit") if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.016666 strategy.close("Sell",comment = "Exit") if Entry_Ratio > 0.4166666 //0.4166666 strategy.close("Buy",comment = "Exit", qty_percent = 100) if Entry_Ratio > 0.0833333//0.0833333 strategy.close("Sell",comment = "Exit")//50 if Entry_Ratio > 0.1111111//4000 strategy.close("Sell",comment = "Exit", qty_percent = 50) if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.278 //Percentage strategy.close("Sell",comment = "Exit") ////////////////////////////////////////////STOP LOSS AS PERCENTAGE OF ENTRY CONDITIONS/////////////////////////////////////////// if Entry_Ratio < -0.05555555555 strategy.close("Buy",comment = "Exit") if Entry_Ratio < -0.027777777777 strategy.close("Sell",comment = "Exit")// The Sell Stoloss is half the buying stoploss.