Chiến lược này xây dựng một hệ thống giao dịch bằng cách sử dụng chỉ số RSI để xác định mức mua quá mức và bán quá mức, cùng với lệnh dừng lỗ và mục tiêu thoát lợi nhuận động. Nó đi ngắn khi RSI vượt quá mức mua quá mức và đi dài khi RSI vượt quá mức bán quá mức.
RSI là một chỉ số giá trị của thị trường. RSI là một chỉ số giá trị của thị trường. RSI là chỉ số giá trị của thị trường. RSI là chỉ số giá trị của thị trường. RSI là chỉ số giá trị của thị trường.
Ngoài ra, chiến lược này sử dụng cơ chế dừng lỗ theo dõi động. Khi giữ vị trí dài, giá dừng theo dõi được đặt ở mức 97% giá đóng. Khi giữ vị trí ngắn, giá dừng theo dõi là 103% giá đóng. Điều này khóa hầu hết lợi nhuận trong khi tránh bị dừng bởi tiếng ồn thị trường.
Cuối cùng, chiến lược này sử dụng mục tiêu thoát lợi nhuận. Khi lợi nhuận vị trí đạt 20%, nó sẽ được đóng. Điều này khóa một số lợi nhuận và tránh thu hồi lợi nhuận.
Những lợi thế của chiến lược này bao gồm:
Một số rủi ro của chiến lược này cần lưu ý:
Để đối phó với những rủi ro này, tối ưu hóa các thông số RSI, điều chỉnh tỷ lệ dừng lỗ, nới lỏng các yêu cầu mục tiêu lợi nhuận một cách hợp lý có thể giúp.
Một số hướng để tối ưu hóa chiến lược:
Chiến lược này có logic rõ ràng sử dụng chỉ số RSI để xác định thị trường mua quá mức / bán quá mức, với các điểm dừng năng động và lấy lợi nhuận.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Modified RSI-Based Trading Strategy", overlay=true) // RSI settings rsiLength = input(14, title="RSI Length") overboughtLevel = 70 oversoldLevel = 30 // User-defined parameters trailingStopPercentage = input(3, title="Trailing Stop Percentage (%)") profitTargetPercentage = input(20, title="Profit Target Percentage (%)") rsiValue = ta.rsi(close, rsiLength) var float trailingStopLevel = na var float profitTargetLevel = na // Entry criteria enterLong = ta.crossover(rsiValue, oversoldLevel) enterShort = ta.crossunder(rsiValue, overboughtLevel) // Exit criteria exitLong = ta.crossover(rsiValue, overboughtLevel) exitShort = ta.crossunder(rsiValue, oversoldLevel) // Trailing stop calculation if (strategy.position_size > 0) trailingStopLevel := close * (1 - trailingStopPercentage / 100) if (strategy.position_size < 0) trailingStopLevel := close * (1 + trailingStopPercentage / 100) // Execute the strategy if (enterLong) strategy.entry("Buy", strategy.long) if (exitLong or ta.crossover(close, trailingStopLevel) or ta.change(close) > profitTargetPercentage / 100) strategy.close("Buy") if (enterShort) strategy.entry("Sell", strategy.short) if (exitShort or ta.crossunder(close, trailingStopLevel) or ta.change(close) < -profitTargetPercentage / 100) strategy.close("Sell") // Plot RSI and overbought/oversold levels plot(rsiValue, title="RSI", color=color.blue) hline(overboughtLevel, "Overbought", color=color.red, linestyle=hline.style_dashed) hline(oversoldLevel, "Oversold", color=color.green, linestyle=hline.style_dashed)