Stratégie de rupture des bandes de Bollinger

Auteur:ChaoZhang est là., Date: 20 février 2024
Les étiquettes:

img

Résumé

La stratégie de rupture des bandes de Bollinger est une stratégie de trading quantitative simple basée sur l'indicateur des bandes de Bollinger. La stratégie utilise les niveaux de support et de résistance dynamiques fournis par les bandes supérieures et inférieures des bandes de Bollinger pour définir des règles d'entrée pour les positions longues lorsque les prix sortent des bandes et des règles de sortie lorsque les prix reviennent à travers les bandes, dans le but de saisir les opportunités de suivi de tendance dans les mouvements de prix.

La logique de la stratégie

L'indicateur des bandes de Bollinger a été développé par John Bollinger dans les années 1980. Il se compose d'une moyenne mobile de n périodes et m fois l'écart type au-dessus et en dessous.

Les règles de sortie sont les suivantes: pour les positions longues existantes, liquider lorsque le prix de clôture dépasse la bande supérieure; pour les positions courtes existantes, couvrir lorsque le prix de clôture dépasse la bande inférieure.

Il s'agit d'une stratégie de suivi de tendance qui vise à tirer profit des mouvements directionnels soutenus des prix en capturant la continuation de la tendance signalée par la rupture des bandes de Bollinger.

Les avantages

  1. L'utilisation de bandes de Bollinger comme niveaux de support/résistance dynamiques au lieu de prix fixes rend la stratégie adaptative à l'évolution des conditions du marché.

  2. Les décisions sont basées à la fois sur les niveaux de prix et les conditions de volatilité, en évitant certains faux signaux.

  3. Le cadre de l'évasion est simple et intuitif.

  4. L'ajustement flexible des paramètres rend la stratégie adaptable à tous les produits et marchés.

Les risques

  1. Un mauvais réglage des paramètres des indicateurs peut entraîner une négociation trop fréquente et des coûts inutiles.

  2. Les signaux de rupture peuvent être des fluctuations de prix à court terme plutôt que des tendances durables.

  3. L'absence de stop loss expose la stratégie à des risques de perte incontrôlés.

  4. Le système purement technique passe à côté des renversements de tendance fondamentaux.

  5. Les performances peuvent varier d'un produit à l'autre sans ajustement.

Des possibilités d'amélioration

  1. Optimiser les paramètres pour améliorer la robustesse.

  2. Incorporer des ordres stop-loss pour limiter les pertes.

  3. Mettre en place un système multi-temporel pour améliorer les décisions.

  4. Ajoutez des filtres de volume pour éviter les faux signaux.

  5. Compléter les fondamentaux pour une meilleure saisie de temps et des positions de taille.

  6. Évaluer la stratégie sur plus de produits pour tester leur adaptabilité.

Résumé

La stratégie de rupture des bandes de Bollinger fournit une approche simple de suivi de la tendance en utilisant une dynamique signalée par des ruptures basées sur des indicateurs.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Strategy", overlay=true)

length = input.int(20, title="Bollinger Bands Length", minval=1)
maType = input.string("SMA", title="Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, title="StdDev Multiplier", minval=0.001, maxval=50)
offset = input.int(0, title="Offset", minval=-500, maxval=500)

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)

basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev + offset
lower = basis - dev - offset

// Define strategy entry and exit conditions
strategy.entry("Buy", strategy.long, when=close < lower)
strategy.close("Buy", when=close > upper)

strategy.entry("Sell", strategy.short, when=close > upper)
strategy.close("Sell", when=close < lower)

// Plotting the Bollinger Bands
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")


Plus de