Trend Mengikuti Strategi Berdasarkan EMA dan MACD merentasi Tempoh

Penulis:ChaoZhang, Tarikh: 2024-01-05 11:16:17
Tag:

img

Ringkasan

Strategi ini menggabungkan garis EMA dan penunjuk MACD merentasi jangka masa untuk mengenal pasti isyarat trend dan menangkap trend jangka menengah hingga panjang. Ia mengambil tindakan mengikut trend apabila trend jangka pendek sejajar dengan trend jangka menengah hingga panjang. Sementara itu, strategi menggunakan penunjuk ATR untuk menetapkan stop loss dan mengambil keuntungan untuk mengawal risiko dari turun naik.

Prinsip-prinsip

Strategi ini menggunakan EMA 50 hari dan EMA 100 hari untuk menentukan arah trend jangka pertengahan hingga panjang. Apabila trend jangka pendek dikenal pasti oleh penunjuk MACD, ia memeriksa sama ada arah sejajar. Jika ya, ia mengambil tindakan trend berikut.

Secara khusus, apabila garis cepat MACD melintasi di atas garis perlahan, dan menutup > EMA 50 hari dan menutup > EMA 100 hari, ia akan menjadi panjang. Apabila garis cepat MACD melintasi di bawah garis perlahan, dan menutup < EMA 50 hari dan menutup < EMA 100 hari, ia akan menjadi pendek.

Juga, strategi menggunakan penunjuk ATR untuk mengira julat turun naik dan menetapkan harga stop loss dan mengambil keuntungan. Ia menetapkan pengganda tertentu ATR berdasarkan harga penutupan sebagai tahap stop loss, dan pengganda tertentu ATR berdasarkan harga penutupan sebagai tahap mengambil keuntungan.

Analisis Kelebihan

  1. Menggabungkan garis EMA dan penunjuk MACD merentasi bingkai masa membantu mengenal pasti isyarat trend dan mengelakkan kehilangan trend jangka menengah hingga panjang

  2. Menggunakan penunjuk ATR untuk menetapkan stop loss dan mengambil keuntungan berdasarkan turun naik pasaran secara berkesan mengawal risiko

  3. Mengelakkan zon neutral pasaran mengelakkan kerugian yang tidak perlu

Analisis Risiko

  1. Garis EMA mempunyai kesan kelewatan dan mungkin terlepas titik perubahan

  2. Indikator MACD mempunyai pelbagai bingkai masa dan tetapan parameter yang memberi kesan kepada keputusan

  3. Julat ATR tidak dapat mewakili sepenuhnya turun naik harga masa depan, tidak dapat menghilangkan risiko

Tindakan balas:

  1. Meneguhkan isyarat dengan penunjuk lain untuk mengelakkan isu-isu yang ketinggalan EMA

  2. Sesuaikan parameter MACD dan optimumkan hasil

  3. Pengganda ATR ditetapkan dengan munasabah untuk mengawal kerugian maksimum

Arahan pengoptimuman

  1. Uji gabungan yang berbeza dari tempoh garis EMA

  2. Mengoptimumkan tetapan parameter MACD

  3. Menggunakan kaedah pembelajaran mesin untuk mencari secara automatik pengganda stop loss/take profit ATR yang optimum

Ringkasan

Strategi ini menggabungkan penunjuk EMA, MACD dan ATR untuk melaksanakan trend mengikuti operasi merentasi bingkai masa. Melalui pengoptimuman parameter, ia mempunyai potensi untuk mencapai kadar pulangan strategi yang baik. Juga perlu mencegah risiko termasuk ketinggalan indikator, pelarasan parameter yang tidak betul dan kawalan turun naik, dan terus mengoptimumkan dan meningkatkan.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA-50, EMA-100, and MACD Strategy with ATR for Stop Loss/Profit", overlay=true)

// MACD hesaplama
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)

// EMA-50 ve EMA-100 hesaplama
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)

// ATR hesaplama
atrLength = input(14, title="ATR Length")
atrValue = ta.atr(atrLength)

// Take Profit ve Stop Loss çoklayıcıları
takeProfitMultiplier = input(3.0, title="Take Profit Multiplier") // TP, 3 katı ATR
stopLossMultiplier = input(1.0, title="Stop Loss Multiplier")

// Long Pozisyon Koşulları
longCondition = ta.crossover(macdLine, signalLine) and close > ema50 and close > ema100

// Short Pozisyon Koşulları
shortCondition = ta.crossunder(macdLine, signalLine) and close < ema50 and close < ema100

// Take Profit ve Stop Loss Seviyeleri
takeProfitLevel = close + takeProfitMultiplier * atrValue
stopLossLevel = close - stopLossMultiplier * atrValue

// Long Pozisyon İşlemleri
strategy.entry("Long", strategy.long, when=longCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel)

// Short Pozisyon İşlemleri
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)

// Grafikte Gösterme
plot(ema50, color=color.blue, title="EMA-50")
plot(ema100, color=color.red, title="EMA-100")
hline(0, "Zero Line", color=color.gray)


Lebih lanjut