Strategi ini menggunakan tanda Brin dan RSI rawak untuk menghasilkan isyarat yang mungkin menunjukkan harga berbalik. Secara lalai, isyarat turun naik dipaparkan sebagai anak panah merah dan isyarat turun naik dipaparkan sebagai anak panah hijau. Sebelum memberi isyarat, strategi ini akan mencari keadaan berikut:
Prinsip teras strategi ini adalah menggunakan dua petunjuk teknikal, Brinband dan Random RSI, untuk menangkap isyarat perubahan harga yang berpotensi. Brinband terdiri daripada satu lintasan tengah (biasanya rata-rata bergerak) dan dua lintasan atas dan bawah (rata-rata penurunan standard), yang dapat mencerminkan pergerakan harga. Apabila harga melangkaui lintasan atas atau bawah, biasanya bermakna sentimen pasaran terlalu optimis atau pesimis, harga mungkin akan berbalik.
Strategi isyarat puncak RSI acak Brin dengan menggabungkan dua petunjuk teknikal, iaitu isyarat Brin dan RSI acak, untuk memecahkan harga Brin untuk turun dan RSI acak untuk mencapai kawasan puncak overbought dan oversold sebagai isyarat terbalik yang berpotensi, membentuk strategi perdagangan yang mudah dan mudah digunakan. Strategi ini mempunyai keunggulan kebolehpercayaan isyarat, jangkauan yang luas, tetapi ia tidak berfungsi dengan baik di pasaran goyah, mungkin terlewat di pasaran trend, dan parameternya juga lebih sensitif. Oleh itu, dalam aplikasi sebenar, anda boleh mempertimbangkan untuk mengoptimumkan dan memperbaiki strategi dari pengesahan trend, parameter dinamik, stop loss, menggabungkan indikator lain, dan sebagainya, untuk meningkatkan kemampuan penyesuaian dan keuntungan, yang lebih baik untuk amalan perdagangan kuantitatif.
/*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)