
Strategi ini menggabungkan dua petunjuk teknikal, indeks kekuatan relatif ((RSI) dan saluran pengembalian linear ((LRC), untuk menangkap peluang jual beli dan jual beli di pasaran. Strategi ini akan menghantar isyarat beli apabila harga menyentuh ke bawah saluran pengembalian linear dan RSI berada di bawah 30, dan isyarat jual apabila harga menyentuh ke atas saluran pengembalian linear dan RSI berada di atas 70.
Pusat strategi ini adalah RSI dan Saluran Kembalian Linear. RSI adalah indikator dinamik yang digunakan untuk mengukur lebar dan arah perubahan harga baru-baru ini. Apabila RSI berada di bawah 30, pasaran dianggap oversold; apabila RSI berada di atas 70, pasaran dianggap overbought. Saluran Kembalian Linear adalah indikator trend yang terdiri daripada satu baseline dan dua garis selari: Saluran Atas dan Saluran Bawah.
Strategi perdagangan RSI dan saluran kemerosotan linear cuba menangkap peluang jual beli yang berlebihan di pasaran dengan menggabungkan indikator momentum dan indikator pengesanan trend. Kelebihan strategi ini adalah logiknya jelas, mudah dilaksanakan, dan boleh digunakan untuk pelbagai jangka masa. Walau bagaimanapun, strategi ini juga mempunyai beberapa risiko, seperti isyarat palsu, kepekaan parameter, dan kurangnya pengurusan risiko.
/*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")