Diese Strategie basiert auf dem Bollinger Bands-Indikator. Sie tritt in eine Long-Position ein, wenn der Schlusskurs über das obere Band bricht und in eine Short-Position eintritt, wenn der Schlusskurs unter das untere Band bricht. Die Ausstiegsbedingung für die Long-Position ist, wenn der Preis unter das mittlere Band fällt, und die Ausstiegsbedingung für die Short-Position ist, wenn der Preis über das mittlere Band bricht.
Diese Strategie ist eine klassische Trendfolgestrategie, die Trendmärkte mit Bollinger Bands erfasst. Die Strategielogik ist klar, und die Vorteile sind offensichtlich, aber sie birgt auch gewisse Risiken. Durch die Optimierung von Stop-Loss, Profit-Taking, Position Management und Entry-Filtern kann die Strategieleistung verbessert und die Anpassungsfähigkeit verbessert werden. Jede Strategie hat jedoch ihre Grenzen und muss flexibel in Verbindung mit den tatsächlichen Marktbedingungen angewendet werden.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0 // This displays the traditional Bollinger Bands, the difference is // that the 1st and 2nd StdDev are outlined with two colors and two // different levels, one for each Standard Deviation strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true) src = input(close) length = input.int(20, minval=1, title = "Length") mult = input.float(2.0, minval=0.001, maxval=50, title = "Multiplier") basis = ta.sma(src, length) dev = ta.stdev(src, length) dev2 = mult * dev upper1 = basis + dev lower1 = basis - dev upper2 = basis + dev2 lower2 = basis - dev2 // Strategy long_condition = ta.crossover(close, upper1) short_condition = ta.crossunder(close, lower1) if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Exit conditions exit_long_condition = ta.crossunder(close, basis) exit_short_condition = ta.crossover(close, basis) if (exit_long_condition) strategy.close("Long") if (exit_short_condition) strategy.close("Short") colorBasis = src >= basis ? color.blue : color.orange pBasis = plot(basis, linewidth=2, color=colorBasis) pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles) pUpper2 = plot(upper2, color=color.new(color.blue, 0)) pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles) pLower2 = plot(lower2, color=color.new(color.orange, 0)) fill(pBasis, pUpper2, color=color.new(color.blue, 80)) fill(pUpper1, pUpper2, color=color.new(color.blue, 80)) fill(pBasis, pLower2, color=color.new(color.orange, 80)) fill(pLower1, pLower2, color=color.new(color.orange, 80))