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

Bandes VWAP adaptatives avec stratégie de suivi dynamique de la volatilité de classe Garman

Auteur:ChaoZhang est là., Date: 2024-12-20 à 14h51
Les étiquettes:VWAPLe GKVMaladie sexuellement transmissible- Je vous en prie.VWMA

img

Résumé

Il s'agit d'une stratégie de négociation adaptative basée sur le prix moyen pondéré par volume (VWAP) et la volatilité de la classe Garman (GKV). La stratégie ajuste dynamiquement les bandes d'écart type de VWAP grâce à la volatilité pour atteindre un suivi intelligent des tendances du marché. Elle ouvre des positions longues lorsque le prix dépasse la bande supérieure et ferme des positions lorsqu'il dépasse la bande inférieure, avec une volatilité plus élevée conduisant à des seuils de rupture plus élevés et une volatilité plus faible conduisant à des seuils plus bas.

Principe de stratégie

Le noyau de la stratégie combine le VWAP avec la volatilité du GKV. Il calcule d'abord le VWAP comme le pivot de prix, puis construit des bandes en utilisant l'écart type des prix de clôture. La clé est d'utiliser la formule GKV pour le calcul de la volatilité, qui prend en compte quatre points de prix (ouverture, hauteur, basseur, fermeture) et est plus précise que les mesures de volatilité traditionnelles.

Les avantages de la stratégie

  1. Combine les caractéristiques de rapport volume-prix et de volatilité pour des signaux plus fiables
  2. Le réglage adaptatif de la largeur de bande réduit les interférences sonores
  3. Utilise la volatilité du GKV pour une capture plus précise de la microstructure du marché
  4. Logique de calcul simple et claire, facile à mettre en œuvre et à entretenir
  5. Convient à différents environnements de marché avec une grande universalité

Risques stratégiques

  1. Peut négocier fréquemment sur différents marchés, augmentant les coûts
  2. Sensitifs à la durée et à la période de volatilité du VWAP
  3. Peut réagir lentement à des renversements rapides de tendance
  4. Exige des données de marché en temps réel avec des exigences de qualité élevées Suggestions de contrôle des risques:
  • Définir des niveaux de stop-loss raisonnables
  • Optimiser les paramètres pour les différents marchés
  • Ajouter des indicateurs de confirmation de tendance
  • Dimensionnement de la position de commande

Directions d'optimisation de la stratégie

  1. Introduction d'une analyse multi-temporelle pour améliorer la fiabilité du signal
  2. Ajouter la dimension d'analyse du volume pour confirmer la validité de la rupture
  3. Optimiser la méthode de calcul de la volatilité, envisager l'introduction de l'EWMA
  4. Ajouter des filtres de force de tendance
  5. Considérer l'ajout de mécanismes de stop-loss dynamiques Ces optimisations peuvent améliorer la stabilité de la stratégie et la qualité des rendements.

Résumé

La stratégie réalise un suivi dynamique du marché grâce à une combinaison innovante de volatilité VWAP et GKV. Sa nature adaptative permet une performance stable dans différents environnements de marché.


/*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)


Relationnée

Plus de