Diese Strategie ist eine auf Bollinger Bands basierende doppelspurige Durchbruchshandelsstrategie. Sie verwendet die oberen und unteren Schienen der Bollinger Bands als Kauf- und Verkaufssignale und setzt einen Stop-Loss-Punkt, um Risiken zu kontrollieren.
Die Strategie verwendet die oberen und unteren Schienen der Bollinger Bands. Die Bollinger Bands bestehen aus einem gleitenden Durchschnitt und zwei ihm entsprechenden Standardabweichungskanälen. Ein Verkaufssignal wird erzeugt, wenn der Preis die oberen Schienen der Bollinger Bands berührt oder durchbricht; ein Kaufsignal wird erzeugt, wenn der Preis die unteren Schienen der Bollinger Bands berührt oder durchbricht. Darüber hinaus setzt die Strategie auch einen Stop-Loss-Punkt. Wenn der Preis unter einem bestimmten Prozentsatz des gleitenden Durchschnitts liegt, wird ein Stop-Loss ermittelt.
Insbesondere berechnet die Strategie den gleitenden Durchschnitt und die doppelte Standardabweichung des angegebenen Zyklus (z. B. 20 Tage), um die Bollinger Bands zu zeichnen. Die obere Schiene ist der gleitende Durchschnitt plus doppelt die Standardabweichung und die untere Schiene ist der gleitende Durchschnitt minus doppelt die Standardabweichung. Wenn der Schlusskurs größer oder gleich der oberen Schiene ist, wird ein Verkaufssignal ausgegeben; wenn der Schlusskurs kleiner oder gleich der unteren Schiene ist, wird ein Kaufsignal ausgegeben. Darüber hinaus wird ein Stop-Loss-Signal ausgegeben, wenn der Preis niedriger als ein bestimmter Prozentsatz (z. B. 1%) des gleitenden Durchschnitts ist.
Die Strategie nutzt die Eigenschaften von Bollinger Bands, um Handelssignale auszugeben, wenn abnormale Kursschwankungen auftreten, wodurch Chancen für Preisumkehrungen erfasst werden.
Im Vergleich zu einfachen Dual-Track-Breakthrough-Strategien fügt diese Strategie einen Stop-Loss-Mechanismus hinzu. Dies kann den Verlust, der durch einzelne falsche Signale verursacht wird, effektiv kontrollieren. Die Einstellung des Stop-Loss-Punkts ist auch relativ vernünftig, nahe am gleitenden Durchschnitt und vermeidet übermäßigen Stop-Loss, der zu viel Verlust verursacht.
Das größte Risiko dieser Strategie besteht darin, dass Bollinger Bands selbst die Gültigkeit der Handelssignale nicht garantieren können. Wenn auf dem Markt besondere Situationen auftreten, können die Preise stark und abnormal schwanken, in diesem Fall können die von Bollinger Bands ausgegebenen Handelssignale falsch sein. Dies kann zu erheblichen Verlusten führen.
Darüber hinaus kann die Einstellung von Stop-Loss-Punkten auch zu aggressiv oder konservativ sein, was sich auf den Endertrag auswirkt.
Die Strategie kann in folgenden Aspekten optimiert werden:
Versuche verschiedene Parameterkombinationen, z. B. verschiedene Werte des gleitenden Durchschnittszyklus, Standardabweichungsmultiplikator, Stoppverlustprozentsatz usw., um die optimalen Parameter zu finden;
Erhöhung anderer Indikatoren zur Beurteilung und Bildung mehrerer Filterbedingungen, um falsche Signale zu vermeiden;
Optimierung von Stop-Loss-Strategien, z. B. Verwendung von beweglichen Stop-Loss, Batch-Stop-Loss anstelle von einfachen Stop-Loss;
Bestätigen Sie Handelssignale, indem Sie Bollinger-Bänder verschiedener Zeitzyklen kombinieren, um nicht gefangen zu werden.
Insgesamt ist diese Strategie eine praktische Kombination aus Trendverfolgung und Dual-Track-Breakthrough-Strategien. Sie kann Chancen für Umkehrungen nutzen, wenn die Kursschwankungen zunehmen, und Stop-Losses festlegen, um Risiken zu kontrollieren. Durch Parameteroptimierung, erhöhte Signalfilterung, optimierte Stop-Loss-Strategien usw. können die Stabilität und Rentabilität der Strategie weiter verbessert werden.
/*backtest start: 2024-01-28 00:00:00 end: 2024-02-04 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy by Royce Mars", overlay=true) length = input.int(20, minval=1) maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") stopLossPercent = input.float(1.0, title="Stop Loss Percent", minval=0.1, maxval=10, step=0.1) ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Buy and Sell Conditions buyCondition = close <= lower sellCondition = close >= upper // Stop Loss Condition stopLossCondition = close < basis * (1 - stopLossPercent / 100) // Strategy Execution strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=sellCondition or stopLossCondition) strategy.entry("Sell", strategy.short, when=sellCondition) strategy.close("Sell", when=buyCondition) // Plotting on the Chart plotshape(buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(sellCondition or stopLossCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar) // Plotting the Bollinger Bands plot(basis, "Basis", color=color.orange) p1 = plot(upper, "Upper Band", color=color.blue) p2 = plot(lower, "Lower Band", color=color.blue) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))