
Bei dieser Strategie handelt es sich um ein Momentum-Reversal-Handelssystem, das die doppelten technischen Indikatoren RSI und Bollinger-Bänder kombiniert, um durch die Identifizierung überkaufter und überverkaufter Bereiche zu handeln. Die Strategie verwendet ein Risiko-Rendite-Verhältnis von 1:2 und kombiniert einen gleitenden Stop-Loss zur Risikokontrolle. Die Kernlogik besteht darin, zu handeln, wenn sowohl RSI als auch Bollinger-Bänder gleichzeitig überkaufte oder überverkaufte Signale anzeigen, und die Gelder durch striktes Risikomanagement zu schützen.
Die Strategie verwendet den 14-Perioden-RSI und die 20-Perioden-Bollinger-Bänder als Hauptindikatoren. Die Kaufbedingungen müssen gleichzeitig erfüllt sein: RSI liegt unter 30 (überverkauft) und der Preis berührt oder unterschreitet das untere Bollinger Band. Gleichzeitig müssen die Verkaufsbedingungen erfüllt sein: RSI liegt über 70 (überkauft) und der Preis berührt oder überschreitet das obere Bollinger Band. Das System verwendet den höchsten/niedrigsten Punkt von 5 K-Linien als gleitenden Stop-Loss, und die Take-Profit-Position beträgt das Doppelte der Stop-Loss-Distanz, wodurch ein Risiko-Rendite-Verhältnis von 1:2 strikt umgesetzt wird.
Dabei handelt es sich um eine gut strukturierte Umkehrhandelsstrategie, die zur Erhöhung der Genauigkeit zwei technische Indikatoren nutzt und ein striktes Risikomanagement anwendet. Obwohl die Strategie einfach und intuitiv ist, enthält sie die Schlüsselelemente, die für ein ausgereiftes Handelssystem erforderlich sind. Durch die vorgeschlagenen Optimierungsrichtungen ist diese Strategie noch verbesserungswürdig. Im realen Handel empfiehlt es sich, zunächst ausreichend Backtesting und Parameteroptimierung durchzuführen.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI + Bollinger Bands with 1:2 Risk/Reward", overlay=true)
// Define Inputs
length_rsi = input.int(14, title="RSI Period")
oversold_level = input.int(30, title="RSI Oversold Level")
overbought_level = input.int(70, title="RSI Overbought Level")
length_bb = input.int(20, title="Bollinger Bands Period")
src = close
risk_to_reward = input.float(2.0, title="Risk-to-Reward Ratio", minval=1.0, step=0.1)
// Calculate Indicators
rsi_value = ta.rsi(src, length_rsi)
basis = ta.sma(src, length_bb)
dev = ta.stdev(src, length_bb)
upper_band = basis + 2 * dev
lower_band = basis - 2 * dev
// Define Buy and Sell Conditions
rsi_buy_condition = rsi_value < oversold_level // RSI below 30 (buy signal)
bollinger_buy_condition = close <= lower_band // Price at or near lower Bollinger Band (buy signal)
rsi_sell_condition = rsi_value > overbought_level // RSI above 70 (sell signal)
bollinger_sell_condition = close >= upper_band // Price at or near upper Bollinger Band (sell signal)
// Combine Buy and Sell Conditions
buy_condition = rsi_buy_condition and bollinger_buy_condition
sell_condition = rsi_sell_condition and bollinger_sell_condition
// Plot Buy and Sell Signals with white text and green/red boxes
plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY", textcolor=color.white, size=size.small)
plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL", textcolor=color.white, size=size.small)
// Calculate Swing Points (for Stop Loss)
swing_low = ta.lowest(low, 5) // Last 5 bars' low
swing_high = ta.highest(high, 5) // Last 5 bars' high
// Calculate Risk (Distance from Entry to SL)
long_risk = close - swing_low
short_risk = swing_high - close
// Calculate Take Profit using 1:2 Risk-to-Reward Ratio
take_profit_long = close + 2 * long_risk
take_profit_short = close - 2 * short_risk
// Strategy Execution: Enter Buy/Sell Positions
if buy_condition
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", "Buy", limit=take_profit_long, stop=swing_low) // Set TP and SL for Buy
if sell_condition
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", "Sell", limit=take_profit_short, stop=swing_high) // Set TP and SL for Sell
// Plotting the Indicators for Visualization (Optional - comment out if not needed)
plot(rsi_value, color=color.blue, title="RSI", linewidth=2, display=display.none)
plot(upper_band, color=color.red, title="Upper BB", display=display.none)
plot(lower_band, color=color.green, title="Lower BB", display=display.none)