
Chiến lược này kết hợp hai chỉ số kỹ thuật là chỉ số tương đối mạnh yếu ((RSI) và đường quay ngược tuyến tính ((LRC)) nhằm nắm bắt các cơ hội mua và bán quá mức trên thị trường. Chiến lược sẽ gửi tín hiệu mua khi giá chạm đường xuống của đường quay ngược tuyến tính và chỉ số RSI thấp hơn 30; Chiến lược sẽ gửi tín hiệu bán khi giá chạm đường lên của đường quay ngược tuyến tính và chỉ số RSI cao hơn 70. Phương pháp kết hợp RSI và LRC này có thể xác định hiệu quả các cơ hội giao dịch tiềm năng, đồng thời giảm khả năng tín hiệu giả.
Nền tảng của chiến lược này là chỉ số RSI và đường quay ngược tuyến tính. RSI là một chỉ số động lực được sử dụng để đo lường mức độ và hướng thay đổi giá gần đây. Khi RSI thấp hơn 30, thị trường được coi là bán tháo; khi RSI cao hơn 70, thị trường được coi là mua quá mức.
Chiến lược giao dịch RSI và kênh quay trở tuyến tính cố gắng nắm bắt các cơ hội mua bán quá mức của thị trường bằng cách kết hợp các chỉ số động lực và các chỉ số theo dõi xu hướng. Ưu điểm của chiến lược là logic rõ ràng, dễ thực hiện và có thể áp dụng cho các khung thời gian khác nhau. Tuy nhiên, chiến lược cũng có một số rủi ro, chẳng hạn như tín hiệu sai, nhạy cảm tham số và thiếu quản lý rủi ro.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI and Linear Regression Channel Strategy", overlay=true)
// Define input parameters
rsiLength = input(14, title="RSI Length")
channelLength = input(100, title="Linear Regression Channel Length")
rsiBuyThreshold = 30
rsiSellThreshold = 70
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Calculate Linear Regression Channel
basis = ta.linreg(close, channelLength, 0)
dev = ta.stdev(close, channelLength)
upperChannel = basis + dev
lowerChannel = basis - dev
// Plot Linear Regression Channel
plot(basis, color=color.blue, title="Basis")
plot(upperChannel, color=color.red, title="Upper Channel")
plot(lowerChannel, color=color.green, title="Lower Channel")
// Entry condition: Price touches lower channel and RSI crosses below buy threshold
longCondition = (close <= lowerChannel) and (rsi < rsiBuyThreshold)
// Exit condition: Price touches upper channel and RSI crosses above sell threshold
shortCondition = (close >= upperChannel) and (rsi > rsiSellThreshold)
// Strategy execution
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.close("Long")
// Plot buy/sell signals on the chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")