Stratégie de négociation de rupture du canal Bollinger Band

Auteur:ChaoZhang est là., Date: 12 septembre 2023 à 17h05
Les étiquettes:

Cette stratégie consiste à négocier la rupture de prix des bandes de Bollinger. Les bandes définissent efficacement la gamme d'oscillation des prix, les ruptures signalant des virages de tendance potentiels.

La logique de la stratégie:

  1. Calculer la ligne médiane BB, les bandes supérieures et inférieures.

  2. Allez long sur la bande inférieure et court sur la bande supérieure.

  3. Réglez le stop-loss sur la bande opposée pour contrôler les risques.

  4. Un arrêt de traîneau pour plus de profits, ou un arrêt fixe.

  5. Appliquer des ordres qui s'excluent mutuellement pour éviter les ordres long/short simultanés.

Les avantages:

  1. La rupture de BB identifie avec précision les changements de tendance.

  2. Les arrêts sur les bandes permettent une sortie rapide de la tendance.

  3. L'exclusion mutuelle évite la couverture dans le même sens.

Les risques:

  1. BB moyenne et déviation retard, manquant les meilleures entrées.

  2. Les scies à ciseaux sont courantes sur de nombreux marchés.

  3. Paramètres statiques Impossible de s'adapter à la volatilité changeante.

En résumé, cette stratégie traite les évasions de BB comme un système de canal typique.


/*backtest
start: 2022-09-05 00:00:00
end: 2023-09-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Kozlod - BB Strategy - 1 minute", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// 
// author: Kozlod
// date: 2019-05-27
// RSI - BTCUSDT - 1m
// https://www.tradingview.com/u/Kozlod/
// https://t.me/quantnomad
//

source = close
length = input(45, minval=1)
mult = input(2.5, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

plot(upper)
plot(lower)

buyEntry  = crossover(source, lower)
sellEntry = crossunder(source, upper)

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

Plus de