Únete hoy
Indicadores/probuilder · probacktest · proorder · proscreener

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

probuilder
TimeSeriesAverage[N](price)

Parámetros

NombreTipoPor defectoDescripción
NenteroningunoNú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.
pricefuente de precioningunoLa serie a promediar. Normalmente close, pero open, high, low, typicalprice o cualquier variable personalizada es aceptada.

Fórmula

código
TSMA = value at the current bar of the least squares
       regression line fitted to the last N values of price

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

probuilder
// Smooth the closing prices over the last 20 bars
averagePrice = TimeSeriesAverage[20](close)
RETURN averagePrice

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

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

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

probuilder
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 N bars 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.
  • 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.