Strategy Crossover Dual-EMA Pengesanan Momentum

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

img

Ringkasan

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.

Prinsip Strategi

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.

Analisis Kelebihan

Berbanding dengan strategi silang dua-EMA yang tipikal, kelebihan utama strategi ini termasuk:

  1. Menetapkan pelbagai garis EMA untuk keluar keuntungan dapat mengunci keuntungan dengan lebih baik dan mencegah penyusutan keuntungan semasa penarikan balik berikutnya.

  2. Kedudukan pendek mempunyai stop loss yang lebih kecil, yang dapat menahan turun naik pasaran biasa yang lebih besar dan mengelakkan stop loss yang kerap.

  3. Menetapkan garis EMA dengan parameter yang berbeza untuk keluar keuntungan membolehkan memilih titik keluar yang optimum berdasarkan keadaan pasaran.

  4. Strategi keseluruhan mempunyai keupayaan trend yang baik untuk menangkap keuntungan yang lebih besar dari trend jangka menengah hingga panjang.

Analisis Risiko

Risiko utama strategi ini termasuk:

  1. Dalam pasaran terhad julat, isyarat dagangan yang dihasilkan oleh garis EMA adalah kerap, yang boleh membawa kepada perdagangan berlebihan.

  2. Stop loss pendek hanya dapat mencegah keadaan pasaran yang melampau dan tidak dapat mencegah pengeluaran yang signifikan dalam akaun strategi.

  3. Risiko pengeluaran masih wujud. Keuntungan boleh menyusut dengan ketara apabila penyesuaian jangka panjang berlaku.

  4. Strategi ini sensitif terhadap penyesuaian parameter. Konfigurasi yang tidak betul boleh menyebabkan kegagalan strategi.

Pengoptimuman

Memandangkan risiko di atas, strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Meningkatkan algoritma pembelajaran mesin untuk membantu penilaian trend dan mengurangkan kemungkinan perdagangan yang salah.

  2. Meningkatkan mekanisme stop loss adaptif untuk menyesuaikan stop loss secara dinamik berdasarkan turun naik pasaran.

  3. Tetapkan penggunaan modal untuk mengelakkan pendudukan modal yang berlebihan dan meningkatkan mekanisme pengurusan kedudukan.

  4. Pilih produk dagangan dengan trend yang jelas dan turun naik yang tinggi.

  5. Meningkatkan modul pengoptimuman parameter untuk mencapai pengoptimuman automatik dan kemas kini parameter.

Kesimpulan

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.



Lebih lanjut