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.
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.
Menggabungkan garis EMA dan penunjuk MACD merentasi bingkai masa membantu mengenal pasti isyarat trend dan mengelakkan kehilangan trend jangka menengah hingga panjang
Menggunakan penunjuk ATR untuk menetapkan stop loss dan mengambil keuntungan berdasarkan turun naik pasaran secara berkesan mengawal risiko
Mengelakkan zon neutral pasaran mengelakkan kerugian yang tidak perlu
Garis EMA mempunyai kesan kelewatan dan mungkin terlepas titik perubahan
Indikator MACD mempunyai pelbagai bingkai masa dan tetapan parameter yang memberi kesan kepada keputusan
Julat ATR tidak dapat mewakili sepenuhnya turun naik harga masa depan, tidak dapat menghilangkan risiko
Tindakan balas:
Meneguhkan isyarat dengan penunjuk lain untuk mengelakkan isu-isu yang ketinggalan EMA
Sesuaikan parameter MACD dan optimumkan hasil
Pengganda ATR ditetapkan dengan munasabah untuk mengawal kerugian maksimum
Uji gabungan yang berbeza dari tempoh garis EMA
Mengoptimumkan tetapan parameter MACD
Menggunakan kaedah pembelajaran mesin untuk mencari secara automatik pengganda stop loss/take profit ATR yang optimum
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)