Stratégie de trading des bandes de Bollinger de retour à la moyenne combinée à des signaux de régression rationnels

BB MA SD MR RSI VOL
Date de création: 2025-01-06 15:33:01 Dernière modification: 2025-01-06 15:33:01
Copier: 2 Nombre de clics: 464
1
Suivre
1617
Abonnés

Stratégie de trading des bandes de Bollinger de retour à la moyenne combinée à des signaux de régression rationnels

Aperçu

Cette stratégie est un système de trading quantitatif basé sur les principes des bandes de Bollinger et du retour à la moyenne des prix. En surveillant l’écart entre le prix et la moyenne mobile, combiné aux signaux de rupture des pistes supérieures et inférieures des bandes de Bollinger, le trading est effectué lorsque le prix devrait revenir à la moyenne après que le marché ait été suracheté ou survendu. La stratégie utilise un seuil de pourcentage pour mesurer le degré d’écart de prix et filtre les faux signaux en définissant des conditions de déclenchement raisonnables pour améliorer la précision des transactions.

Principe de stratégie

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

  1. Utilisez la moyenne mobile sur 20 jours comme piste médiane et construisez le canal de la bande de Bollinger avec 2 fois l’écart type
  2. Introduction d’un seuil d’écart de prix de 3,5 % pour identifier les écarts significatifs
  3. Suivez si le prix est en dehors de l’état via la variable is_outside
  4. Lorsque le prix revient dans la fourchette des bandes de Bollinger, le signal de trading sera déclenché
  5. Les règles de trading spécifiques sont les suivantes :
    • Allez longtemps lorsque le prix revient de l’écart et franchit la bande supérieure
    • Allez à découvert lorsque le prix revient de l’écart et franchit la bande inférieure

Avantages stratégiques

  1. La logique de retour à la moyenne est robuste
    • Basé sur la loi statistique selon laquelle les prix finissent par revenir à la moyenne
    • Assurer l’importance des opportunités de trading grâce à des seuils de déviation
  2. Une parfaite maîtrise des risques
    • Les bandes de Bollinger fournissent une référence claire pour les plages de volatilité
    • Suivi des écarts pour éviter de trader dans des situations volatiles
  3. Forte capacité de réglage des paramètres
    • Les paramètres de la bande de Bollinger peuvent être ajustés en fonction des caractéristiques du produit
    • Les seuils d’écart peuvent être définis en fonction des préférences de risque

Risque stratégique

  1. Risque d’échec du marché de tendance
    • De faux signaux fréquents peuvent survenir sur des marchés à forte tendance
    • Il est recommandé d’ajouter des filtres de tendance pour identifier les conditions du marché
  2. Risque de sensibilité des paramètres
    • Des paramètres incorrects peuvent affecter les performances de la stratégie
    • Nécessité d’optimiser les paramètres grâce au backtesting des données historiques
  3. Risque de coût de glissement
    • Les transactions fréquentes peuvent entraîner des coûts de transaction plus élevés
    • Il est recommandé d’augmenter la limite de temps de détention et le contrôle des coûts

Orientation de l’optimisation de la stratégie

  1. Accroître la reconnaissance de l’environnement du marché
    • Présentation des indicateurs de force de tendance tels que l’ADX
    • Ajuster dynamiquement les paramètres en fonction des conditions du marché
  2. Améliorer le mécanisme de stop-profit et de stop-loss
    • Définition d’un stop loss dynamique basé sur l’ATR
    • Présentation du stop-profit mobile pour protéger les bénéfices
  3. Optimiser la fréquence des transactions
    • Augmenter la durée minimale de détention
    • Définissez des intervalles de transaction pour contrôler les coûts

Résumer

Cette stratégie capture les opportunités de surachat et de survente du marché grâce aux bandes de Bollinger et aux principes de retour à la moyenne, et contrôle efficacement les risques de trading en combinant des seuils d’écart raisonnables et des mécanismes de suivi du statut. Le cadre stratégique présente une bonne évolutivité et peut s’adapter à différents environnements de marché grâce à l’optimisation des paramètres et à l’amélioration des fonctions. Il est recommandé de prêter attention au contrôle des risques dans les applications en temps réel et d’ajuster les paramètres en fonction des caractéristiques de produits spécifiques.

Code source de la stratégie
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estratégia com Bandas de Bollinger e Sinal de Retorno", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)

// Configurações das Bandas de Bollinger
length = input.int(20, title="Período da média")
mult = input.float(2.0, title="Desvio padrão")
bbBasis = ta.sma(close, length)
bbUpper = bbBasis + mult * ta.stdev(close, length)
bbLower = bbBasis - mult * ta.stdev(close, length)

// Configuração para a distância da média
percent_threshold = input.float(3.5, title="Distância da média (%)") / 100

dist_from_mean = 0.0
trigger_condition = false
if not na(bbBasis)
    dist_from_mean := math.abs(close - bbBasis) / bbBasis
    trigger_condition := dist_from_mean >= percent_threshold

// Variáveis para identificar o estado do afastamento
var bool is_outside = false
var color candle_color = color.new(color.white, 0)

if trigger_condition
    is_outside := true

if is_outside and close <= bbUpper and close >= bbLower
    is_outside := false
    candle_color := color.new(color.blue, 0) // Atribui uma cor válida
else
    candle_color := color.new(color.white, 0)

// Aplicar cor às velas
barcolor(candle_color)

// Plotar Bandas de Bollinger
plot(bbBasis, color=color.yellow, title="Média")
plot(bbUpper, color=color.red, title="Banda Superior")
plot(bbLower, color=color.green, title="Banda Inferior")

// Lógica de entrada e saída
longCondition = not is_outside and close > bbUpper
if (longCondition)
    strategy.entry("Buy", strategy.long)

shortCondition = not is_outside and close < bbLower
if (shortCondition)
    strategy.entry("Sell", strategy.short)