Stratégie d'inversion des bandes de Bollinger

Auteur:ChaoZhang est là., Date: 2024-02-20 17h05 et 47 min
Les étiquettes:

img

Résumé

La Bollinger Bands Repetitive Zona Strategy est une stratégie de trading quantitative basée sur les Bollinger Bands. La stratégie utilise la fourchette de prix entre les bandes supérieure et inférieure des Bollinger Bands pour déterminer la fourchette de volatilité du marché et identifier les points d'entrée et de sortie potentiels.

Principaux

La stratégie repose principalement sur les indicateurs suivants:

  1. Bollinger Middle Band: SMA moyenne mobile simple, représentant la tendance globale du marché.

  2. Bollinger Upper Band: Moyen + N fois l'écart type. La bande supérieure représente la limite supérieure de la volatilité du marché.

  3. Bollinger Lower Band: Moyen - N fois l'écart type. La bande inférieure représente la limite inférieure de la volatilité du marché.

Lorsque le prix de clôture est supérieur au rail inférieur et que le prix d'ouverture est inférieur au rail inférieur, il est jugé comme un bas potentiel et un point d'entrée possible. Lorsque le prix de clôture est supérieur au rail supérieur et que le prix d'ouverture est inférieur au rail supérieur, il est jugé comme un signal de rupture potentiel au-dessus du rail supérieur, qui peut également entrer sur le marché.

Lorsque le prix de clôture est inférieur à la ligne supérieure et que le prix d'ouverture est supérieur à la ligne supérieure, il est déterminé qu'il est entré dans la partie supérieure de la bande de Bollinger et une sortie doit être envisagée. Lorsque le prix de clôture est supérieur au prix d'ouverture et que la distance entre les rails supérieurs et inférieurs dépasse 2 fois la ligne médiane, il est jugé que la volatilité a augmenté et une sortie doit également être envisagée.

Analyse des avantages

  1. La combinaison du jugement double rail améliore la précision des signaux.

  2. L'intervalle de volatilité est calculé sur la base de l'écart type, en s'adaptant automatiquement aux changements du marché.

  3. Combiné avec le jugement de tendance de la ligne médiane pour éviter des chocs répétés sur le marché sans tendance.

  4. Utilisez la percée du milieu du chemin de fer pour déterminer les points d'inversion de tendance.

Analyse des risques

  1. Les stratégies d'exploitation à moyen terme ne conviennent pas pour les participations à long terme.

  2. Les bandes de Bollinger ne sont valables que dans un certain laps de temps.

  3. Dans un marché à plage, la ligne médiane fluctue fortement et l'activation alternée des rails supérieur et inférieur peut être plus fréquente.

Directions d'optimisation

  1. Ajustez les paramètres pour s'adapter à des cycles de temps plus longs. Des méthodes telles que l'augmentation de la longueur du cycle et l'utilisation de moyennes mobiles exponentielles peuvent optimiser les algorithmes de chemin de fer moyen.

  2. Ajouter des indicateurs de volatilité tels que l'ATR pour éviter davantage les fausses percées.

  3. Combinez d'autres indicateurs pour obtenir l'effet de filtre Barry. Par exemple, ajoutez des règles de jugement du volume de transaction, ne fonctionnez que lorsque le volume de transaction augmente.

Résumé

La stratégie de zone répétitive des bandes de Bollinger identifie automatiquement les extrêmes potentiels sur le marché pour définir les canaux de prix comme des opportunités de trading potentielles.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

length = input.int(55, 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., 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

// Entry conditions
enterCondition = (close > lower and open < lower and close > open) or (close > upper and open < upper and close > open)

// Exit conditions
exitCondition = (close < upper and open > upper) or (close > open and (upper - lower) > 2 * basis) or (close < lower)

strategy.entry("Long", strategy.long, when=enterCondition)
strategy.close("Long", when=exitCondition)

// Plotting
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))


Plus de