Stratégie de trading adaptative de suivi de tendance basée sur la cassure du volume pilotée par Bollinger

BB stdev SMA EMA SMMA WMA VWMA ATR
Date de création: 2024-12-13 11:43:10 Dernière modification: 2024-12-13 11:43:10
Copier: 2 Nombre de clics: 420
1
Suivre
1617
Abonnés

Stratégie de trading adaptative de suivi de tendance basée sur la cassure du volume pilotée par Bollinger

Aperçu

La stratégie est un système de trading de rupture de momentum basé sur les bandes de Bollinger, principalement pour capturer les opportunités de tendance par la relation entre les prix et les bandes de Bollinger. La stratégie utilise un mécanisme de sélection de type homogène adaptatif, combiné à un canal de différence standard pour identifier les caractéristiques de la volatilité du marché, particulièrement adapté aux environnements de marché très volatils.

Principe de stratégie

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

  1. La moyenne des bandes de Bollinger est calculée à l’aide de moyennes mobiles personnalisables (incluant SMA, EMA, SMMA, WMA et VWMA).
  2. La dynamique d’ascension et de descente est déterminée par le multiplicateur de la différence standard (default 2.0) [2].
  3. La hausse de l’entrée au moment où le prix se dégage montre la formation d’une forte tendance à la rupture.
  4. Lorsque le prix est descendu en dessous de la trajectoire, il est possible que la tendance à la hausse soit terminée.
  5. Le système prend en compte le coût de transaction ((0,1%) et le point de glissement ((3 points), ce qui correspond mieux à l’environnement de transaction réel.

Avantages stratégiques

  1. Adaptabilité: les stratégies peuvent s’adapter aux différentes conditions du marché en choisissant plusieurs types de ligne moyenne.
  2. Le contrôle des risques est amélioré: un contrôle des risques clair est fourni par le fait que la piste de descente de la Bollinger est un point d’arrêt.
  3. La gestion des fonds est rationnelle: la gestion des positions est proportionnelle, ce qui évite les risques liés à la main fixe.
  4. Le coût de transaction est bien pris en compte: les commissions et les points de glissement sont inclus, ce qui rend les résultats de la rétro-évaluation plus proches de la réalité.
  5. Flexibilité du calendrier: les paramètres permettent de choisir un calendrier spécifique.

Risque stratégique

  1. Risque de fausse rupture: Les signaux de fausse rupture peuvent être fréquents dans les marchés en crise. Solution: ajouter des indicateurs de confirmation ou un mécanisme de retard d’entrée.
  2. Risque de renversement de tendance: une forte tendance peut entraîner des pertes importantes si le marché se retourne brusquement. Solution: Vous pouvez ajouter un filtre de force de tendance.
  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. Solution: Optimisation des paramètres et tests de robustesse sont nécessaires.

Orientation de l’optimisation de la stratégie

  1. Les indicateurs d’intensité de la tendance ont été introduits:
  • Les signaux de faibles tendances peuvent être filtrés par l’ajout d’un indicateur ADX ou similaire.
  • Cela réduirait les dommages causés par les fausses brèches.
  1. Optimiser les mécanismes de coupe des pertes:
  • Il est possible de réaliser un arrêt dynamique, comme un arrêt de suivi.
  • Il est possible de bénéficier d’une augmentation des revenus si la tendance se maintient.
  1. Ajout de filtres de transaction:
  • Signaux de confirmation basés sur le volume des transactions
  • Évitez de négocier dans un environnement à faible liquidité
  1. Les résultats de l’enquête ont été publiés dans les médias sociaux.
  • Des mécanismes permettant d’augmenter la réintégration
  • Pour obtenir un meilleur prix d’entrée

Résumer

Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle et logique. Elle capte la dynamique du marché grâce aux caractéristiques dynamiques des bandes de Bollinger et dispose d’un bon mécanisme de contrôle des risques.

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

//@version=5
strategy("Demo GPT - Bollinger Bands", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500)

// Date range inputs
startYear = input.int(2018, "Start Year", minval=1970, maxval=2100)
startMonth = input.int(1, "Start Month", minval=1, maxval=12)
startDay = input.int(1, "Start Day", minval=1, maxval=31)
endYear = input.int(2069, "End Year", minval=1970, maxval=2100)
endMonth = input.int(12, "End Month", minval=1, maxval=12)
endDay = input.int(31, "End Day", minval=1, maxval=31)

// Time range
startTime = timestamp("GMT+0", startYear, startMonth, startDay, 0, 0)
endTime = timestamp("GMT+0", endYear, endMonth, endDay, 23, 59)

// Moving average function
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)

// Calculate Bollinger Bands
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot
plot(basis, "Basis", color=#2962FF, offset=offset)
p1 = plot(upper, "Upper", color=#F23645, offset=offset)
p2 = plot(lower, "Lower", color=#089981, offset=offset)
fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))

// Strategy logic: Only go long and flat
inDateRange = time >= startTime and time <= endTime
noPosition = strategy.position_size == 0
longPosition = strategy.position_size > 0

// Buy if close is above upper band
if inDateRange and noPosition and close > upper
    strategy.entry("Long", strategy.long)

// Sell/Exit if close is below lower band
if inDateRange and longPosition and close < lower
    strategy.close("Long")