Chiến lược này kết hợp các công cụ phân tích kỹ thuật như Moving Averages (MA), Relative Strength Index (RSI) và Average True Range (ATR) để nắm bắt các cơ hội xu hướng trên thị trường. Chiến lược này sử dụng hai đường chéo trung bình động để xác định hướng xu hướng và sử dụng chỉ số RSI để lọc động lực của các tín hiệu giao dịch. Nó cũng sử dụng ATR làm cơ sở để dừng lỗ để quản lý rủi ro.
Cốt lõi của chiến lược này là sử dụng sự chéo chéo của hai đường trung bình động với các giai đoạn khác nhau (nhanh và chậm) để xác định xu hướng thị trường. Khi MA nhanh vượt trên MA chậm, nó cho thấy xu hướng tăng, và chiến lược sẽ tạo ra một tín hiệu dài. Ngược lại, khi MA nhanh vượt dưới MA chậm, nó cho thấy xu hướng giảm, và chiến lược sẽ tạo ra một tín hiệu ngắn.
Để cải thiện độ tin cậy của các tín hiệu giao dịch, chiến lược giới thiệu chỉ số RSI như một bộ lọc động lực. Các vị trí dài chỉ được phép khi RSI vượt quá ngưỡng nhất định (ví dụ: 50), và các vị trí ngắn chỉ được phép khi RSI dưới ngưỡng đó. Điều này giúp tránh giao dịch trong các thị trường bên cạnh hoặc khi động lực thiếu, do đó cải thiện chất lượng tín hiệu.
Hơn nữa, chiến lược sử dụng ATR làm cơ sở cho việc dừng lỗ, điều chỉnh động mức dừng lỗ theo sự biến động giá trong thời gian gần đây. Cách tiếp cận dừng lỗ thích ứng này cho phép dừng nhanh trong các xu hướng không rõ ràng để kiểm soát rút tiền, trong khi cung cấp nhiều không gian hơn cho lợi nhuận trong các xu hướng mạnh để tăng lợi nhuận chiến lược.
Chiến lược này kết hợp hiệu quả việc theo dõi xu hướng và lọc đà để nắm bắt các cơ hội xu hướng trên thị trường trong khi quản lý rủi ro. Lý thuyết chiến lược rõ ràng và dễ thực hiện và tối ưu hóa. Tuy nhiên, trong ứng dụng thực tế, nên chú ý đến rủi ro và rủi ro tham số. Chiến lược nên được điều chỉnh và tối ưu hóa linh hoạt dựa trên đặc điểm thị trường và nhu cầu cá nhân. Nhìn chung, đây là một chiến lược cân bằng xem xét cả việc nắm bắt xu hướng và kiểm soát rủi ro, xứng đáng với việc khám phá và thực hành thêm.
/*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")