Average
Average en ProBuilder renvoie une moyenne mobile de n'importe quelle série, avec un argument de type facultatif sélectionnant SMA, EMA, WMA, Wilder, Hull, et d'autres. Exemples.
Syntaxe
Average[N](price)
Average[N,M](price)Paramètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
N | entier | 20 | Nombre de bars dans la moyenne. Les périodes courtes suivent le prix de près ; les périodes longues lissent davantage et retardent davantage. |
M | entier | 0 | Sélecteur de type de moyenne facultatif. Voir le tableau ci-dessous. |
price | source de prix | close | La série à moyenner. Accepte toute constante de prix ou variable personnalisée, y compris d'autres indicateurs. |
Valeurs pour M:
M | Type de moyenne |
|---|---|
| 0 | Moyenne mobile simple (SMA) |
| 1 | Moyenne mobile exponentielle (EMA) |
| 2 | Moyenne mobile pondérée (WMA) |
| 3 | Moyenne mobile de Wilder |
| 4 | Moyenne mobile triangulaire |
| 5 | Moyenne mobile End Point |
| 6 | Moyenne mobile Time Series |
| 7 | Moyenne mobile de Hull (ProRealTime™ v11 et ultérieur) |
| 8 | Moyenne mobile Zero-Lag (ProRealTime™ v11 et ultérieur) |
Formule
SMA = (price + price[1] + ... + price[N-1]) / NAvec M omis ou 0, le résultat est la moyenne arithmétique des derniers N valeurs. Chaque autre M valeur applique le schéma de pondération du type de moyenne correspondant ; les instructions dédiées (ExponentialAverage, WeightedAverage, WilderAverage, etc.) documentent ces définitions.
Comment ça marche
Average est la fonction de lissage généraliste de ProBuilder. Sur chaque bar, elle recalcule la moyenne des derniers N valeurs de la série donnée, produisant une ligne qui filtre le bruit d'un bar à l'autre au prix d'une réaction aux changements retardée proportionnellement à N.
Le deuxième argument entre crochets transforme une fonction en neuf. Average[20,1](close) est équivalent à ExponentialAverage[20](close), Average[20,3](close) à WilderAverage[20](close), et ainsi de suite. C'est pratique lorsque le type de moyenne est lui-même une variable, par exemple lorsqu'un optimiseur ou un réglage d'indicateur doit basculer entre SMA et EMA sans réécrire le code.
L'entrée n'a pas besoin d'être un prix. Toute série numérique fonctionne, donc Average est couramment utilisée pour lisser les oscillateurs, le volume, les spreads ou la sortie d'autres calculs.
Exemples
Exemple 1, Moyennes simples rapide et lente (Indicateur)
// Plot a 7-period and a 20-period simple moving average
FastMA = Average[7](Close)
SlowMA = Average[20](Close)
RETURN FastMA coloured(221,33,33), SlowMA coloured(35,194,57)Trace deux SMA de la clôture, la rapide en rouge et la lente en vert. Le couple visualise le momentum de court terme face à la dérive plus large.
Exemple 2, Système de croisement de moyennes mobiles (ProOrder)
// Reverse position on each crossover of the 20 and 50 SMA
fastMA = Average[20](close)
slowMA = Average[50](close)
IF fastMA CROSSES OVER slowMA THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF fastMA CROSSES UNDER slowMA AND LongOnMarket THEN
SELL AT MARKET
ENDIFLa stratégie conserve une position long tant que la moyenne à 20 périodes est au-dessus de la moyenne à 50 périodes et sort lorsque la relation s'inverse, le modèle minimal d'une logique de suivi de tendance.
Exemple 3, Distance à la moyenne 200 bars (ProScreener)
// List instruments trading above their 200-period average
ma200 = Average[200](close)
gap = (close / ma200 - 1) * 100
SCREENER[close > ma200](gap AS "% above MA200")Filtre la liste de suivi pour ne garder que les instruments au-dessus de leur moyenne de long terme et les classe selon l'écart en pourcentage, un simple scan de force relative.
Interprétation
Le prix face à la moyenne. Un prix qui se maintient au-dessus d'une moyenne haussière est la définition standard d'une tendance haussière sur cet horizon ; un prix sous une moyenne baissière, d'une tendance baissière. Les moyennes à 50 et 200 périodes sont les lignes de référence les plus suivies.
Croisements. Une moyenne rapide qui croise à la hausse une moyenne lente signale que les prix récents dépassent les plus anciens, un changement de momentum. Les croisements sont retardés par construction, ils confirment donc les tendances plutôt qu'ils ne les anticipent, et ils multiplient les faux signaux dans les marchés sans direction.
Pente. La direction de la moyenne elle-même est souvent plus informative qu'un croisement isolé. Une moyenne plate indique un marché sans tendance, où les signaux de croisement se dégradent fortement.
Erreurs et pièges courants
- Mauvais type de crochets.
Average(20, close)déclenche une erreur de syntaxe. La période et le type vont entre crochets, la série entre parenthèses :Average[20,1](close). - Sélecteur de type invalide.
Men dehors de 0 à 8 n'est pas un type de moyenne valide. Les valeurs 7 et 8 exigent en outre ProRealTime™ v11 ou une version ultérieure. - Supposer l'EMA par défaut. Avec un seul argument, la fonction renvoie toujours une moyenne simple. Le code porté depuis des plateformes dont la valeur par défaut est exponentielle se comportera différemment jusqu'à ce que
,1est ajouté. - Les systèmes à croisement dans les marchés sans tendance. Deux moyennes d'une série sans direction se croisent à répétition. Sans filtre de tendance ou de volatilité, le modèle de croisement de l'exemple 2 accumule les trades perdants dans les marchés plats.
Instructions liées
ExponentialAverage, EMA dédiée, équivalente àM = 1.WeightedAverage, moyenne pondérée linéairement, équivalente àM = 2.WilderAverage, lissage de Wilder, équivalent àM = 3.TriangularAverage, moyenne doublement lissée, équivalente àM = 4.EndPointAverage, moyenne du point final de régression, équivalente àM = 5.TimeSeriesAverage, moyenne de la série temporelle, équivalent àM = 6.HullAverage, moyenne de Hull à faible retard, équivalente àM = 7.ZLEMA, moyenne exponentielle à décalage nul, équivalente àM = 8.RSI, oscillateur fréquemment lissé avecAverage.