
Die Strategie nutzt die Bollinger Bands und den RSI, um ein Signal zu erzeugen, das eine Preisumkehr anzeigt. Bei der Standardversion wird das Beobachtungssignal als roter Pfeil und das Beobachtungssignal als grüner Pfeil angezeigt. Bevor die Strategie ein Signal auslöst, sucht sie nach:
Die Kernprinzipien dieser Strategie sind die Verwendung von zwei technischen Indikatoren, dem Brin-Band und dem Random RSI, um potenzielle Preisumkehrsignale zu erfassen. Der Brin-Band besteht aus einer mittleren Bahn (in der Regel ein Moving Average) und zwei oberen und unteren Bahnen (in der Regel ein Moving Average plus der Standard Differenz), die die Preisschwankungen widerspiegeln. Wenn der Preis übertrainiert oder übertrainiert wird, bedeutet dies normalerweise, dass die Marktstimmung zu optimistisch oder pessimistisch ist und ein Preisumkehr möglich ist.
Die Strategie hat die Vorteile der Signalsicherheit, der breiten Reichweite usw. Die Strategie hat jedoch eine schlechte Performance in einem schwankenden Markt, der in einem Trendmarkt zurückbleiben kann, und die Parameter-Einstellungen sind auch empfindlicher. Daher kann in der Praxis die Optimierung und Verbesserung der Strategie in Bezug auf Trendbestätigung, Dynamikparameter, Stop-Loss-Stopps und andere Indikatoren in Betracht gezogen werden, um ihre Anpassungsfähigkeit und Profitabilität zu verbessern und besser für die quantitative Handelspraxis zu dienen.
/*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)