Strategi ini menggabungkan alat analisis teknis seperti Moving Averages (MA), Relative Strength Index (RSI), dan Average True Range (ATR) untuk menangkap peluang tren di pasar.
Inti dari strategi ini adalah menggunakan persilangan dua rata-rata bergerak dengan periode yang berbeda (cepat dan lambat) untuk mengidentifikasi tren pasar. Ketika MA cepat melintasi di atas MA lambat, itu menunjukkan tren naik, dan strategi akan menghasilkan sinyal panjang. Sebaliknya, ketika MA cepat melintasi di bawah MA lambat, itu menunjukkan tren menurun, dan strategi akan menghasilkan sinyal pendek.
Untuk meningkatkan keandalan sinyal perdagangan, strategi memperkenalkan indikator RSI sebagai filter momentum. Posisi panjang hanya diizinkan ketika RSI berada di atas ambang batas tertentu (misalnya, 50), dan posisi pendek hanya diizinkan ketika RSI berada di bawah ambang batas itu. Ini membantu menghindari perdagangan selama pasar sampingan atau ketika momentum kurang, sehingga meningkatkan kualitas sinyal.
Selain itu, strategi menggunakan ATR sebagai dasar untuk stop-loss, secara dinamis menyesuaikan tingkat stop-loss sesuai dengan volatilitas harga selama periode terakhir. Pendekatan stop-loss adaptif ini memungkinkan untuk berhenti cepat selama tren yang tidak jelas untuk mengendalikan penarikan, sementara memberikan lebih banyak ruang untuk keuntungan selama tren yang kuat untuk meningkatkan pengembalian strategi.
Strategi ini secara efektif menggabungkan mengikuti tren dan penyaringan momentum untuk menangkap peluang tren di pasar sambil mengelola risiko. Logika strategi jelas dan mudah diimplementasikan dan dioptimalkan. Namun, dalam penerapan praktis, perhatian harus diberikan pada risiko whipsaw dan risiko parameter. Strategi harus disesuaikan dan dioptimalkan secara fleksibel berdasarkan karakteristik pasar dan kebutuhan individu. Secara keseluruhan, ini adalah strategi yang seimbang yang mempertimbangkan penangkapan tren dan pengendalian risiko, layak untuk eksplorasi dan praktik lebih lanjut.
/*backtest start: 2023-05-28 00:00:00 end: 2024-06-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Trend-Following Strategy with MACD and RSI Filter", overlay=true) // Input variables fastLength = input(12, title="Fast MA Length") slowLength = input(26, title="Slow MA Length") signalLength = input(9, title="Signal Line Length") stopLossPct = input(1.0, title="Stop Loss %") / 100 rsiLength = input(14, title="RSI Length") rsiThreshold = input(50, title="RSI Threshold") // Moving averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // MACD [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength) // RSI rsi = ta.rsi(close, rsiLength) // Entry conditions with RSI filter bullishSignal = ta.crossover(macdLine, signalLine) and rsi > rsiThreshold bearishSignal = ta.crossunder(macdLine, signalLine) and rsi < rsiThreshold // Calculate stop loss levels longStopLoss = ta.highest(close, 10)[1] * (1 - stopLossPct) shortStopLoss = ta.lowest(close, 10)[1] * (1 + stopLossPct) // Execute trades strategy.entry("Long", strategy.long, when=bullishSignal) strategy.entry("Short", strategy.short, when=bearishSignal) strategy.exit("Exit Long", "Long", stop=longStopLoss) strategy.exit("Exit Short", "Short", stop=shortStopLoss) // Plotting signals plotshape(bullishSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Bullish Signal") plotshape(bearishSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Bearish Signal") // Plot MACD plot(macdLine, color=color.blue, title="MACD Line") plot(signalLine, color=color.orange, title="Signal Line") // Plot RSI hline(rsiThreshold, "RSI Threshold", color=color.gray) plot(rsi, color=color.purple, title="RSI")