TimeSeriesAverage
TimeSeriesAverage en ProBuilder devuelve una media móvil del precio basada en regresión sobre N bars, que reacciona más rápido que una media simple. Sintaxis y ejemplos.
Sintaxis
TimeSeriesAverage[N](price)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
N | entero | ninguno | Número de bars de la ventana de retroceso. Los valores pequeños siguen el precio de cerca, los valores grandes producen una línea más suave y más lenta. |
price | fuente de precio | ninguno | La serie a promediar. Normalmente close, pero open, high, low, typicalprice o cualquier variable personalizada es aceptada. |
Fórmula
TSMA = value at the current bar of the least squares
regression line fitted to the last N values of priceSe ajusta una línea recta a las últimas N valores de price mediante regresión lineal, y la media toma el valor de esa línea en el bar más reciente. Como el ajuste proyecta la dirección actual de los datos en lugar de ponderar todos los bars por igual, el resultado se ajusta más a una serie en tendencia que una media simple del mismo periodo.
Cómo funciona
En cada bar, la función reajusta la recta de regresión sobre la ventana móvil de las últimas N valores y devuelve el punto final de esa línea. La salida es una serie de precios suavizada en las mismas unidades que la entrada, por lo que puede representarse directamente en el gráfico de precios, compararse con otras medias móviles o usarse como nivel dinámico de soporte y referencia.
Comparado con Average (media móvil simple), el método de series temporales tiene menos retardo en tendencias sostenidas porque el ajuste de regresión extrapola la pendiente de la ventana. La contrapartida es el comportamiento en los puntos de giro: cuando el precio se gira con fuerza, la línea ajustada puede apuntar brevemente en la dirección equivocada o excederse antes de que la ventana se ponga al día.
La elección de N controla el equilibrio entre capacidad de respuesta y estabilidad. Una ventana corta como 10 reacciona en unos pocos bars pero produce más cambios de dirección falsos. Una ventana más larga como 50 o 100 filtra el ruido y es más adecuada para identificar la tendencia de fondo.
Ejemplos
Ejemplo 1, Suavizado básico de 20 bars (Indicador)
// Smooth the closing prices over the last 20 bars
averagePrice = TimeSeriesAverage[20](close)
RETURN averagePriceCalcula la media móvil de series temporales de 20 periodos del cierre y la representa. La línea se mantiene cerca del precio en las tendencias y filtra el ruido de bar a bar.
Ejemplo 2, Cruce de medias rápida y lenta (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
ENDIFUna estrategia clásica de doble media móvil. Usar TimeSeriesAverage para la línea rápida dispara los cruces algo antes de lo que lo haría una media simple del mismo periodo.
Ejemplo 3, Instrumentos que cotizan por encima de su media (ProScreener)
tsa = TimeSeriesAverage[20](close)
SCREENER[close > tsa] ((close / tsa - 1) * 100 AS "Pct above TSA")Devuelve los instrumentos cuyo último precio está por encima de su media de series temporales de 20 periodos, ordenados por la distancia porcentual entre el precio y la línea.
Interpretación
Las lecturas siguen las convenciones habituales de las medias móviles. Un precio por encima de una línea ascendente indica una tendencia alcista, un precio por debajo de una línea descendente indica una tendencia bajista. Los cruces entre el precio y la línea, o entre una media rápida y una lenta, se utilizan habitualmente como señales de cambio de tendencia. Como el extremo de la regresión reacciona rápidamente, las señales aparecen antes que con una media simple, pero incluyen más whipsaws en mercados laterales. Confirmar con una condición de pendiente, por ejemplo que la línea esté más alta que cinco bars atrás, filtra parte de ese ruido.
Errores y trampas habituales
- Tipo de corchete incorrecto.
TimeSeriesAverage(20, close)no compila. El periodo va entre corchetes y la fuente de precio entre paréntesis:TimeSeriesAverage[20](close). - Sobrepasamiento en los giros. El ajuste de regresión extrapola la pendiente actual, por lo que, tras un giro brusco, la línea puede seguir moviéndose en la dirección anterior durante algunas bars. Las señales tomadas en los puntos de giro exactos son menos fiables que con medias más lentas.
- Historial insuficiente. El primero
Nbars de un gráfico no contienen una ventana completa, por lo que los primeros valores no son fiables. Los backtests deberían excluir el periodo de calentamiento o precargar suficientes bars. - Periodo demasiado corto. Valores como
TimeSeriesAverage[3]siguen al precio casi tick a tick y generan cambios de dirección constantes. Para identificar tendencias, lo habitual son periodos de 20 o más.
Instrucciones relacionadas
Average, media móvil simple, el método de suavizado de referencia.ExponentialAverage, ponderación exponencial con menos retraso que una media simple.WeightedAverage, media móvil ponderada linealmente.TriangularAverage, media móvil simple doblemente suavizada.EndPointAverage, media de extremo de regresión estrechamente relacionada.LinearRegression, el ajuste de mínimos cuadrados subyacente como herramienta independiente.HullAverage, media móvil de bajo retraso construida a partir de medias ponderadas.ZLEMA, media móvil exponencial sin retardo.