Strategi Crossover Dual-EMA untuk Pelacakan Momentum

Penulis:ChaoZhang, Tanggal: 2024-02-26 16:40:29
Tag:

img

Gambaran umum

Strategi ini adalah strategi perdagangan algoritmik yang mengikuti tren. Ini menghitung dua garis EMA dengan parameter yang berbeda dan menghasilkan sinyal perdagangan ketika Golden Cross dan Death Cross terjadi antara dua EMA. Strategi ini juga menggabungkan beberapa garis EMA untuk keluar keuntungan dan menetapkan titik stop loss untuk mengendalikan risiko.

Prinsip Strategi

Strategi ini menggunakan 4 garis EMA, termasuk EMA cepat dan EMA lambat, yang silangannya digunakan untuk menghasilkan sinyal beli dan jual.

Secara khusus, ketika EMA cepat melintasi di atas EMA lambat, sinyal beli dihasilkan. Ketika EMA cepat melintasi di bawah EMA lambat, sinyal jual dihasilkan. Ini adalah strategi crossover dual-EMA yang khas. Untuk melacak tren dengan lebih baik dan meningkatkan profitabilitas, setelah memasuki posisi, strategi akan secara selektif keluar sebagian atau seluruh posisi ketika EMA cepat melintasi di atas garis EMA kedua atau ketika EMA cepat melintasi di bawah garis EMA ketiga.

Selain itu, strategi menetapkan titik stop loss panjang dan pendek untuk mencegah kerugian yang berlebihan. khususnya, stop loss untuk posisi panjang ditetapkan pada 6% dari harga masuk, dan 3% untuk posisi pendek.

Analisis Keuntungan

Dibandingkan dengan strategi crossover dual-EMA yang khas, keuntungan utama dari strategi ini meliputi:

  1. Menetapkan beberapa garis EMA untuk keluar keuntungan dapat lebih mengunci keuntungan dan mencegah penyusutan keuntungan selama penarikan berikutnya.

  2. Posisi pendek memiliki stop loss yang lebih kecil, yang dapat menahan fluktuasi pasar normal yang lebih besar dan mencegah stop loss yang sering.

  3. Menetapkan garis EMA dengan parameter yang berbeda untuk keluar keuntungan memungkinkan memilih titik keluar optimal berdasarkan kondisi pasar.

  4. Strategi keseluruhan memiliki kemampuan mengikuti tren yang baik untuk menangkap keuntungan yang lebih besar dari tren jangka menengah hingga panjang.

Analisis Risiko

Risiko utama dari strategi ini meliputi:

  1. Di pasar yang terikat rentang, sinyal perdagangan yang dihasilkan oleh garis EMA sering terjadi, yang dapat menyebabkan over-trading.

  2. Stop loss pendek hanya dapat mencegah kondisi pasar yang ekstrem dan tidak dapat mencegah penarikan yang signifikan dalam akun strategi.

  3. Risiko penarikan masih ada. keuntungan dapat menyusut secara signifikan ketika penyesuaian jangka panjang terjadi.

  4. Strategi ini sensitif terhadap pengaturan parameter. Konfigurasi yang tidak benar dapat menyebabkan kegagalan strategi.

Optimalisasi

Mengingat risiko di atas, strategi dapat dioptimalkan dalam aspek berikut:

  1. Meningkatkan algoritma pembelajaran mesin untuk membantu penilaian tren dan mengurangi kemungkinan perdagangan yang salah.

  2. Meningkatkan mekanisme stop loss adaptif untuk menyesuaikan stop loss secara dinamis berdasarkan volatilitas pasar.

  3. Atur pemanfaatan modal untuk menghindari pekerjaan modal yang berlebihan dan meningkatkan mekanisme manajemen posisi.

  4. Pilih produk perdagangan dengan tren yang jelas dan fluktuasi tinggi.

  5. Tingkatkan modul optimasi parameter untuk mencapai optimasi otomatis dan pembaruan parameter.

Kesimpulan

Secara keseluruhan, strategi crossover dual-EMA adalah strategi trend-following yang hemat biaya. Ini memiliki keuntungan seperti beberapa garis EMA untuk mengambil keuntungan, short stop kecil, dan kemampuan trend-following yang baik. Namun, masih ada beberapa risiko dengan strategi ini. Ini membutuhkan optimasi penyesuaian parameter lebih lanjut dan penggabungan algoritma pembelajaran mesin untuk meningkatkan stabilitas. Secara umum, strategi ini cocok untuk investor dengan beberapa pengalaman perdagangan untuk melakukan 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.



Lebih banyak