
Die Strategie ist ein quantitatives Handelssystem, das auf dynamischen Durchbrüchen der Bollinger Bands basiert. Es kombiniert verschiedene Arten von Moving Averages (einschließlich SMA, EMA, SMMA, WMA, VWMA) zur Konstruktion von Bollinger Bands, um Handelsentscheidungen über die Beziehung zwischen dem Preis und dem Bollinger Bands auf und ab zu treffen. Die Kernidee der Strategie ist es, die Aufwärtstrend zu erfassen, wenn der Preis den Bollinger Bands überschreitet, und den Verlust zu stoppen, wenn der Preis untergeht.
Die Funktionsweise der Strategie umfasst folgende Schlüsselelemente:
Es handelt sich um ein vollständiges Handelssystem, das auf Brin-Bands basiert und eine gute Anpassungsfähigkeit und Skalierbarkeit aufweist. Es ist in der Lage, sich an verschiedene Marktumgebungen anzupassen, indem es verschiedene Moving Average-Typen und flexible Parameter-Einstellungen auswählt. Die Risikomanagementmechanismen der Strategie sind relativ vollständig, aber es gibt noch Raum für Optimierungen.
/*backtest
start: 2024-06-30 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy(shorttitle="BB Demo", title="Demo GPT - Bollinger Bands", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// 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.source(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500)
// MA Calculation 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)
// Indicator Calculations
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Visual Plots
plot(basis, "Basis", color=color.new(#2962FF, 0), offset=offset)
p1 = plot(upper, "Upper", color=color.new(#F23645, 0), offset=offset)
p2 = plot(lower, "Lower", color=color.new(#089981, 0), offset=offset)
fill(p1, p2, color=color.rgb(33, 150, 243, 95), title="Background")
// Strategy Logic
longCondition = close > upper
exitCondition = close < lower
if longCondition
strategy.entry("Long", strategy.long)
if exitCondition
strategy.close("Long")