Stratégie de tendance quantitative de croisement de bandes de Bollinger en nuage avec double moyenne mobile

MA BB
Date de création: 2024-12-27 15:54:08 Dernière modification: 2024-12-27 15:54:08
Copier: 2 Nombre de clics: 431
1
Suivre
1617
Abonnés

Stratégie de tendance quantitative de croisement de bandes de Bollinger en nuage avec double moyenne mobile

Aperçu

Cette stratégie est un système de trading quantitatif basé sur Ichimoku Cloud. Cette stratégie utilise principalement les signaux de croisement de Leading Span A et Leading Span B pour déterminer la direction de la tendance du marché et générer des signaux de trading. La stratégie adopte une méthode de jugement de fourchette de prix dynamique, combinée au principe de calcul du canal Donchian, qui peut capturer efficacement les points de retournement des tendances du marché.

Principe de stratégie

La logique fondamentale de la stratégie repose sur les éléments clés suivants :

  1. Ligne de conversion : utilise la médiane du canal Donchian à 9 périodes comme indicateur de réaction rapide
  2. Ligne de base : utilise la médiane du canal Donchian sur 26 périodes comme indicateur de tendance à moyen terme
  3. Portée principale A : calculée à partir de la moyenne de la ligne de conversion et de la ligne de base
  4. Leading Span B : utilise la médiane du canal Donchian sur 52 périodes comme indicateur de tendance à long terme
  5. Lagging Span : reculer le prix de clôture de 26 périodes

Les conditions de déclenchement des signaux de trading sont les suivantes :

  • Signal long : lorsque la bande principale A croise la bande principale B vers le haut
  • Signal court : Lorsque la bande principale A croise la bande principale B vers le bas

Avantages stratégiques

  1. Confirmation de tendance multidimensionnelle : grâce à la combinaison d’indicateurs de différentes périodes, la tendance du marché peut être évaluée de manière exhaustive
  2. Fiabilité élevée du signal : l’utilisation du croisement de nuages ​​comme condition de déclenchement du signal peut filtrer efficacement les faux signaux
  3. Contrôle parfait des risques : la structure du cloud elle-même a pour fonction de soutenir la pression, offrant ainsi une position de stop loss naturelle pour le trading
  4. Forte adaptabilité : les paramètres de la stratégie peuvent être ajustés en fonction des différentes caractéristiques du marché, avec une forte universalité

Risque stratégique

  1. Risque de décalage : En raison de l’utilisation d’une méthode de calcul de période plus longue, il peut y avoir un certain décalage dans les signaux d’entrée et de sortie
  2. Risque de marché volatil : Dans un marché latéral et volatil, de faux signaux de cassure peuvent se produire fréquemment
  3. Sensibilité des paramètres : différentes combinaisons de paramètres peuvent entraîner de grandes différences dans les performances de la stratégie
  4. Risque de drawdown : lorsque la tendance s’inverse, vous pouvez être confronté à un drawdown plus important

Orientation de l’optimisation de la stratégie

  1. Présentation des indicateurs de volume : L’efficacité de la tendance peut être confirmée en combinant les variations de volume
  2. Optimiser la sélection des paramètres : ajuster dynamiquement divers paramètres en fonction des caractéristiques des différents cycles du marché
  3. Ajouter des indicateurs auxiliaires : Vous pouvez ajouter des indicateurs tels que RSI ou MACD comme signaux de confirmation auxiliaires
  4. Améliorer le mécanisme de stop-loss : concevoir des stratégies de stop-loss plus flexibles, telles que le stop-loss suiveur

Résumer

Cette stratégie est un système de trading quantitatif qui combine des outils d’analyse technique classiques pour saisir les opportunités de marché grâce à une analyse de tendance multidimensionnelle. Bien qu’il y ait un certain décalage, il présente une bonne fiabilité et une bonne adaptabilité dans l’ensemble. Grâce à une optimisation et une amélioration continues, cette stratégie devrait permettre de maintenir des performances stables dans différents environnements de marché.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mrbakipinarli

//@version=6
strategy(title="Ichimoku Cloud Strategy", shorttitle="Ichimoku Strategy", overlay=true)

// Inputs for Ichimoku Cloud
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")

// Functions
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// Plotting Ichimoku Components
plot(conversionLine, color=color.new(#2962FF, 0), title="Conversion Line")
plot(baseLine, color=color.new(#B71C1C, 0), title="Base Line")
plot(close, offset = -displacement + 1, color=color.new(#43A047, 0), title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=color.new(#A5D6A7, 0), title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=color.new(#EF9A9A, 0), title="Leading Span B")

// Kumo Cloud
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none) 
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none) 
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

// Trading Logic
longCondition = ta.crossover(leadLine1, leadLine2)
shortCondition = ta.crossunder(leadLine1, leadLine2)

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)