Chiến lược này là một cách tiếp cận dựa trên động lực sử dụng chỉ số chỉ số sức mạnh tương đối (RSI) kết hợp với mức lợi nhuận (TP) và dừng lỗ (SL). Ý tưởng chính đằng sau chiến lược là nắm bắt các điều kiện thị trường mua quá mức và bán quá mức bằng cách sử dụng chỉ số RSI, đồng thời xem xét vị trí của giá đóng cửa hàng ngày tương đối với giá cao nhất và thấp nhất trong quá khứ gần đây. Một khi các mức TP hoặc SL được xác định trước đã đạt được, chiến lược sẽ tự động đóng vị trí.
Chiến lược này cung cấp một khuôn khổ giao dịch dựa trên chỉ số động lực RSI trong khi kết hợp chức năng lấy lợi nhuận và dừng lỗ thủ công, cho phép các nhà giao dịch quản lý các vị trí của họ theo sở thích rủi ro và triển vọng thị trường của họ. Tuy nhiên, hiệu suất của chiến lược phần lớn phụ thuộc vào lựa chọn tham số và điều kiện thị trường. Do đó, các nhà giao dịch nên thận trọng khi sử dụng chiến lược này, thực hiện kiểm tra và tối ưu hóa kỹ lưỡng và kết hợp nó với các hình thức phân tích và kỹ thuật quản lý rủi ro khác để đạt được kết quả giao dịch mạnh mẽ hơn.
//@version=5 strategy("RSI Strategy with Manual TP and SL", overlay=true) // Strategy Parameters length = input(14, title="RSI Length") overSold = input(30, title="Oversold Level") overBought = input(70, title="Overbought Level") trail_profit_pct = input.float(20, title="Trailing Profit (%)") // RSI Calculation vrsi = ta.rsi(close, length) // Entry Conditions for Long Position rsi_crossed_below_30 = vrsi > overSold and ta.sma(vrsi, 2) <= overSold // RSI crossed above 30 daily_close_above_threshold = close > (ta.highest(close, 50) * 0.7) // Daily close above 70% of the highest close in the last 50 bars // Entry Conditions for Short Position rsi_crossed_above_70 = vrsi < overBought and ta.sma(vrsi, 2) >= overBought // RSI crossed below 70 daily_close_below_threshold = close < (ta.lowest(close, 50) * 1.3) // Daily close below 130% of the lowest close in the last 50 bars // Entry Signals if (rsi_crossed_below_30 and daily_close_above_threshold) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (rsi_crossed_above_70 and daily_close_below_threshold) strategy.entry("RsiSE", strategy.short, comment="RsiSE") // Manual Take Profit and Stop Loss tp_percentage = input.float(1, title="Take Profit (%)") sl_percentage = input.float(1, title="Stop Loss (%)") long_tp = strategy.position_avg_price * (1 + tp_percentage / 100) long_sl = strategy.position_avg_price * (1 - sl_percentage / 100) short_tp = strategy.position_avg_price * (1 - tp_percentage / 100) short_sl = strategy.position_avg_price * (1 + sl_percentage / 100) strategy.exit("TP/SL Long", "RsiLE", limit=long_tp, stop=long_sl) strategy.exit("TP/SL Short", "RsiSE", limit=short_tp, stop=short_sl)