
Chiến lược này là một chiến lược động lực dựa trên chỉ số tương đối mạnh yếu ((RSI), kết hợp với chức năng thiết lập dừng ((TP) và dừng ((SL) bằng tay. Ý tưởng chính của chiến lược là để nắm bắt tình trạng quá mua và quá bán của thị trường thông qua chỉ số RSI, đồng thời xem xét vị trí của giá đóng cửa hàng ngày so với giá cao nhất và giá thấp nhất gần đây, để đánh giá thời gian vào.
Chiến lược này cung cấp một khung giao dịch dựa trên chỉ số động lực RSI, đồng thời giới thiệu tính năng dừng lỗ bằng tay, cho phép các nhà giao dịch quản lý vị trí dựa trên sở thích rủi ro và quan điểm của thị trường. Tuy nhiên, hiệu suất của chiến lược phụ thuộc rất nhiều vào sự lựa chọn các tham số và tình hình 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, kiểm tra và tối ưu hóa đầy đủ và kết hợp với các hình thức phân tích và kỹ thuật quản lý rủi ro khác để có được hiệu suất giao dịch ổn định 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)