
Chiến lược này sử dụng dải Brin và chỉ số RSI ngẫu nhiên để tạo ra tín hiệu có thể cho thấy giá đã đảo ngược. Theo mặc định, tín hiệu giảm được hiển thị bằng mũi tên đỏ và tín hiệu tăng được hiển thị bằng mũi tên xanh. Trước khi phát tín hiệu, chiến lược sẽ tìm kiếm các tình huống sau:
Nguyên tắc cốt lõi của chiến lược này là sử dụng hai chỉ số kỹ thuật Brin và RSI ngẫu nhiên để nắm bắt tín hiệu biến động giá tiềm năng. Brin bao gồm một đường trung đạo (thường là đường trung chuyển) và hai đường trung đạo (thường là đường trung đạo và chênh lệch tiêu chuẩn giảm) để phản ánh sự biến động của giá. Khi giá phá vỡ đường trên hoặc đường dưới, thường có nghĩa là tâm trạng thị trường quá lạc quan hoặc bi quan, giá có thể sẽ biến động.
Chiến lược tín hiệu RSI cực đoan ngẫu nhiên của Brin tạo thành một chiến lược giao dịch đơn giản, dễ sử dụng bằng cách kết hợp hai chỉ số kỹ thuật của Brin và RSI ngẫu nhiên để phá vỡ giá Brin và RSI ngẫu nhiên đạt đến vùng cực đoan mua bán quá mức như tín hiệu đảo ngược tiềm năng. Chiến lược này có tín hiệu đáng tin cậy, có thể áp dụng rộng rãi, nhưng hoạt động kém trong thị trường bất ổn, có thể bị trì hoãn trong thị trường xu hướng, thiết lập tham số cũng nhạy cảm hơn.
/*backtest
start: 2023-04-06 00:00:00
end: 2024-04-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(shorttitle='BBSR Extreme', title='Bollinger Bands Stochastic RSI Extreme Signal', overlay=true)
//General Inputs
src = input(close, title='Source')
offset = input.int(0, 'Offset', minval=-500, maxval=500)
//Bollinger Inputs
length = input.int(20, title='Bollinger Band Length', minval=1)
mult = input.float(2.0, minval=0.001, maxval=50, title='StdDev')
//Bollinger Code
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(basis, 'BB Basis', color=color.new(#872323, 0), offset=offset)
p1 = plot(upper, 'BB Upper', color=color.new(color.teal, 0), offset=offset)
p2 = plot(lower, 'BB Lower', color=color.new(color.teal, 0), offset=offset)
fill(p1, p2, title='BB Background', color=color.new(#198787, 95))
//Stoch Inputs
smoothK = input.int(3, 'K', minval=1)
smoothD = input.int(3, 'D', minval=1)
lengthRSI = input.int(14, 'RSI Length', minval=1)
lengthStoch = input.int(14, 'Stochastic Length', minval=1)
upperlimit = input.float(90, 'Upper Limit', minval=0.01)
lowerlimit = input.float(10, 'Upper Limit', minval=0.01)
//Stochastic Code
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
//Evaluation
Bear = close[1] > upper[1] and close < upper and k[1] > upperlimit and d[1] > upperlimit
Bull = close[1] < lower[1] and close > lower and k[1] < lowerlimit and d[1] < lowerlimit
//Plots
plotshape(Bear, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny)
plotshape(Bull, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny)
// Alert Functionality
alertcondition(Bear or Bull, title='Any Signal', message='{{exchange}}:{{ticker}}' + ' {{interval}}' + ' BB Stochastic Extreme!')
alertcondition(Bear, title='Bearish Signal', message='{{exchange}}:{{ticker}}' + ' {{interval}}' + ' Bearish BB Stochastic Extreme!')
alertcondition(Bull, title='Bullish Signal', message='{{exchange}}:{{ticker}}' + ' {{interval}}' + ' Bullish BB Stochastic Extreme!')
if Bear
strategy.entry('Enter Long', strategy.long)
else if Bull
strategy.entry('Enter Short', strategy.short)