Strategi ini menggabungkan alat analisis teknikal seperti Moving Averages (MA), Relative Strength Index (RSI), dan Average True Range (ATR) untuk menangkap peluang trend di pasaran. Strategi ini menggunakan crossover purata bergerak berganda untuk menentukan arah trend dan menggunakan penunjuk RSI untuk penapisan momentum isyarat perdagangan. Ia juga menggunakan ATR sebagai asas untuk stop-loss untuk menguruskan risiko.
Inti strategi ini adalah menggunakan persilangan dua purata bergerak dengan tempoh yang berbeza (cepat dan perlahan) untuk mengenal pasti trend pasaran. Apabila MA pantas melintasi di atas MA perlahan, ia menunjukkan aliran naik, dan strategi akan menghasilkan isyarat panjang. Sebaliknya, apabila MA pantas melintasi di bawah MA perlahan, ia menunjukkan trend menurun, dan strategi akan menghasilkan isyarat pendek.
Untuk meningkatkan kebolehpercayaan isyarat perdagangan, strategi memperkenalkan penunjuk RSI sebagai penapis momentum. Posisi panjang hanya dibenarkan apabila RSI melebihi ambang tertentu (contohnya, 50), dan kedudukan pendek hanya dibenarkan apabila RSI di bawah ambang itu. Ini membantu mengelakkan perdagangan semasa pasaran sampingan atau apabila momentum kurang, dengan itu meningkatkan kualiti isyarat.
Tambahan pula, strategi menggunakan ATR sebagai asas untuk stop-loss, secara dinamik menyesuaikan tahap stop-loss mengikut turun naik harga dalam tempoh baru-baru ini. Pendekatan stop-loss adaptif ini membolehkan berhenti cepat semasa trend yang tidak jelas untuk mengawal penarikan, sementara menyediakan lebih banyak ruang untuk keuntungan semasa trend yang kuat untuk meningkatkan pulangan strategi.
Strategi ini secara berkesan menggabungkan trend-mengikuti dan penapisan momentum untuk menangkap peluang trend di pasaran sambil menguruskan risiko. Logik strategi jelas dan mudah dilaksanakan dan dioptimumkan. Walau bagaimanapun, dalam aplikasi praktikal, perhatian harus diberikan kepada risiko whipsaw dan risiko parameter. Strategi harus disesuaikan dan dioptimumkan secara fleksibel berdasarkan ciri pasaran dan keperluan individu. Secara keseluruhan, ini adalah strategi seimbang yang mempertimbangkan kedua-dua penangkapan trend dan kawalan risiko, layak untuk penerokaan dan amalan 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")