Rejoignez-nous
Indicateurs/probuilder · probacktest · proorder · proscreener

WeightedAverage

WeightedAverage en ProBuilder renvoie la moyenne mobile pondérée (WMA) d'un prix sur N bars, en donnant plus de poids aux bars récents. Syntaxe, formule, exemples.

Syntaxe

probuilder
WeightedAverage[N](price)

Paramètres

NomTypePar défautDescription
Nentier20Période d'observation en bars. Détermine à la fois la longueur de la fenêtre et le schéma de pondération.
pricesource de prixcloseLa série moyennée. Accepte close, open, high, low, typicalprice, medianprice, ou toute variable personnalisée.

Formule

code
WMA = (N*price + (N-1)*price[1] + ... + 2*price[N-2] + 1*price[N-1])
      / (N + (N-1) + ... + 2 + 1)

Le dénominateur est la somme des poids, N * (N + 1) / 2. Les poids décroissent linéairement de la bar la plus récente à la plus ancienne.

Comment ça marche

Une moyenne mobile simple traite tous les bars de la fenêtre à égalité, si bien qu'un mouvement important qui entre dans la fenêtre ou en sort décale la ligne du même montant, peu importe quand il s'est produit. La moyenne mobile pondérée multiplie en revanche chaque bar par sa position dans la fenêtre : le dernier bar compte N fois plus que la plus ancienne. Le résultat est une ligne qui épouse de plus près le prix actuel et qui tourne plus tôt aux points de swing.

Comparé à ExponentialAverage, la WMA utilise une fenêtre stricte : les bars plus anciens que N périodes n'ont aucune influence, alors qu'une EMA donne à tous les bars passés un poids faible décroissant exponentiellement. En pratique, les deux se comportent de façon similaire, la WMA étant légèrement plus sensible à ce qui se passe au bord de sa fenêtre.

La WMA est aussi une brique de base pour d'autres moyennes. HullAverage, par exemple, combine plusieurs moyennes pondérées de longueurs différentes pour réduire encore le retard.

Exemples

Exemple 1, WMA de base à 20 périodes (Indicateur)

probuilder
// 20-period weighted moving average of closing prices
myWMA = WeightedAverage[20](close)
RETURN myWMA

Calcule et trace la moyenne mobile pondérée à 20 bars de la clôture, l'usage standard conservé de la documentation source.

Exemple 2, Croisement WMA contre SMA (ProBacktest)

probuilder
// Fast weighted average against a slower simple average
fastWMA = WeightedAverage[10](close)
slowSMA = Average[40](close)

IF fastWMA CROSSES OVER slowSMA THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF fastWMA CROSSES UNDER slowSMA THEN
  SELL AT MARKET
ENDIF

La moyenne pondérée sert de ligne rapide réactive dans un système de croisement classique, entrant long lorsqu'elle croise au-dessus de la moyenne simple plus lente et sortant au croisement inverse.

Exemple 3, Screening d'un prix au-dessus d'une WMA ascendante (ProScreener)

probuilder
// Instruments trading above a rising 30-bar weighted average
wma = WeightedAverage[30](close)
rising = wma > wma[5]
SCREENER[close > wma AND rising](((close / wma) - 1) * 100 AS "% above WMA")

Ne garde que les instruments dont le prix est au-dessus d'une WMA à 30 bars elle-même plus haute que cinq bars plus tôt, et les classe selon leur distance au-dessus de la ligne.

Interprétation

Les moyennes pondérées se lisent comme n'importe quelle moyenne mobile. Un prix au-dessus d'une WMA ascendante indique une tendance haussière, un prix sous une WMA descendante indique une tendance baissière, et les croisements entre le prix et la ligne, ou entre deux WMA de longueurs différentes, servent de signaux de changement de tendance.

En raison de sa pondération concentrée en début de série, une WMA de longueur N se comporte à peu près comme une moyenne simple plus courte : elle tourne plus tôt mais produit aussi plus de faux signaux dans les marchés sans tendance. Choisir entre Average, WeightedAverage, et ExponentialAverage est surtout un compromis entre retard et bruit, pas une différence de nature.

Erreurs et pièges courants

  • Mauvais types de crochets. La période se place entre crochets et la source de prix entre parenthèses : WeightedAverage[20](close). Écrire WeightedAverage(20, close) est une erreur de syntaxe.
  • S'attendre à une régularité comparable à la SMA. Pour le même N, une WMA est nettement plus nerveuse qu'une moyenne simple. Lors du remplacement Average[N] avec WeightedAverage[N] dans un système existant, la fréquence des signaux augmente et les résultats du backtest changent.
  • Le confondre avec WeightedClose. WeightedClose est une constante de prix sur un seul bar, (high + low + 2 * close) / 4. C'est une entrée valide pour cette fonction, mais un concept totalement différent.
  • Une période trop courte. Très petites N valeurs rendent la ligne presque identique au prix brut, ajoutant du calcul sans lissage significatif.
  • Average, moyenne mobile simple à pondérations égales.
  • ExponentialAverage, pondérations décroissant exponentiellement sur tout l'historique.
  • WilderAverage, la moyenne lissée utilisée à l'intérieur du RSI et de l'ATR.
  • HullAverage, moyenne à faible retard construite à partir de moyennes pondérées.
  • TriangularAverage, moyenne doublement lissée avec accent pondéré au centre.
  • TimeSeriesAverage, moyenne mobile basée sur une régression linéaire.
  • ZLEMA, moyenne mobile exponentielle à retard nul.
  • WeightedClose, prix pondéré d'un seul bar souvent utilisé en entrée des moyennes.