Stratégie de négociation des bandes de Bollinger pour la réintroduction de rupture

Auteur:ChaoZhang est là., Date: 2024-03-08 14:08:53 Le gouvernement a décidé d'arrêter le projet de loi.
Les étiquettes:

img

Résumé

Cette stratégie est basée sur l'indicateur des bandes de Bollinger. L'idée principale est d'attendre que le prix entre à nouveau dans les bandes de Bollinger après avoir quitté la bande supérieure ou inférieure, puis d'établir une position dans le même sens que la rupture au point de réentrée.

Principes de stratégie

  1. Calculez les bandes intermédiaires, supérieures et inférieures des bandes de Bollinger.
  2. Déterminez si le prix dépasse la bande supérieure ou inférieure de Bollinger. Si le prix de clôture dépasse la bande supérieure, il est considéré comme une rupture à la hausse; si le prix de clôture tombe en dessous de la bande inférieure, il est considéré comme une rupture à la baisse.
  3. Si une rupture à la hausse se produit, enregistrez le prix le plus élevé de cette bougie de rupture comme le pic. Si une rupture à la baisse se produit, enregistrez le prix le plus bas de cette bougie de rupture comme le pic. Le pic est utilisé pour déterminer si le prix est ré-entré plus tard.
  4. Si le prix de clôture se situe entre les bandes supérieure et inférieure à ce moment-là, le prix est considéré comme ayant ré-entré.
  5. Lorsque le prix rentre, si la bougie précédente était une rupture à la hausse (break_up [1] et à l'intérieur), allez long; si la bougie précédente était une rupture à la baisse (break_down [1] et à l'intérieur), allez court.
  6. Gestion des positions: si la position est longue et que le prix de clôture dépasse la bande du milieu, la position longue est fermée; si la position est courte et que le prix de clôture dépasse la bande du milieu, la position courte est fermée.

Analyse des avantages

  1. Les bandes de Bollinger ont une forte adaptabilité et peuvent s'ajuster dynamiquement en fonction des fluctuations de prix, ce qui est utile pour capturer les tendances et la volatilité.
  2. Comparé à une simple stratégie de rupture des bandes de Bollinger, l'ajout de la condition de réentrée permet d'éviter de poursuivre des hauts et de vendre des bas dans une certaine mesure et d'améliorer la qualité de l'entrée.
  3. La condition de sortie utilise la bande du milieu comme référence, qui est simple et facile à utiliser, et peut relativement bien protéger les bénéfices.
  4. Les paramètres des bandes de Bollinger, tels que la longueur et le multiplicateur de déviation, peuvent être personnalisés, ce qui offre une grande flexibilité.

Analyse des risques

  1. Une sélection incorrecte des paramètres de la bande de Bollinger peut entraîner des entrées prématurées ou tardives, affectant la performance de la stratégie.
  2. Lorsque le prix oscille près des bandes de Bollinger, des ouvertures et fermetures fréquentes de positions peuvent survenir, ce qui entraîne une augmentation des coûts de transaction.
  3. Si la tendance est très forte et que le prix ne rentre pas dans les bandes de Bollinger pendant une longue période, les profits de tendance peuvent être manqués.
  4. L'utilisation de l'indicateur Bollinger Band seul peut ne pas être efficace pour certains instruments ou conditions de marché, et il peut être nécessaire de l'utiliser conjointement avec d'autres signaux.

Directions d'optimisation

  1. Considérez l'introduction de plus de conditions de filtrage. Par exemple, une rupture peut être plus fiable si le prix a été au-dessus des bandes de Bollinger pendant une période de temps, ou utiliser des indicateurs de détermination de tendance tels que l'angle MA et ADX pour l'assistance.
  2. Pour les marchés oscillants, des ordres limites et des chronomètres peuvent être ajoutés pour éviter les entrées à l'aveugle.
  3. Pour les sorties, l'ATR ou les moyennes mobiles peuvent être combinés pour contrôler le calendrier de sortie.
  4. Effectuer l'optimisation des paramètres et l'analyse des caractéristiques pour différents actifs sous-jacents et délais afin de sélectionner des cibles et des délais de négociation appropriés.
  5. Considérez l'ajout de la gestion des positions, par exemple en augmentant la taille des positions lorsque la volatilité diminue et en réduisant la taille des positions lorsque la volatilité augmente.

Résumé

La stratégie de négociation de rupture de Bollinger Bands est une stratégie de négociation quantitative simple et pratique. Elle utilise la réaction des prix aux situations extrêmes et construit des conditions d'entrée et de sortie à travers l'outil Bollinger Bands, qui peut capturer les points de départ et de fin de la tendance dans une certaine mesure et contrôler le trading fréquent.


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

//@version=5
strategy(shorttitle="BB", title="Bollinger Bands", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.7, minval=0.001, maxval=50, title="StdDev")

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
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

break_up = close > upper
break_down = close < lower
inside = close > lower and close < upper

sell_condition = break_up[1] and inside
buy_condition = break_down[1] and inside

// Conditions to close trades
close_sell_condition = close > basis
close_buy_condition = close < basis

trade_condition = sell_condition or buy_condition

// Tracking the high of the breakout candle
var float peak = na

if (not trade_condition)
    peak := close
if (break_up and peak < high)
    peak := high
if (break_down and peak > low)
    peak := low

// Entering positions
if (buy_condition)
    strategy.entry("Buy", strategy.long)
if (sell_condition)
    strategy.entry("Sell", strategy.short)

// Exiting positions when close crosses the basis
if (strategy.position_size > 0 and close_sell_condition) // If in a long position and close crosses above basis
    strategy.close("Buy")
if (strategy.position_size < 0 and close_buy_condition) // If in a short position and close crosses below basis
    strategy.close("Sell")

Plus de