Volume Weighted Average Price (vwap)

Le Volume Weighted Average Price (VWAP) produit la moyenne de sa source depuis une ancre en pondérant chaque bougie par son volume. Les bougies les plus échangées influencent donc davantage la série. Le résultat conserve l’unité de la source et représente le niveau moyen pondéré de toute la période accumulée.

Le calcul est cumulatif, et non glissant : il intègre chaque bougie depuis la dernière ancre jusqu’à la prochaine réinitialisation. Sans anchor, une nouvelle période commence sur la première bougie chargée puis au début de chaque journée UTC. Lorsque anchor est renseigné, cette ancre personnalisée remplace le découpage quotidien et chaque déclenchement ouvre une nouvelle période. La position de la source au-dessus ou en dessous du VWAP exprime son écart par rapport au niveau moyen pondéré depuis l’ancre.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[vwap]]. Chaque bloc produit une série numérique distincte, identifiée par la valeur de son champ id.

Lorsqu’un paramètre accepte plusieurs valeurs, Whale-E matérialise une variante par combinaison. Pour un bloc VWAP, le nombre de variantes correspond au produit du nombre de symboles, de timeframes, de sources et d’ancres. Une valeur omise compte comme une seule possibilité héritée ou par défaut.

Le volume est toujours lu implicitement depuis les bougies du symbole et du timeframe du bloc. Le bloc n’accepte pas de paramètre volume.

Exemples

Configuration minimale

Ce bloc utilise la source hlc3 et l’ancre quotidienne par défaut.

[[vwap]]
id = "daily_vwap"

Source personnalisée

Ce bloc pondère le prix de clôture par le volume au lieu d’utiliser hlc3.

[[vwap]]
id     = "close_vwap"
source = "close"

Ancre personnalisée

Le bloc [[custom_series]] produit ici une série qui vaut vrai lorsque la clôture dépasse l’ouverture. Chaque valeur vraie réinitialise anchored_vwap. Cet exemple illustre la syntaxe d’une ancre ; dans une stratégie réelle, la série peut représenter l’événement de réinitialisation adapté au scénario testé.

[[custom_series]]
id      = "reset_signal"
formula = "close > open"

[[vwap]]
id     = "anchored_vwap"
source = "close"
anchor = "reset_signal"

Plusieurs ancres personnalisées

Ce bloc crée deux variantes de anchored_vwap. La première utilise reset_up et la seconde reset_down. Dans chaque variante, la variable textuelle anchored_vwap.anchor indique l’ancre sélectionnée.

[[custom_series]]
id      = "reset_up"
formula = "close > open"

[[custom_series]]
id      = "reset_down"
formula = "close < open"

[[vwap]]
id     = "anchored_vwap"
source = "close"
anchor = ["reset_up", "reset_down"]

Filtre par rapport au VWAP

Cette condition laisse passer la stratégie lorsque la clôture se situe au-dessus du VWAP quotidien.

[[vwap]]
id = "daily_vwap"

[[condition]]
id            = "above_vwap"
condition     = "close > daily_vwap"
next_block_id = "..."

Symbole et timeframe dédiés

Ce bloc calcule un VWAP journalier sur les bougies horaires de BINANCE:ETHUSDT. La réinitialisation quotidienne reste fondée sur les journées UTC du timeframe choisi. Voir la page Exchanges, Symboles et Timeframes pour les règles d’alignement avec le symbole et le timeframe principaux.

[[vwap]]
id        = "eth_vwap"
symbol    = "BINANCE:ETHUSDT"
timeframe = "60"

Paramètres

ParamètreDescription
id
 Texte
 Obligatoire
Nom unique identifiant la série VWAP produite par le bloc.
source
 Texte
 ou Tableau
 Optionnel
Série numérique pondérée par le volume.
Chaque valeur peut être une source standard (open, close, high, low, hl2, hlc3, ohlc4, hlcc4, volume) ou l’id d’un autre indicateur.
Si un tableau est fourni, le bloc crée une variante pour chaque source.
Valeur par défaut : "hlc3".
anchor
 Texte
 ou Tableau
 Optionnel
Identifiant d’une série numérique qui déclenche la réinitialisation du VWAP. La valeur zéro ou NaN est fausse ; toute autre valeur est vraie. La bougie qui déclenche l’ancre est la première bougie du nouveau calcul.
Si un tableau est fourni, le bloc crée une variante pour chaque ancre. Ces variantes se combinent avec celles de source, symbol et timeframe.
Si anchor est omis ou si le tableau est vide, le bloc utilise une ancre quotidienne UTC.
symbol
 Texte
 ou Tableau
 Optionnel
Symbole(s) de marché fournissant le volume implicite et les sources standard utilisées par le bloc.
Si symbol est omis, le bloc hérite du symbole principal défini dans [backtest].
Pour le format, les tableaux et les règles d’alignement, voir Exchanges, Symboles et Timeframes.
timeframe
 Texte
 ou Tableau
 Optionnel
Timeframe sur lequel le VWAP, sa source, son volume et son ancre sont alignés.
Si timeframe est omis, le calcul utilise le timeframe principal de la grille défini dans [backtest].
Pour les formats acceptés et les règles d’alignement entre timeframes, voir Exchanges, Symboles et Timeframes.

Variables disponibles

Le bloc VWAP expose sa série numérique ainsi que les métadonnées de ses entrées, de son symbole et de son timeframe.

Supposons le bloc configuré ainsi :

[[vwap]]
id     = "anchored_vwap"
source = "close"
anchor = "reset_signal"

Alors :

VariableDescription
anchored_vwap ou anchored_vwap[0]
Décimal
Valeur actuelle du VWAP.
anchored_vwap[n]
Décimal
Valeur du VWAP il y a n bougies.
anchored_vwap.source
Texte
Nom de la série pondérée par le volume.
anchored_vwap.volume_source
Texte
Nom de la série de volume implicite utilisée pour le calcul.
anchored_vwap.anchor
Texte
Nom de la série d’ancrage de la variante active. Cette variable existe uniquement lorsqu’au moins une ancre personnalisée est renseignée.
anchored_vwap.symbol
Texte
Symbole de marché utilisé par la série VWAP.
anchored_vwap.timeframe
Texte
Timeframe utilisé par la série VWAP.

Notes

  • Le VWAP est calculé par somme(source × volume) / somme(volume). La bougie qui déclenche une ancre est incluse dans le nouveau cumul.
  • Avec une ancre personnalisée, la série vaut NaN avant le premier déclenchement. Si la source ou le volume devient NaN après le démarrage, le cumul reste NaN jusqu’à la prochaine ancre.
  • L’ancre quotidienne implicite ne peut pas être incluse dans un tableau d’ancres personnalisées. Des blocs [[vwap]] distincts sont nécessaires pour exposer les deux types d’ancrage dans une même stratégie.
  • Les variables numériques se combinent librement dans les expressions : arithmétique, comparaisons et opérateurs logiques.
  • Les variables textuelles sont des chaînes destinées aux comparaisons d’égalité et d’inégalité.