
Bei der Strategie handelt es sich um ein Momentum-folgendes Handelssystem, das auf dem Bollinger-Bänder-Indikator basiert. Es identifiziert potenzielle Ausbruchsmöglichkeiten, indem es die Beziehung zwischen dem Preis und dem oberen Bollinger-Band überwacht und schließt die Position, wenn der Preis unter das untere Bollinger-Band fällt. Bollinger-Bänder bestehen aus drei Linien: dem mittleren Band (gleitender Durchschnitt), dem oberen Band und dem unteren Band (berechnet aus der Standardabweichung). Die Strategie unterstützt mehrere gleitende Durchschnittstypen und kann die Parameter entsprechend den Präferenzen des Händlers anpassen.
Die Kernlogik der Strategie basiert auf den folgenden Punkten:
Dabei handelt es sich um eine Trendfolgestrategie auf Basis von Bollinger-Bändern, die Markttrends durch Beobachtung der Beziehung zwischen Preis und Bollinger-Bändern erfasst. Die Strategie ist sinnvoll konzipiert und verfügt über gute Anpassungsmöglichkeiten und Mechanismen zum Risikomanagement. Durch die empfohlenen Optimierungsrichtungen können die Stabilität und Profitabilität der Strategie weiter verbessert werden. Die Strategie eignet sich besonders für Märkte mit größerer Volatilität, allerdings müssen Händler ihre Parameter und Risikokontrollmaßnahmen an die 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")