Diese Strategie ist ein Dynamik-Tracking-Handelssystem, das auf dem Bollinger Bands-Indikator basiert. Es identifiziert potenzielle Breakout-Möglichkeiten, indem es die Beziehung zwischen Preis und dem oberen Bollinger Band überwacht und Positionen schließt, wenn der Preis unter dem unteren Band bricht. Bollinger Bands bestehen aus drei Linien: dem mittleren Band (bewegtem Durchschnitt), den oberen und unteren Banden (berechnet mit Standarddeviation). Die Strategie unterstützt mehrere Arten von gleitenden Durchschnitten und ermöglicht die Anpassung von Parametern basierend auf den Präferenzen des Händlers.
Die Kernlogik der Strategie beruht auf folgenden Punkten:
Dies ist eine Trend-Following-Strategie, die auf Bollinger Bands basiert und Markttrends erfasst, indem die Beziehung zwischen Preis und Bands beobachtet wird. Die Strategie ist gut konzipiert mit guter Anpassungsfähigkeit und Risikomanagementmechanismen. Durch die vorgeschlagenen Optimierungsrichtungen können die Stabilität und Rentabilität der Strategie weiter gesteigert werden. Sie eignet sich besonders für volatile Märkte, aber Händler müssen die Parameter und Risikokontrollmaßnahmen entsprechend den tatsächlichen Bedingungen anpassen.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Demo GPT - Bollinger Bands Strategy", overlay=true, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3) // Inputs length = input.int(20, minval=1, title="Length") 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") offset = input.int(0, "Offset", minval=-500, maxval=500) startDate = input(timestamp('01 Jan 2018 00:00 +0000'), title="Start Date") endDate = input(timestamp('31 Dec 2069 23:59 +0000'), title="End Date") // Moving Average Function 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) // Calculations basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plotting plot(basis, "Basis", color=#2962FF, offset=offset) p1 = plot(upper, "Upper", color=#F23645, offset=offset) p2 = plot(lower, "Lower", color=#089981, offset=offset) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95)) // Strategy Logic inTradeWindow = true longCondition = close > upper and inTradeWindow exitCondition = close < lower and inTradeWindow if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (exitCondition) strategy.close("Long")