Trend Crossover Multi-EMA Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-01-04 16:22:07
Tag:

img

Ringkasan

Multi-EMA Crossover Trend Following Strategy menggabungkan beberapa garis EMA dengan parameter yang berbeza untuk mengenal pasti arah trend berdasarkan isyarat crossover, bertujuan untuk mengikuti trend di pasaran.

Logika Strategi

Logik teras strategi ini adalah berdasarkan prinsip persilangan garis EMA. Di kalangan EMA, EMA jangka pendek lebih sensitif terhadap perubahan harga baru-baru ini dan dapat mencerminkan trend jangka pendek, sementara EMA jangka panjang kurang sensitif dan mewakili trend jangka panjang. Apabila EMA jangka pendek melintasi di atas EMA jangka panjang dari bawah, salib emas terbentuk, yang menunjukkan trend jangka pendek berubah menjadi bullish. salib kematian muncul apabila EMA jangka pendek melintasi di bawah EMA jangka panjang dari atas, menandakan pembalikan trend penurunan.

Strategi ini memantau 7 kumpulan persilangan EMA secara serentak, termasuk 12&26, 12&50, 12&100, 12&200, 12&89 dan 12&144 tempoh. Sebagai contoh, apabila EMA 12 hari melintasi di atas EMA 26 hari, strategi akan membuka kedudukan panjang. Ia akan menutup kedudukan panjang apabila persilangan kematian berlaku. Logik yang sama berlaku untuk pasangan EMA lain.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah keupayaan untuk menangkap trend merentasi pelbagai jangka masa. Dengan menggabungkan beberapa EMA, ia dapat mengenal pasti kedua-dua trend jangka pendek dan jangka panjang, merealisasikan trend berbilang jangka masa. Di samping itu, prestasi strategi boleh dioptimumkan dengan menyesuaikan parameter EMA.

Analisis Risiko

Risiko utama strategi ini adalah isyarat persilangan terlalu kerap apabila menggunakan beberapa EMA bersama-sama. Sebagai contoh, persilangan antara EMA 12 hari dan 26 hari lebih kerap berlaku daripada antara garis 12 hari dan 200 hari. Masuk dan keluar yang kerap boleh meningkatkan kos perdagangan dan slippage. Juga, EMA mempunyai sifat tertinggal, yang boleh menyebabkan isyarat perdagangan yang tidak tepat pada masanya.

Untuk mengurangkan risiko, tempoh EMA boleh dioptimumkan untuk mengawal kekerapan persilangan pada tahap yang betul.

Arahan Penambahbaikan

Ruang pengoptimuman utama terletak pada penyesuaian parameter EMA, seperti bereksperimen dengan lebih banyak kombinasi tempoh atau mencuba purata bergerak lain seperti SMA. Penapis tambahan juga boleh ditambahkan untuk meningkatkan kualiti isyarat, contohnya, volume atau penunjuk turun naik.

Kesimpulan

Multi-EMA Crossover Trend Following Strategy mengenal pasti arah trend dengan membandingkan situasi crossover di antara pelbagai EMA, menangkap trend di seluruh jangka masa. Kelebihannya adalah fleksibiliti untuk mengubah parameter dan menangkap trend pada tahap yang berbeza. Kelemahannya adalah isyarat yang berpotensi terlalu kerap dan peningkatan kos dagangan. Penambahbaikan lanjut dapat dicapai melalui pengoptimuman parameter dan menambah syarat tambahan.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMA Trades", overlay=true, pyramiding=4)

src = input(close, title="Source")

shortestLine = input(12, minval=1, title="Shortest Line")
shorterLine = input(26, minval=1, title="Shorter Line")
shortLine = input(50, minval=1, title="Short Line")
middleLine = input(100, minval=1, title="Middle Line")
longLine = input(200, minval=1, title="Long Line")
longerLine = input(89, minval=1, title="Longer Line")
longestLine = input(144, minval=1, title="Longest Line")

shortestLineOutput = ema(src, shortestLine)
shorterLineOutput = ema(src, shorterLine)
shortLineOutput = ema(src, shortLine)
middleLineOutput = ema(src, middleLine)
longLineOutput = ema(src, longLine)
longerLineOutput = ema(src, longerLine)
longestLineOutput = ema(src, longestLine)

//plot(shortestLineOutput, title="Shortest EMA", color=#ffffff)
//plot(shorterLineOutput, title="Shorter EMA", color=#e54fe6)
//plot(shortLineOutput, title="Short EMA", color=#4e6bc3)
//plot(middleLineOutput, title="Middle EMA", color=#1dd6d8)
//plot(longLineOutput, title="Long EMA", color=#d0de10)
//plot(longerLineOutput, title="Longer EMA", color=#ef6a1a)
//plot(longestLineOutput, title="Longest EMA", color=#ff0e0e)

longEnrtyCondition_1 = crossover(shortestLineOutput[1], shorterLineOutput[1]) and shortestLineOutput > shorterLineOutput
longEntryCondition_2 = crossover(shortestLineOutput[1], shortLineOutput[1]) and shortestLineOutput > shortLineOutput
longEnrtyCondition_3 = crossover(shortestLineOutput[1], middleLineOutput[1]) and shortestLineOutput > middleLineOutput
longEntryCondition_4 = crossover(shortestLineOutput[1], longLineOutput[1]) and shortestLineOutput > longLineOutput

shortEnrtyCondition_1 = crossunder(shortestLineOutput[1], shorterLineOutput[1]) and shortestLineOutput < shorterLineOutput
shortEntryCondition_2 = crossunder(shortestLineOutput[1], shortLineOutput[1]) and shortestLineOutput < shortLineOutput
shortEnrtyCondition_3 = crossunder(shortestLineOutput[1], middleLineOutput[1]) and shortestLineOutput < middleLineOutput
shortEntryCondition_4 = crossunder(shortestLineOutput[1], longLineOutput[1]) and shortestLineOutput < longLineOutput

if (longEnrtyCondition_1)
    strategy.entry("Buy1", strategy.long)
    strategy.exit("Sell1")

if (longEntryCondition_2)
    strategy.entry("Buy2", strategy.long)
    strategy.exit("Sell2")

if (longEnrtyCondition_3)
    strategy.entry("Buy3", strategy.long)
    strategy.exit("Sell3")

if (longEntryCondition_4)
    strategy.entry("Buy4", strategy.long)
    strategy.exit("Sell4")

if (shortEnrtyCondition_1)
    strategy.entry("Sell1", strategy.short)
    strategy.exit("Buy1")

if (shortEntryCondition_2)
    strategy.entry("Sell2", strategy.short)
    strategy.exit("Buy2")

if (shortEnrtyCondition_3)
    strategy.entry("Sell3", strategy.short)
    strategy.exit("Buy3")

if (shortEntryCondition_4)
    strategy.entry("Sell4", strategy.short)
    strategy.exit("Buy4")

Lebih lanjut