TimeSeriesAverage
TimeSeriesAverage dans ProBuilder renvoie une moyenne mobile fondée sur la régression du prix sur N bars, réagissant plus vite qu'une moyenne simple. Syntaxe et exemples.
Syntaxe
TimeSeriesAverage[N](price)Paramètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
N | entier | aucun | Nombre de bars dans la fenêtre d'observation. Les petites valeurs suivent le prix de près, les grandes valeurs produisent une ligne plus lisse et plus lente. |
price | source de prix | aucun | La série à moyenner. Typiquement close, mais open, high, low, typicalprice ou toute variable personnalisée est acceptée. |
Formule
TSMA = value at the current bar of the least squares
regression line fitted to the last N values of priceUne droite est ajustée sur les derniers N valeurs de price par régression linéaire, et la moyenne prend la valeur de cette droite sur le bar le plus récent. Comme l'ajustement projette la direction actuelle des données au lieu de pondérer tous les bars à égalité, le résultat colle de plus près à une série en tendance qu'une moyenne simple de même période.
Comment ça marche
Sur chaque bar, la fonction réajuste la droite de régression sur la fenêtre glissante des N valeurs et renvoie le point d'extrémité de cette droite. La sortie est une série de prix lissée, dans les mêmes unités que l'entrée, elle peut donc être tracée directement sur le graphique de prix, comparée à d'autres moyennes mobiles, ou utilisée comme niveau de support et de référence dynamique.
Comparé à Average (moyenne mobile simple), la méthode des séries temporelles présente moins de retard dans les tendances durables parce que l'ajustement de régression extrapole la pente de la fenêtre. La contrepartie est le comportement aux points de retournement : quand le prix se retourne brutalement, la droite ajustée peut brièvement pointer dans le mauvais sens ou dépasser avant que la fenêtre ne rattrape.
Le choix de N contrôle l'équilibre entre réactivité et stabilité. Une fenêtre courte comme 10 réagit en quelques bars mais produit davantage de faux changements de direction. Une fenêtre plus longue comme 50 ou 100 filtre le bruit et convient mieux à l'identification de la tendance de fond.
Exemples
Exemple 1, Lissage de base sur 20 bars (Indicateur)
// Smooth the closing prices over the last 20 bars
averagePrice = TimeSeriesAverage[20](close)
RETURN averagePriceCalcule la moyenne mobile de série temporelle sur 20 périodes de la clôture et la trace. La ligne reste proche du prix dans les tendances tout en filtrant le bruit d'un bar à l'autre.
Exemple 2, Croisement de moyennes rapide et lente (ProOrder)
// Regression based fast line against a simple slow line
fastLine = TimeSeriesAverage[20](close)
slowLine = Average[50](close)
IF fastLine CROSSES OVER slowLine THEN
BUY 1 CONTRACT AT MARKET
ELSIF fastLine CROSSES UNDER slowLine THEN
SELL AT MARKET
ENDIFUne stratégie classique à deux moyennes mobiles. En utilisant TimeSeriesAverage pour la ligne rapide déclenche les croisements légèrement plus tôt qu'une moyenne simple de même période.
Exemple 3, Instruments s'échangeant au-dessus de leur moyenne (ProScreener)
tsa = TimeSeriesAverage[20](close)
SCREENER[close > tsa] ((close / tsa - 1) * 100 AS "Pct above TSA")Renvoie les instruments dont le dernier prix est au-dessus de leur moyenne de série temporelle sur 20 périodes, triés par la distance en pourcentage entre le prix et la ligne.
Interprétation
Les lectures suivent les conventions habituelles des moyennes mobiles. Un prix au-dessus d'une ligne qui monte indique une tendance haussière, un prix en dessous d'une ligne qui descend indique une tendance baissière. Les croisements entre le prix et la ligne, ou entre une moyenne rapide et une moyenne lente, sont couramment utilisés comme signaux de changement de tendance. Parce que le point final de régression réagit rapidement, les signaux apparaissent plus tôt qu'avec une moyenne simple mais comportent davantage de faux signaux dans les marchés sans direction. Confirmer avec une condition de pente, par exemple la ligne plus haute qu'il y a cinq bars, filtre une partie de ce bruit.
Erreurs et pièges courants
- Mauvais type de crochets.
TimeSeriesAverage(20, close)ne compile pas. La période va entre crochets et la source de prix entre parenthèses :TimeSeriesAverage[20](close). - Dépassement lors des retournements. L'ajustement de régression extrapole la pente actuelle : après un retournement brutal, la ligne peut donc continuer à évoluer dans l'ancienne direction pendant quelques bars. Les signaux pris aux points de retournement exacts sont moins fiables qu'avec des moyennes plus lentes.
- Historique insuffisant. Le premier
Nbars d'un graphique ne contiennent pas une fenêtre complète, les premières valeurs ne sont donc pas fiables. Les backtests doivent exclure la période de préchauffe ou précharger assez de bars. - Période trop courte. Des valeurs telles que
TimeSeriesAverage[3]suivent le prix presque tick par tick et génèrent des changements de direction constants. Pour identifier une tendance, des périodes de 20 ou plus sont habituelles.
Instructions liées
Average, moyenne mobile simple, la méthode de lissage de référence.ExponentialAverage, pondération exponentielle avec moins de retard qu'une moyenne simple.WeightedAverage, moyenne mobile pondérée linéairement.TriangularAverage, moyenne mobile simple doublement lissée.EndPointAverage, moyenne de point final de régression très proche.LinearRegression, l'ajustement des moindres carrés sous-jacent en tant qu'outil autonome.HullAverage, moyenne mobile à faible retard construite à partir de moyennes pondérées.ZLEMA, moyenne mobile exponentielle zero-lag.