Multi-EMA Crossover Trend Following Strategy menggabungkan beberapa garis EMA dengan parameter yang berbeda untuk mengidentifikasi arah tren berdasarkan sinyal crossover, yang bertujuan untuk mengikuti tren di pasar.
Logika inti dari strategi ini didasarkan pada prinsip silang garis EMA. Di antara EMA, EMA jangka pendek lebih sensitif terhadap perubahan harga baru-baru ini dan dapat mencerminkan tren jangka pendek, sementara EMA jangka panjang kurang sensitif dan mewakili tren jangka panjang. Ketika EMA jangka pendek melintasi di atas EMA jangka panjang dari bawah, sebuah
Strategi ini memantau 7 kelompok EMA crossover secara bersamaan, termasuk 12&26, 12&50, 12&100, 12&200, 12&89 dan 12&144 periode. Misalnya, ketika EMA 12 hari melintasi di atas EMA 26 hari, strategi akan membuka posisi panjang. Ini akan menutup posisi panjang ketika crossing kematian terjadi. Logika yang sama berlaku untuk pasangan EMA lainnya.
Keuntungan terbesar dari strategi ini adalah kemampuan untuk menangkap tren di beberapa kerangka waktu. Dengan menggabungkan beberapa EMA, ia dapat mengidentifikasi tren jangka pendek dan jangka panjang, mewujudkan tren multi-kerangka waktu berikut. Selain itu, kinerja strategi dapat dioptimalkan dengan menyesuaikan parameter EMA.
Risiko utama dari strategi ini adalah sinyal crossover yang terlalu sering ketika menggunakan beberapa EMA bersama-sama. Misalnya, crossover antara EMA 12 hari dan 26 hari terjadi lebih sering daripada antara garis 12 hari dan 200 hari. Masuk dan keluar yang sering dapat meningkatkan biaya perdagangan dan slippage. Juga, EMA memiliki sifat tertinggal, yang dapat menyebabkan sinyal perdagangan yang tidak tepat waktu.
Untuk mengurangi risiko, periode EMA dapat dioptimalkan untuk mengontrol frekuensi crossover pada tingkat yang tepat.
Ruang pengoptimalan utama terletak pada penyesuaian parameter EMA, seperti bereksperimen dengan lebih banyak kombinasi periode atau mencoba rata-rata bergerak lainnya seperti SMA. Filter tambahan juga dapat ditambahkan untuk meningkatkan kualitas sinyal, misalnya, indikator volume atau volatilitas. Selain itu, strategi stop loss dapat digunakan untuk mengurangi dampak turbulensi pasar.
Multi-EMA Crossover Trend Following Strategy mengidentifikasi arah tren dengan membandingkan situasi crossover di antara beberapa EMA, menangkap tren di seluruh kerangka waktu. Keuntungannya adalah fleksibilitas untuk menyesuaikan parameter dan menangkap tren di tingkat yang berbeda. Kekurangannya adalah sinyal yang berpotensi terlalu sering dan peningkatan biaya perdagangan. Peningkatan lebih lanjut dapat dicapai melalui optimasi parameter dan menambahkan kondisi 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")