Cette stratégie génère des signaux de trading basés sur l'indicateur Bollinger Bands et gère les positions en utilisant le stop-loss/take-profit. Elle surveille la rupture des bandes supérieures et inférieures des Bollinger Bands, va long lorsque le prix dépasse la bande supérieure, court lorsque le prix dépasse la bande inférieure et sort lorsque le prix dépasse les bandes à l'envers en utilisant des ordres de stop-loss.
La stratégie utilise les bandes intermédiaires, supérieures et inférieures de l'indicateur Bollinger Bands. La bande intermédiaire est la moyenne mobile, la bande supérieure est la bande intermédiaire plus 2 écarts types et la bande inférieure est la bande intermédiaire moins 2 écarts types.
Il calcule d'abord les bandes moyennes, supérieures et inférieures de Bollinger Bands. Ensuite, il vérifie si le prix dépasse la bande supérieure ou la bande inférieure. Si le prix dépasse la bande supérieure, il va long. Si le prix dépasse la bande inférieure, il va court. De plus, si le prix dépasse les bandes à l'envers, il quitte les positions en utilisant des ordres stop-loss.
Plus précisément, la logique de la stratégie est la suivante:
Cela permet d'attraper les tendances lorsque le prix fait de gros mouvements, tout en limitant les pertes en utilisant le stop-loss.
Il est possible d'optimiser le système en combinant les indicateurs, en ajustant les unités de stop-loss, etc.
Il s'agit d'une tendance relativement simple suivant une stratégie basée sur les bandes de Bollinger. Il peut rapidement prendre des positions lorsque le prix évolue et utilise le stop-loss pour contrôler le risque. Mais s'appuyer uniquement sur le prix peut causer des jugements erronés, tandis que le stop-loss sensible peut augmenter la fréquence des transactions. Nous pouvons l'améliorer davantage via le réglage des paramètres, la combinaison d'indicateurs, l'ajustement des stops, etc. Dans l'ensemble, il fournit un cadre de trading quantitatif simple et fiable.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ROBO_Trading //@version=5 strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1) //Settings long = input(true) short = input(true) length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) source = input(close) showbb = input(true, title = "Show Bollinger Bands") showof = input(true, title = "Show Offset") startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1") finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1") //Bollinger Bands basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev //Show indicator offset = showof ? 1 : 0 colorBasis = showbb ? color.gray : na colorUpper = showbb ? color.blue : na colorLower = showbb ? color.blue : na colorBands = showbb ? color.blue : na p0 = plot(basis, "Basis", color = colorBasis, offset = offset) p1 = plot(upper, "Upper", color = colorUpper, offset = offset) p2 = plot(lower, "Lower", color = colorLower, offset = offset) fill(p1, p2, title = "Background", color = colorBands, transp = 90) //Trading truetime = true if basis > 0 and truetime if long strategy.entry("Long", strategy.long, stop = upper, when = truetime) if short strategy.entry("Short", strategy.short, stop = lower, when = truetime) if long == false strategy.exit("Exit", "Short", stop = upper) if short == false strategy.exit("Exit", "Long", stop = lower) if time > finalTime strategy.close_all()