
Chiến lược này xác định các cơ hội mua và bán tiềm năng của thị trường bằng cách tính toán chỉ số cường độ tương đối (RSI). Nó sử dụng chỉ số RSI để đánh giá điểm giá có thể biến đổi từ xu hướng sang xu hướng ngược lại để nắm bắt cơ hội đảo ngược.
Chỉ số cốt lõi của chiến lược này là RSI, nó cho thấy tỷ lệ ngày giá đóng cửa tăng so với số ngày giá giảm trong một khoảng thời gian, được sử dụng để xác định xem tài sản có bị đánh giá quá cao hay thấp không. RSI được hiển thị bằng một số từ 0 đến 100, số cao cho thấy thị trường mạnh lên, số thấp cho thấy thị trường mạnh xuống.
Chiến lược này trước tiên đặt các tham số của RSI, bao gồm độ dài chu kỳ (bằng mặc định 14) và mức giảm của khu vực bán tháo (bằng mặc định 70 và 30). Sau đó, tính toán RSI dựa trên giá đóng cửa. Khi RSI vượt qua mức giảm của khu vực bán tháo, tạo ra tín hiệu mua; Khi RSI vượt qua mức giảm của khu vực bán tháo, tạo ra tín hiệu bán.
Chiến lược vẽ đường RSI cùng một lúc với đường giảm giá. Các tín hiệu mua và bán được đánh dấu bằng văn bản và đồ họa trên biểu đồ giá. Ngoài ra, chiến lược tính toán và vẽ phần trăm thay đổi giá kể từ tín hiệu giao dịch trước, cho phép thương nhân nhìn thấy trực quan các biến động giá sau tín hiệu.
Chiến lược này được thiết kế theo nguyên tắc giao dịch đảo ngược của chỉ số cường độ tương đối, chủ yếu đánh giá xem tài sản có xuất hiện hiện tượng mua quá mức hoặc bán quá mức trong thời gian ngắn để nắm bắt cơ hội đảo ngược sau đó hay không. Tính toán tỷ lệ phần trăm thay đổi và kết hợp với gợi ý giao dịch trực quan, có thể hỗ trợ quyết định giao dịch. Các tham số RSI có thể được thiết lập tùy chỉnh, người dùng có thể điều chỉnh theo sở thích cá nhân.
/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Improved RSI Strategy", overlay=true)
// Define RSI parameters
rsiLength = input(14, title="RSI Length")
rsiOversold = input(30, title="Oversold Threshold")
rsiOverbought = input(70, title="Overbought Threshold")
// Calculate RSI
rsiValue = ta.rsi(close, rsiLength)
// Define entry conditions
longCondition = ta.crossover(rsiValue, rsiOversold)
shortCondition = ta.crossunder(rsiValue, rsiOverbought)
// Plot RSI and thresholds
plot(rsiValue, title="RSI", color=color.blue)
hline(rsiOversold, title="Oversold Threshold", color=color.red)
hline(rsiOverbought, title="Overbought Threshold", color=color.green)
// Calculate percentage change since last signal
var float percentageChange = na
lastCloseValue = ta.valuewhen(longCondition or shortCondition, close, 1)
if longCondition or shortCondition
percentageChange := (close - lastCloseValue) / lastCloseValue * 100
plot(percentageChange, color=color.blue, style=plot.style_histogram, linewidth=1, title="% Change since last signal")
// Execute strategy
if longCondition
strategy.entry("RSI Long", strategy.long)
if shortCondition
strategy.entry("RSI Short", strategy.short)
// Plot shapes and text for buy/sell signals
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")