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ètre | Description |
|---|---|
idTexte Obligatoire | Nom unique identifiant la série VWAP produite par le bloc. |
sourceTexte 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". |
anchorTexte 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. |
symbolTexte 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. |
timeframeTexte 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 :
| Variable | Description |
|---|---|
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.sourceTexte | Nom de la série pondérée par le volume. |
anchored_vwap.volume_sourceTexte | Nom de la série de volume implicite utilisée pour le calcul. |
anchored_vwap.anchorTexte | 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.symbolTexte | Symbole de marché utilisé par la série VWAP. |
anchored_vwap.timeframeTexte | 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
NaNavant le premier déclenchement. Si la source ou le volume devientNaNaprès le démarrage, le cumul resteNaNjusqu’à 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é.