ExponentialAverage
ExponentialAverage en ProBuilder renvoie la moyenne mobile exponentielle (EMA) d'un prix ou d'une série sur N bars. Syntaxe, formule, exemples et pièges.
Syntaxe
ExponentialAverage[N](price)Paramètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
N | entier | 20 | Période de la moyenne. Détermine le facteur de lissage 2 / (N + 1). Les réglages courants sont 9, 12, 21, 26, 50 et 200. |
price | source de prix | close | La série à lisser. Accepte toute constante de prix ou variable numérique, y compris d'autres indicateurs. |
Formule
EMA(t) = alpha * price(t) + (1 - alpha) * EMA(t-1)
where alpha = 2 / (N + 1)Chaque nouvelle valeur mélange le prix courant avec l'EMA précédente. Le poids d'une bar donnée décroît exponentiellement avec son ancienneté, d'où le nom. Contrairement à une moyenne simple, chaque bar passée conserve une petite influence résiduelle.
Comment ça marche
Une moyenne mobile simple traite toutes les N bars à égalité, si bien qu'un ancien bar qui sort de la fenêtre peut déplacer la ligne autant qu'un nouveau prix qui arrive. La moyenne exponentielle supprime cet artefact en pondérant les bars géométriquement : la dernière clôture compte le plus, celle d'avant un peu moins, et ainsi de suite. L'effet pratique est un retard moindre pour la même période nominale.
La définition récursive implique que le calcul dépend des valeurs antérieures. ProRealTime™ amorce la série à partir de la première bar chargée, les premières valeurs après le début des données sont donc moins significatives. Sur des fenêtres de données courtes, ou en ProOrder avec un faible préchargement de bars, les premières lectures peuvent différer de la même EMA tracée sur un graphique plus long.
ExponentialAverage[N](price) produit le même résultat que Average[N,1](price) ; la fonction dédiée rend simplement l'intention explicite. Comme toutes les moyennes ProBuilder, elle accepte n'importe quelle série numérique, elle est donc fréquemment utilisée pour lisser des oscillateurs plutôt que le prix brut.
Exemples
Exemple 1, Lisser le RSI (Indicateur)
// Smooth a 14-period RSI with a 10-period EMA
i1 = RSI[14]
i2 = ExponentialAverage[10](i1)
RETURN i1 as "RSI", i2 coloured(147,112,216) as "smoothed RSI"Applique une moyenne exponentielle à 10 périodes au RSI, en traçant à la fois l'oscillateur brut et sa version lissée en violet. L'EMA maintient la ligne lissée plus proche de la série brute qu'une SMA de même longueur ne le ferait.
Exemple 2, Stratégie de croisement d'EMA (ProOrder)
// Hold long while the 12-period EMA is above the 26-period EMA
fastEMA = ExponentialAverage[12](close)
slowEMA = ExponentialAverage[26](close)
IF fastEMA CROSSES OVER slowEMA THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF fastEMA CROSSES UNDER slowEMA AND LongOnMarket THEN
SELL AT MARKET
ENDIFUtilise les périodes 12 et 26 familières du MACD. Le retard réduit des moyennes exponentielles déclenche les entrées et les sorties plus tôt que le croisement de SMA équivalent, au prix de davantage de faux mouvements dans des conditions hachées.
Exemple 3, Clôture croisant au-dessus de l'EMA 50 (ProScreener)
// List instruments whose close just crossed above the 50-period EMA
ema50 = ExponentialAverage[50](close)
SCREENER[close CROSSES OVER ema50](close AS "Close")Ne renvoie que les instruments dont la dernière clôture est passée de dessous à dessus la moyenne exponentielle à 50 périodes sur la bar en cours, un scan de changement de momentum.
Interprétation
Le prix face à l'EMA. Un prix qui se maintient au-dessus d'une EMA haussière indique une tendance haussière sur cet horizon ; un prix sous une EMA baissière, une tendance baissière. En raison de son retard réduit, l'EMA colle au prix de plus près qu'une SMA, elle est donc souvent préférée comme ligne de tendance suiveuse sur les unités de temps plus courtes.
Croisements. Les croisements d'une EMA rapide au-dessus d'une EMA lente signalent un changement de momentum, le mécanisme derrière la ligne MACD. Les croisements arrivent plus tôt qu'avec des moyennes simples mais s'inversent aussi plus souvent ; le compromis se joue entre réactivité et faux signaux.
Pente. Une EMA qui s'aplatit signale un momentum qui s'essouffle avant qu'un croisement ne survienne, et constitue souvent l'avertissement le plus précoce.
Erreurs et pièges courants
- Mauvais type de crochets.
ExponentialAverage(10, close)provoque une erreur de syntaxe. La période va entre crochets, la série entre parenthèses :ExponentialAverage[10](close). - Dépendance à l'historique. La formule récursive fait que les premières barres de données chargées produisent une EMA instable. Dans ProOrder, augmentez
PRELOADBARSlorsqu'une EMA de longue période pilote la logique ; sur les graphiques, les valeurs proches du bord gauche doivent être ignorées. - Comparer une EMA et une SMA de même période. Un
N-périodes a une mémoire effective plus courte qu'uneNpériodes en SMA. Traduire une stratégie de l'une à l'autre en conservant la même période change son comportement. - S'attendre à un paramètre de type. Contrairement à
Average, cette fonction ne prend pas de second argument entre crochets.ExponentialAverage[10,1](close)est invalide ; le type est déjà fixé.
Instructions liées
Average, moyenne mobile générale ;Average[N,1]est la même EMA.WeightedAverage, pondération linéaire, un intermédiaire entre la SMA et l'EMA.WilderAverage, variante EMA avecalpha = 1 / N, utilisée dans le RSI et l'ATR.ZLEMA, moyenne mobile exponentielle zero-lag.DEMA, moyenne mobile exponentielle double, réduction de retard supplémentaire.TEMA, moyenne mobile exponentielle triple.HullAverage, alternative à faible retard construite à partir de moyennes pondérées.RSI, oscillateur couramment lissé par une EMA, comme dans l'Exemple 1.