tradingview
Bollinger Band Strategie Code
27. Aug. 2024

Bollinger Band Strategie Code


Bollinger Bänder - Dein Wegweiser im Markt

Die „BB Strategy Krypto.Cafe“ nutzt Bollinger Bänder, um dir zu zeigen, wann der Markt möglicherweise überkauft oder überverkauft ist. Mit einem einfachen und übersichtlichen Ansatz kannst du so schnell erkennen, wann es Zeit ist, eine Position einzugehen.

Flexibilität durch Anpassung

Du kannst die Länge und den Multiplikator der Bollinger Bänder anpassen, um die Strategie genau auf deine Bedürfnisse abzustimmen. Egal, ob du kurzfristig oder langfristig traden willst, diese Strategie lässt sich genau so einstellen, wie du es brauchst.

Einfaches Stop-Loss und Take-Profit Management

Die Strategie erlaubt es dir, Stop-Loss und Take-Profit automatisch zu setzen. Wenn du das Take-Profit deaktivierst, wird die Position erst geschlossen, wenn ein gegenteiliges Signal auftritt. So bleibst du flexibel und kannst dich ganz auf den Markt konzentrieren.

Backtesting leicht gemacht

Du willst wissen, wie die Strategie in der Vergangenheit abgeschnitten hat? Kein Problem! Mit dem integrierten Zeitfilter kannst du den Backtesting-Zeitraum anpassen und genau analysieren, wie sich die Strategie in verschiedenen Marktphasen bewährt hat.

Perfekt fĂĽr automatisierte Signale

Diese Strategie ist ideal, wenn du Signale an deinen Trading-Bot senden willst. Die klaren Kauf- und Verkaufssignale basierend auf den Bollinger Bändern machen es einfach, deine Trading-Entscheidungen zu automatisieren.

Wie nutzt du die Strategie?

  • Länge der Bollinger Bänder: Passe die Länge an, um die Sensibilität der Bänder zu verändern.
  • Multiplikator: Mit dem Multiplikator bestimmst du, wie weit die Bänder vom Durchschnitt abweichen sollen.
  • Stop-Loss und Take-Profit: Lege fest, ob und wie du Stop-Loss und Take-Profit nutzen willst, um dein Risiko zu managen.
  • Backtesting-Startdatum: Setze den Startpunkt fĂĽr deine Backtesting-Analyse, um die Performance der Strategie zu ĂĽberprĂĽfen.

Warum diese Strategie?

Diese Strategie ist für jeden geeignet, egal ob Anfänger oder Profi. Sie ist leicht verständlich, flexibel anpassbar und bietet dir die Möglichkeit, deine Trading-Entscheidungen zu automatisieren.

Mehr erfahren: Wenn du noch tiefer in die Bollinger Band Strategie eintauchen willst, dann schau dir meinen ausfĂĽhrlichen Guide an

https://krypto.cafe/guides/die-bollinger-band-strategie-erkl%C3%A4rt/

Dort erkläre ich dir Schritt für Schritt, wie die Strategie funktioniert und wie du sie optimal einsetzen kannst.

Code fĂĽr die Stategie zum Backtesten

Mit dieser Version kannst du selber Backtests durchfĂĽhren. Weiter unten finden du noch eine Version die besser dafĂĽr geeignet ist Signale an deinen Bot zu senden.

//@version=5
strategy("BB Strategy Krypto.Cafe", shorttitle="BB Strategy Krypto.Cafe", overlay=true)

src = close
length = input.int(34, title="Length", minval=1)
mult = input.float(2.0, title="Multiplier", minval=0.001, maxval=50)

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

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))

atrPeriod = input.int(10, "ATR Length", minval=1)
factor = input.float(3.0, "Factor", minval=0.01, step=0.01)

invertLogic = input.bool(true, title="Counter Trend")

longConditionOriginal = ta.crossover(src, upper2)
shortConditionOriginal = ta.crossunder(src, lower2)

longCondition = invertLogic ? ta.crossunder(src, lower2) : longConditionOriginal
shortCondition = invertLogic ? ta.crossover(src, upper2) : shortConditionOriginal

useDateFilter = input.bool(true, title="Begin Backtest at Start Date", group="Backtest Time Period")
backtestStartDate = input.time(timestamp("1 Jan 2024"), title="Start Date", group="Backtest Time Period")

inTradeWindow = not useDateFilter or time >= backtestStartDate

useSL = input.bool(true, title="Use Stop-Loss")
useTP = input.bool(true, title="Use Take-Profit")

longProfitPerc = input.float(title='Long Take Profit (%)', minval=0.0, step=0.1, defval=1) * 0.01
shortProfitPerc = input.float(title='Short Take Profit (%)', minval=0.0, step=0.1, defval=1) * 0.01
stopLoss = input.float(title='Stop Loss (%)', minval=0.0, step=0.1, defval=5) * 0.01


if (inTradeWindow and longCondition and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)

if (inTradeWindow and shortCondition and strategy.position_size == 0)
    strategy.entry("Short", strategy.short)

if (inTradeWindow and shortCondition and strategy.position_size > 0)
    strategy.close("Long")
    strategy.entry("Short", strategy.short)

if (inTradeWindow and longCondition and strategy.position_size < 0)
    strategy.close("Short")
    strategy.entry("Long", strategy.long)

if (inTradeWindow and strategy.position_size > 0 and useSL == true)
    strategy.exit("Long Exit", from_entry="Long", stop=strategy.position_avg_price * (1 - stopLoss), limit=useTP ? strategy.position_avg_price * (1 + longProfitPerc) : na)

if (inTradeWindow and strategy.position_size < 0 and useSL == true)
    strategy.exit("Short Exit", from_entry="Short", stop=strategy.position_avg_price * (1 + stopLoss), limit=useTP ? strategy.position_avg_price * (1 - shortProfitPerc) : na)


plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

Code fĂĽr die Stategie um Singale (Alerts) zu versenden

Dies ist die Version die als Indikator fungiert, du kannst also bei den Events wie LONG und SHORT selber Signale versenden.

//@version=5
indicator('BB Bot Signal Strategy Krypto.Cafe', shorttitle='BB Bot Signal Strategy Krypto.Cafe', overlay=true)

src = close
length = input.int(34, title='Length', minval=1)
mult = input.float(2.0, title='Multiplier', minval=0.001, maxval=50)

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

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))

atrPeriod = input.int(10, 'ATR Length', minval=1)
factor = input.float(3.0, 'Factor', minval=0.01, step=0.01)

invertLogic = input(true, title='Counter Trend')

useVolumeFilter = input(false, title="Use Volume Filter")
volumeThreshold = input(100000, title="Volume Threshold")

volumeCondition = volume > volumeThreshold or not useVolumeFilter

longConditionOriginal = ta.crossover(src, upper2)
shortConditionOriginal = ta.crossunder(src, lower2)

longCondition = invertLogic ? ta.crossunder(src, lower2) and volumeCondition : longConditionOriginal
shortCondition = invertLogic ? ta.crossover(src, upper2) and volumeCondition : shortConditionOriginal


plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.small, title='Buy Signal')
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.small, title='Sell Signal')

alertcondition(longCondition, title='Long', message='Long')
alertcondition(shortCondition, title='Short', message='Short')