
Strategi ini menggunakan EMA Average and MACD indicator untuk mengidentifikasi sinyal tren dalam beberapa frame waktu untuk menangkap tren garis tengah dan panjang. Strategi ini juga menggunakan ATR indicator untuk mengatur stop loss stop loss dan mengendalikan risiko volatilitas.
Strategi menilai arah tren jangka panjang dan menengah dengan garis EMA 50 hari dan garis EMA 100 hari. Ketika tren jangka pendek diidentifikasi oleh indikator MACD, menilai apakah arah tren jangka pendek konsisten dengan arah tren jangka panjang dan menengah. Jika konsisten, lakukan operasi pelacakan tren.
Secara khusus, ketika MACD melewati jalur lambat di jalur cepat dan menutup > 50 hari EMA dan menutup > 100 hari EMA, lakukan lebih banyak; ketika MACD melewati jalur lambat di jalur cepat dan menutup < 50 hari EMA dan menutup < 100 hari EMA, lakukan kosong.
Selain itu, strategi menggunakan indikator ATR untuk menghitung rentang fluktuasi, dan menetapkan harga stop loss. Dengan ATR beberapa kali lipat dari harga tutup sebagai stop loss, dengan ATR beberapa kali lipat dari harga tutup sebagai stop loss.
Tanggapan:
Strategi ini memanfaatkan indikator seperti EMA, MACD dan ATR untuk melakukan operasi pelacakan tren dalam kerangka waktu yang lebih banyak. Dengan pengoptimalan parameter, diharapkan untuk mendapatkan tingkat keuntungan strategi yang lebih baik. Selain itu, perlu juga mencegah risiko seperti keterlambatan indikator, penyesuaian parameter dan kontrol fluktuasi yang tidak tepat, perlu terus dioptimalkan dan ditingkatkan.
/*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)