Stratégie de tendance à la dynamique basée sur les bandes MACD et Bollinger

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

img

Résumé

La stratégie s'appelle Momentum Trend. Elle combine les avantages de l'indicateur MACD et des bandes de Bollinger pour mettre en œuvre une stratégie de suivi des tendances. La stratégie utilise la ligne rapide MACD et la ligne lente pour construire des bandes de Bollinger. La ligne du milieu des bandes de Bollinger est la ligne de signal MACD.

Principe de stratégie

L'indicateur MACD est composé d'une ligne rapide, d'une ligne lente et d'un histogramme MACD. La ligne rapide est généralement une EMA de 12 jours et la ligne lente est une EMA de 26 jours. La différence entre eux est l'histogramme MACD. Cette stratégie utilise la différence entre la ligne rapide et la ligne lente comme ligne médiane de base des bandes de Bollinger.

Un signal d'achat est généré lorsque le prix traverse le rail inférieur des bandes de Bollinger vers le haut. Un signal de vente est généré lorsque le prix traverse le rail supérieur des bandes de Bollinger vers le bas. Pour réduire le risque d'être pris au piège et de manquer des opportunités d'inversion, cette stratégie n'entre pas sur le marché immédiatement après la rupture. Au lieu de cela, elle attend le recul pour tester la ligne médiane des bandes de Bollinger avant d'entrer.

En outre, les rails supérieurs et inférieurs peuvent également être utilisés comme résistance et support respectivement. Lorsque le prix augmente, le rail supérieur est une résistance et le rail inférieur est un support. Lorsque le prix baisse, le rail supérieur devient un support et le rail inférieur devient une résistance.

Analyse des avantages

Cette stratégie combine les avantages du MACD et des bandes de Bollinger pour réaliser le suivi des tendances, avec les points forts suivants:

  1. Le MACD a une forte capacité de jugement des tendances. Les bandes de Bollinger peuvent s'ajuster de manière adaptative. La combinaison peut déterminer efficacement les points d'inversion de tendance.

  2. L'entrée en retraite permet d'éviter efficacement le risque d'arrêt des pertes et de suivre les tendances à moyen et long terme.

  3. Utiliser la résistance et le support sur les bandes de Bollinger peut encore bloquer les profits.

  4. Les paramètres MACD et Bollinger Bands peuvent être ajustés de manière flexible pour s'adapter à différents environnements de marché.

Analyse des risques

Il y a aussi quelques risques à prendre en compte pour cette stratégie:

  1. Dans les tendances oscillantes, le MACD et les bandes de Bollinger peuvent générer plusieurs signaux invalides.

  2. Le stop loss doit être réglé lors de l'entrée de la reprise afin d'éviter une augmentation de la perte due à une reprise trop profonde.

  3. Les paramètres des bandes de Bollinger doivent être ajustés en fonction de la volatilité du marché.

  4. Une bonne gestion des risques et une bonne dimensionnement des positions sont les clés pour maintenir les bénéfices de cette stratégie.

Directions d'optimisation

La stratégie peut également être optimisée dans les aspects suivants:

  1. Optimiser les paramètres du MACD pour une ligne rapide de 8 jours et une ligne lente de 20 jours.

  2. Ajoutez le jugement de tendance à la hausse et à la baisse pour optimiser les paramètres des bandes de Bollinger, réduisant ainsi les faux signaux sur les marchés oscillants.

  3. Ajoutez une stratégie de stop-loss, définissez une ligne de stop-loss avec les bandes de Bollinger en haut et en bas pour contrôler les risques.

  4. Incorporer d'autres indicateurs de vérification pour améliorer la stabilité de la stratégie.

Conclusion

La stratégie de tendance de l'élan basée sur le MACD et les bandes de Bollinger suit les tendances à moyen et long terme grâce à un ensemble d'indicateurs et effectue des retraits pour réduire les risques. Elle optimise les paramètres et contrôle les risques. Elle fonctionne bien sur les produits en tendance. Mais aucune stratégie n'est parfaite. Nous devons continuer à optimiser et à améliorer de multiples perspectives pour nous adapter aux environnements de marché en constante évolution.


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

//@version=4
//Simple strategy based on MACD and Bollinger Bands, where BBs are calculatend from macd signal.
strategy("Strategy MACD vs BB", overlay=false)

fast_length = input(title="Fast MA period", type=input.integer, defval=8)
slow_length = input(title="Slow MA period", type=input.integer, defval=21)
src = input(close,"Source")


// ----------MA calculation - ChartArt-------------
smoothinput = input(1, minval=1, maxval=4, title='Moving Average Calculation: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)')

fast_ma = smoothinput == 1 ? sma(src, fast_length):smoothinput == 2 ? ema(src, fast_length):smoothinput == 3 ? wma(src, fast_length):smoothinput == 4 ? linreg(src, fast_length,0):na
slow_ma = smoothinput == 1 ? sma(src, slow_length):smoothinput == 2 ? ema(src, slow_length):smoothinput == 3 ? wma(src, slow_length):smoothinput == 4 ? linreg(src, slow_length,0):na
//----------------------------------------------
macd = fast_ma - slow_ma
p1=plot(macd,"macd signal",color=color.blue)
length = input(40, minval=1)
mult = input(2.0,"BB multiplier")

basis = sma(macd, length)
dev = mult * stdev(macd, length)
plot(basis,"BB basis",color=color.orange)
upper = basis + dev
lower = basis - dev
p2=plot(upper,"BB upper",color=color.red)
p3=plot(lower,"BB basis",color=color.green)

longCondition = crossover(macd, lower)
shortCondition = crossunder(macd, upper)

plotshape(longCondition?lower:na, title="Long", style=shape.xcross, location=location.absolute, text="Long", color=color.green, transp=0, size=size.tiny)
plotshape(shortCondition?upper:na, title="Short", style=shape.xcross, location=location.absolute, text="Short", color=color.red, transp=0, size=size.tiny)
fill(p1,p3,color=macd<lower?color.green:na,transp=90,title="support")
fill(p1,p2,color=macd>upper?color.red:na,transp=90,title="resistance")

if longCondition
    strategy.entry("Long",strategy.long)
if shortCondition
    strategy.entry("Short",strategy.short)


Plus de