Les ressources ont été chargées... Je charge...

Stratégie de négociation quantitative à plusieurs niveaux basée sur la divergence de tendance des bandes de Bollinger

Auteur:ChaoZhang est là., Date: 2024-12-27 15:52:41 Je suis désolé
Les étiquettes:BBLe taux d'intérêtSMAdétectionBBDIVLa tendance

img

Résumé

Cette stratégie est un système de négociation quantitatif à plusieurs niveaux basé sur la divergence de tendance des bandes de Bollinger et les changements dynamiques de bande passante.

Principes de stratégie

La stratégie repose sur les éléments clés suivants:

  1. Calcul des bandes de Bollinger en utilisant une moyenne mobile à 20 périodes et 2 écarts types
  2. Détermination de la force de la tendance par des changements de bande passante sur trois points de temps consécutifs
  3. Validation de la rupture en utilisant le rapport entre le corps de la bougie et la bande passante
  4. EMA200 comme filtre de tendance à moyen et long terme
  5. Entrée longue lorsque le prix dépasse la bande supérieure avec des conditions de bande passante croissantes
  6. Sortie lorsque le prix dépasse la bande inférieure avec contraction de la bande passante

Les avantages de la stratégie

  1. Système de signaux prospectifs permettant d'identifier les points tournants potentiels
  2. La validation croisée d'indicateurs techniques multiples réduit les faux signaux
  3. L'indicateur du taux de variation de la bande passante s'adapte bien à la volatilité du marché
  4. Logique d'entrée et de sortie claire, facile à mettre en œuvre par programmation
  5. Des mécanismes complets de contrôle des risques contrôlent efficacement les prélèvements

Risques stratégiques

  1. Peut générer des transactions fréquentes sur différents marchés
  2. Décalage potentiel lors de changements soudains de tendance
  3. L'optimisation des paramètres présente un risque de surajustement
  4. Risque de glissement pendant les périodes de forte volatilité du marché
  5. Requiert une surveillance constante de l'efficacité de l'indicateur de bande passante

Directions d'optimisation de la stratégie

  1. Mettre en place des mécanismes d'optimisation des paramètres adaptatifs
  2. Ajouter le volume et d'autres indicateurs auxiliaires pour la validation
  3. Optimiser les conditions d'arrêt des pertes et de prise de profit
  4. Améliorer les normes quantitatives pour l'évaluation de la force de la tendance
  5. Incorporer des filtres supplémentaires pour l'environnement du marché

Résumé

La stratégie construit un système de trading robuste grâce à la divergence de tendance des bandes de Bollinger et aux changements dynamiques de bande passante.


/*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"}]
*/

//@version=6
strategy("BBDIV_Strategy", overlay=true)

// Inputs for Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Multiplier")

// Calculate Bollinger Bands
basis = ta.sma(close, length)
deviation = mult * ta.stdev(close, length)
upperBB = basis + deviation
lowerBB = basis - deviation

// Calculate Bollinger Band width
bb_width = upperBB - lowerBB
prev_width = ta.valuewhen(not na(bb_width[1]), bb_width[1], 0)
prev_prev_width = ta.valuewhen(not na(bb_width[2]), bb_width[2], 0)

// Determine BB state
bb_state = bb_width > prev_width and prev_width > prev_prev_width ? 1 : bb_width < prev_width and prev_width < prev_prev_width ? -1 : 0

// Assign colors based on BB state
bb_color = bb_state == 1 ? color.green : bb_state == -1 ? color.red : color.gray

// Highlight candles closed outside BB
candle_size = high - low
highlight_color = (candle_size > bb_width / 2 and close > upperBB) ? color.new(color.green, 50) : (candle_size > bb_width / 2 and close < lowerBB) ? color.new(color.red, 50) : na

bgcolor(highlight_color, title="Highlight Candles")

// Plot Bollinger Bands
plot(upperBB, title="Upper BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(lowerBB, title="Lower BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(basis, title="Middle BB", color=color.blue, linewidth=1, style=plot.style_line)

// Calculate EMA 200
ema200 = ta.ema(close, 200)

// Plot EMA 200
plot(ema200, title="EMA 200", color=color.orange, linewidth=2, style=plot.style_line)

// Strategy logic
enter_long = highlight_color == color.new(color.green, 50)
exit_long = highlight_color == color.new(color.red, 50)

if (enter_long)
    strategy.entry("Buy", strategy.long)

if (exit_long)
    strategy.close("Buy")

// Display profit at close
if (exit_long)
    var float entry_price = na
    var float close_price = na
    var float profit = na

    if (strategy.opentrades > 0)
        entry_price := strategy.opentrades.entry_price(strategy.opentrades - 1)
        close_price := close
        profit := (close_price - entry_price) * 100 / entry_price * 2 * 10 // Assuming 1 pip = 0.01 for XAUUSD
        label.new(bar_index, high + (candle_size * 2), str.tostring(profit, format.mintick) + " USD", style=label.style_label_up, color=color.green)


Relationnée

Plus de