
Strategi ini adalah strategi perdagangan algoritma trend-following, yang menghasilkan isyarat perdagangan dengan mengira EMA rata-rata dua parameter yang berbeza, dan mengeluarkan isyarat perdagangan apabila golden cross ((Golden Fork) dan death cross ((Death Fork) berlaku. Strategi ini menggabungkan beberapa EMA rata-rata untuk keluar dengan untung pada masa yang sama, dan menetapkan titik berhenti untuk mengawal risiko.
Strategi ini menggunakan 4 EMA, termasuk satu set EMA pantas dan EMA perlahan, yang bersilang untuk menghasilkan isyarat beli dan jual. Selain itu, strategi ini juga menggunakan dua EMA sederhana antara parameter EMA pantas dan EMA perlahan untuk keluar dari kedudukan awal atau sepenuhnya dan mengunci keuntungan.
Khususnya, apabila EMA cepat melintasi EMA perlahan, ia menghasilkan isyarat beli; apabila EMA cepat melintasi EMA perlahan, ia menghasilkan isyarat jual. Ini adalah strategi silang purata bergerak EMA ganda yang tipikal.
Selain itu, strategi ini juga menetapkan dua titik berhenti untuk garis panjang dan garis pendek untuk mencegah kerugian berkembang. Secara khusus, stop loss single set adalah 6% dari harga masuk, dan stop loss single set adalah 3% dari harga masuk.
Kelebihan utama strategi ini berbanding strategi penyambungan purata bergerak EMA berganda yang tipikal ialah:
Menetapkan beberapa EMA rata-rata untuk keluar keuntungan, anda boleh mengunci keuntungan dengan lebih baik dan mencegah keuntungan menyusut dalam penyesuaian seterusnya.
Kedudukan kosong mempunyai markah hentian yang lebih kecil, yang dapat menanggung kejatuhan normal yang lebih besar, untuk mengelakkan hentian yang kerap.
Tetapkan parameter EMA rata-rata yang berbeza untuk keluar menguntungkan, dan anda boleh memilih titik keluar yang optimum mengikut keadaan pasaran.
Strategi keseluruhan mempunyai keupayaan untuk menjejaki trend yang lebih baik, dan dapat menangkap lebih banyak keuntungan daripada trend garis tengah dan panjang.
Antara risiko utama strategi ini ialah:
Dalam keadaan yang tidak menentu, isyarat perdagangan yang dihasilkan oleh EMA rata-rata adalah kerap dan mudah menyebabkan perdagangan berlebihan.
Hentian garis pendek hanya boleh menghalang keadaan yang melampau dan tidak boleh menghalang penarikan balik akaun strategi secara besar-besaran.
Risiko penarikan balik strategi ini masih wujud, dan pendapatan mungkin akan berkurangan dengan ketara apabila menghadapi keadaan penyesuaian jangka panjang.
Kaedah ini sensitif terhadap perubahan parameter, dan konfigurasi yang tidak betul boleh menyebabkan ia tidak berfungsi.
Mengambil kira risiko yang disebutkan di atas, strategi ini boleh dioptimumkan dalam beberapa aspek:
Menambah algoritma pembelajaran mesin untuk membantu menilai trend dan mengurangkan kemungkinan perdagangan yang salah.
Menambah mekanisme penangguhan kerugian yang dapat disesuaikan secara dinamik mengikut turun naik pasaran.
Tetapkan penggunaan dana, mengelakkan akaun strategi mengambil terlalu banyak dana, dan tambah mekanisme pengurusan kedudukan.
Pemindaian jenis dagangan, memilih trend yang jelas, perdagangan yang lebih besar turun naik.
Tambah modul pengoptimuman parameter untuk mengoptimumkan dan mengemas kini parameter secara automatik.
Strategi persilangan rata-rata bergerak EMA ganda secara keseluruhan adalah strategi pemantauan trend yang lebih kos. Ia mempunyai kelebihan seperti menetapkan beberapa rata-rata EMA untuk keluar dari keuntungan, hentian kecil, dan kemampuan pemantauan trend yang kuat. Tetapi strategi ini juga mempunyai risiko tertentu, memerlukan penyesuaian parameter untuk dioptimumkan, dan membantu meningkatkan lagi kestabilan strategi dengan algoritma pembelajaran mesin dan sebagainya.
/*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.