Diese Strategie ist eine verbesserte Version des traditionellen Bollinger Bands Trend-Following-Systems. Sie überwacht die Preisbewegung für drei aufeinanderfolgende Berührungen der Bollinger Bands, um die Trendzuverlässigkeit zu bestätigen, was zu höheren Gewinnraten führt. Die Strategie verwendet einen gleitenden Durchschnitt über 20 Perioden als mittleres Band und 2 Standardabweichungen für das obere und untere Band. Durch eine detaillierte Analyse der Preisbeziehungen zu Bandgrenzen erzielt sie ein Handelssystem mit einzigartigen Vorteilen.
Die Kernlogik beruht auf einem Zählmechanismus, um anhaltende Preisbewegungen der Bollinger-Band-Grenzen zu identifizieren. Das System erzeugt ein langes Signal, wenn der Preis dreimal in Folge unter dem unteren Band bricht, und ein kurzes Signal, wenn der Preis dreimal in Folge über dem oberen Band bricht. Dieser Mechanismus filtert falsche Ausbrüche effektiv aus und verbessert die Handelszuverlässigkeit. Die Strategie verwendet das mittlere Band (20-Perioden-Bewegungsdurchschnitt) als Ausstiegssignal und schließt Trades ab, wenn der Preis in das mittlere Band zurückkehrt.
Diese Strategie verbessert sich gegenüber traditionellen Bollinger Bands-Handelssystemen durch die Implementierung eines sehr zuverlässigen Trend-Folgende Ansatzes. Sein einzigartiger Triple-Touch-Bestätigungsmechanismus erhöht effektiv die Gewinnraten, während der gleitende Durchschnittsbasierte Ausstiegsmechanismus eine rationale Gewinnlösung bietet. Obwohl inhärente Risiken bestehen, können die vorgeschlagenen Optimierungsrichtungen die Stabilität und Rentabilität der Strategie weiter verbessern.
/*backtest start: 2024-11-10 00:00:00 end: 2024-12-09 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Bollinger Bands Strategy - 3 Crossings", overlay=true) // Input Parameters length = input.int(20, title="Bollinger Bands Length", minval=1) src = input(close, title="Source") mult = input.float(2.0, title="Multiplier", step=0.1) // Calculate Bollinger Bands basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot Bollinger Bands plotBasis = plot(basis, color=color.blue, title="Basis") plotUpper = plot(upper, color=color.red, title="Upper Band") plotLower = plot(lower, color=color.green, title="Lower Band") fill(plot1=plotUpper, plot2=plotLower, color=color.new(color.blue, 90), title="Band Fill") // Counter Variables var int longCrossCount = 0 var int shortCrossCount = 0 // Detect Crossings longCondition = close < lower // Price closes below the lower band shortCondition = close > upper // Price closes above the upper band if longCondition longCrossCount += 1 // Increment the counter for long shortCrossCount := 0 // Reset the short counter if shortCondition shortCrossCount += 1 // Increment the counter for short longCrossCount := 0 // Reset the long counter if not longCondition and not shortCondition longCrossCount := 0 // Reset if no crossing shortCrossCount := 0 // Entry and Exit Rules if longCrossCount >= 3 and strategy.position_size <= 0 strategy.entry("Long", strategy.long) longCrossCount := 0 // Reset the counter after entering if shortCrossCount >= 3 and strategy.position_size >= 0 strategy.entry("Short", strategy.short) shortCrossCount := 0 // Reset the counter after entering // Exit Condition (When Price Returns to the Middle Band) exitCondition = ta.crossover(src, basis) or ta.crossunder(src, basis) if exitCondition and strategy.position_size > 0 strategy.close("Long") if exitCondition and strategy.position_size < 0 strategy.close("Short")