
Die Strategie ist ein integriertes Handelssystem, das auf Brin-Bändern, RSI-Indikatoren und Moving Averages basiert. Die Strategie identifiziert potenzielle Handelsmöglichkeiten durch die Preisschwankungsbreite der Brin-Bänder, den RSI-Überkauf-Überverkauf-Level und die EMA-Trendfilterung. Das System unterstützt Über- und Überschussgeschäfte und bietet mehrere Ausstiegsmechanismen, um die Sicherheit der Gelder zu schützen.
Die Strategie basiert auf folgenden Kernkomponenten:
Es handelt sich um eine gut konzipierte quantitative Handelsstrategie, die Marktchancen durch die Kombination von mehreren technischen Indikatoren erfasst. Die Strategie ist stark konfigurierbar und kann an unterschiedliche Handelsbedürfnisse angepasst werden. Obwohl einige inhärente Risiken bestehen, kann die Stabilität und Zuverlässigkeit durch die Optimierung der Parameter und die Hinzufügung von Hilfsindikatoren weiter verbessert werden.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands Scalp Pro", overlay=true)
// Inputs for the strategy
length = input(20, title="Bollinger Band Length")
src = input(close, title="Source")
mult = input(1.8, title="Bollinger Band Multiplier")
rsiLength = input(7, title="RSI Length")
rsiOverbought = input(75, title="RSI Overbought Level")
rsiOversold = input(25, title="RSI Oversold Level")
// Custom RSI exit points
rsiExitLong = input(75, title="RSI Exit for Long (Overbought)")
rsiExitShort = input(25, title="RSI Exit for Short (Oversold)")
// Moving Average Inputs
emaLength = input(500, title="EMA Length")
enableEMAFilter = input.bool(true, title="Enable EMA Filter")
// Exit method: Choose between 'RSI' and 'Bollinger Bands'
exitMethod = input.string("RSI", title="Exit Method", options=["RSI", "Bollinger Bands"])
// Enable/Disable Long and Short trades
enableLong = input.bool(true, title="Enable Long Trades")
enableShort = input.bool(false, title="Enable Short Trades")
// Enable/Disable Stop Loss
enableStopLoss = input.bool(false, title="Enable Stop Loss")
stopLossPercent = input.float(1.0, title="Stop Loss Percentage (%)", minval=0.1) / 100
// Bollinger Bands calculation
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upperBB = basis + dev
lowerBB = basis - dev
// RSI calculation
rsi = ta.rsi(src, rsiLength)
// 200 EMA to filter trades (calculated but only used if enabled)
ema200 = ta.ema(src, emaLength)
// Long condition: RSI below oversold, price closes below the lower Bollinger Band, and optionally price is above the 200 EMA
longCondition = enableLong and (rsi < rsiOversold) and (close < lowerBB) and (not enableEMAFilter or close > ema200)
if (longCondition)
strategy.entry("Long", strategy.long)
// Short condition: RSI above overbought, price closes above the upper Bollinger Band, and optionally price is below the 200 EMA
shortCondition = enableShort and (rsi > rsiOverbought) and (close > upperBB) and (not enableEMAFilter or close < ema200)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Stop Loss setup
if (enableStopLoss)
strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price * (1 - stopLossPercent))
strategy.exit("Short Exit", "Short", stop = strategy.position_avg_price * (1 + stopLossPercent))
// Exit conditions based on the user's choice of exit method
if (exitMethod == "RSI")
// Exit based on RSI
exitLongCondition = rsi >= rsiExitLong
if (exitLongCondition)
strategy.close("Long")
exitShortCondition = rsi <= rsiExitShort
if (exitShortCondition)
strategy.close("Short")
else if (exitMethod == "Bollinger Bands")
// Exit based on Bollinger Bands
exitLongConditionBB = close >= upperBB
if (exitLongConditionBB)
strategy.close("Long")
exitShortConditionBB = close <= lowerBB
if (exitShortConditionBB)
strategy.close("Short")