Bandes VWAP adaptatives basées sur la stratégie de suivi dynamique de la volatilité Garman-Klass

VWAP GKV STD MA VWMA
Date de création: 2024-12-20 14:51:00 Dernière modification: 2024-12-20 14:51:00
Copier: 0 Nombre de clics: 101
1
Suivre
1166
Abonnés

Bandes VWAP adaptatives basées sur la stratégie de suivi dynamique de la volatilité Garman-Klass

Aperçu

Il s’agit d’une stratégie de trading adaptative basée sur le prix moyen pondéré en volume d’achat (VWAP) et le taux de volatilité de Garman-Klass (GKV). La stratégie permet de suivre intelligemment les tendances du marché en ajustant dynamiquement la bande de décalage standard du VWAP en fonction de la volatilité.

Principe de stratégie

Le cœur de la stratégie est de combiner le VWAP avec le taux de volatilité du GKV. La clé est d’utiliser la formule GKV pour calculer le taux de volatilité, qui prend en compte les quatre prix d’ouverture et de clôture, de manière plus précise que le taux de volatilité traditionnel. Le taux de volatilité ajuste dynamiquement la largeur de la bande - lorsque le taux de volatilité augmente, la bande s’élargit, augmentant le seuil de rupture; lorsque le taux de volatilité diminue, la bande devient étroite, réduisant le seuil de rupture. Ce mécanisme d’adaptation est efficace pour éviter les fausses ruptures.

Avantages stratégiques

  1. La combinaison de la quantité et de la fluctuation rend le signal plus fiable.
  2. La largeur de la bande s’adapte pour réduire les interférences sonores
  3. Utilisation de la volatilité du GKV pour une meilleure compréhension de la microstructure du marché
  4. La logique de calcul est simple et claire, facile à mettre en œuvre et à entretenir.
  5. Adapté à différents environnements de marché et à une forte polyvalence

Risque stratégique

  1. Les transactions peuvent être plus fréquentes et plus coûteuses en cas de turbulences
  2. Plus sensible aux cycles de longueur et de taux de fluctuation du VWAP
  3. Les réactions peuvent être plus lentes en cas de reprise rapide de la tendance
  4. Le besoin de données en temps réel, plus d’exigences de qualité des données Suggestions de contrôle des risques :
  • Définissez un stop-loss raisonnable
  • Optimiser les paramètres pour s’adapter à différents marchés
  • Ajouter des indicateurs de confirmation de tendance
  • Le contrôle de la taille des fonds

Orientation de l’optimisation de la stratégie

  1. Introduction de l’analyse multi-cycle pour améliorer la fiabilité du signal
  2. Augmentation de la dimension de l’analyse des volumes et confirmation de l’efficacité de la percée
  3. Optimisation des méthodes de calcul de la volatilité, comme l’introduction de l’EWMA
  4. Ajout d’un filtre de force de tendance
  5. Considérer l’ajout d’un mécanisme de stop-loss dynamique Ces optimisations peuvent améliorer la stabilité de la stratégie et la qualité des gains.

Résumer

La stratégie permet de suivre la dynamique du marché en combinant l’innovation de la volatilité VWAP et GKV. Ses caractéristiques d’adaptation lui permettent de maintenir une performance stable dans différents environnements de marché. Bien qu’il existe des risques potentiels, la stratégie a de bonnes perspectives d’application grâce à une maîtrise raisonnable des risques et une optimisation continue.

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

//@version=5
strategy("Adaptive VWAP Bands with Garman Klass Volatility", overlay=true)

// Inputs
length = input.int(25, title="Volatility Length")
vwapLength = input.int(14, title="VWAP Length")
vol_multiplier = input.float(1,title="Volatility Multiplier")

// Function to calculate Garman-Klass Volatility
var float sum_gkv = na
if na(sum_gkv)
    sum_gkv := 0.0

sum_gkv := 0.0
for i = 0 to length - 1
    sum_gkv := sum_gkv + 0.5 * math.pow(math.log(high[i]/low[i]), 2) - (2*math.log(2)-1) * math.pow(math.log(close[i]/open[i]), 2)

gcv = math.sqrt(sum_gkv / length)

// VWAP calculation
vwap = ta.vwma(close, vwapLength)

// Standard deviation for VWAP bands
vwapStdDev = ta.stdev(close, vwapLength)

// Adaptive multiplier based on GCV
multiplier = (gcv / ta.sma(gcv, length)) * vol_multiplier

// Upper and lower bands
upperBand = vwap + (vwapStdDev * multiplier)
lowerBand = vwap - (vwapStdDev * multiplier)

// Plotting VWAP and bands
plot(vwap, title="VWAP", color=color.blue, linewidth=2)
plot(upperBand, title="Upper Band", color=color.green, linewidth=1)
plot(lowerBand, title="Lower Band", color=color.red, linewidth=1)

var barColor = color.black

// Strategy: Enter long above upper band, go to cash below lower band
if (close > upperBand)
    barColor := color.green
    strategy.entry("Long", strategy.long)
else if (close < lowerBand)
    barColor := color.fuchsia
    strategy.close("Long")

barcolor(barColor)