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

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

probuilder
Average[N](price)
Average[N,M](price)

Paramètres

NomTypePar défautDescription
Nentier20Nombre de bars dans la moyenne. Les périodes courtes suivent le prix de près ; les périodes longues lissent davantage et retardent davantage.
Mentier0Sélecteur de type de moyenne facultatif. Voir le tableau ci-dessous.
pricesource de prixcloseLa série à moyenner. Accepte toute constante de prix ou variable personnalisée, y compris d'autres indicateurs.

Valeurs pour M:

MType de moyenne
0Moyenne mobile simple (SMA)
1Moyenne mobile exponentielle (EMA)
2Moyenne mobile pondérée (WMA)
3Moyenne mobile de Wilder
4Moyenne mobile triangulaire
5Moyenne mobile End Point
6Moyenne mobile Time Series
7Moyenne mobile de Hull (ProRealTime™ v11 et ultérieur)
8Moyenne mobile Zero-Lag (ProRealTime™ v11 et ultérieur)

Formule

code
SMA = (price + price[1] + ... + price[N-1]) / N

Avec 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)

probuilder
// 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)

probuilder
// 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
ENDIF

La 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)

probuilder
// 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. M en 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 ,1 est 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.
  • 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é avec Average.