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

Variation

Variation en ProBuilder devuelve el cambio porcentual de una serie de precios entre la barra anterior y la barra actual. Sintaxis, fórmula y ejemplos resueltos.

Sintaxis

probuilder
Variation(price)

Parámetros

NombreTipoPor defectoDescripción
pricefuente de precioningunoSerie cuyo cambio porcentual en un bar se devuelve. Acepta close, open, high, low o cualquier variable personalizada.

Fórmula

código
Variation = 100 * (price - price[1]) / price[1]

El resultado es un porcentaje con signo: positivo cuando la serie está más alta que en la barra anterior, negativo cuando está más baja, cero cuando no cambia.

Cómo funciona

En cada bar, la función compara el valor actual de la serie dada con su valor un bar antes y expresa la diferencia como porcentaje del valor anterior. Es el caso particular de un solo bar de una tasa de cambio; ROC generaliza la misma idea a un N bars de retroceso.

Como el resultado es un porcentaje, es directamente comparable entre instrumentos con distintos niveles de precio, algo que las diferencias en bruto no permiten. Un movimiento diario del 2 por ciento significa lo mismo en un índice a 18000 que en una acción a 40. Esto hace Variation un bloque de construcción natural para screeners que clasifican mercados por movimiento diario, y para el trabajo de volatilidad: la desviación típica de las variaciones de un bar es una estimación simple de volatilidad realizada.

La serie es ruidosa por construcción, cada barra produce una nueva lectura independiente. Suavizarla con una media móvil, o encajarla en un canal de desviación típica como en el primer ejemplo, separa las fluctuaciones ordinarias de los movimientos estadísticamente inusuales.

Ejemplos

Ejemplo 1, Variation con una banda de umbral adaptativa (Indicador)

probuilder
// One-bar percentage change of the high price
var = Variation(high)
// Smooth the changes, then build a 3 standard deviation band around them
averagingvar = 3 * STD[20](exponentialaverage[20](var))
RETURN var, averagingvar

Dibuja la variación porcentual de los máximos de bar a bar junto con un umbral igual a tres desviaciones típicas de sus valores suavizados. Barras donde var supera la banda marcan movimientos anormalmente grandes.

Ejemplo 2, Escaneo de los mayores movimientos del día (ProScreener)

probuilder
chg = Variation(close)
SCREENER[ABS(chg) > 3] (chg AS "Change %")

Devuelve los instrumentos cuyo cierre se movió más de un 3 por ciento en cualquier dirección en la barra actual, con el cambio con signo mostrado como columna de ordenación.

Ejemplo 3, Entrada de momentum con un filtro de cambio (ProBacktest)

probuilder
// Enter on a strong up bar, exit on a meaningful down bar
chg = Variation(close)

IF NOT ONMARKET AND chg > 1.5 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF ONMARKET AND chg < -1 THEN
  SELL AT MARKET
ENDIF

El sistema compra después de una barra que ganó más de un 1.5 por ciento y cierra la posición después de cualquier barra que perdió más de un 1 por ciento, un ejemplo mínimo de lógica basada en el cambio porcentual.

Interpretación

Los valores positivos indican que la serie subió en la última barra, los negativos que bajó; la magnitud mide con qué intensidad. No hay umbrales universales, lo que cuenta como un cambio grande en una barra depende del instrumento y del marco temporal. Un enfoque práctico es estadístico: comparar la lectura actual con la distribución reciente de lecturas, por ejemplo señalando los valores que superan dos o tres desviaciones típicas. Los grupos de variaciones absolutas grandes indican un régimen de alta volatilidad, las rachas largas de valores pequeños indican consolidación.

Errores y trampas habituales

  • Solo una barra. Variation siempre compara con la bar inmediatamente anterior. Para un cambio a lo largo de N los bars usan ROC[N](price) o calcular 100 * (close - close[N]) / close[N] explícitamente.
  • Dependencia del marco temporal. La función mide el cambio por barra del gráfico actual. En un gráfico de 5 minutos los valores son naturalmente mucho menores que en un gráfico diario, los umbrales no se trasladan entre marcos temporales.
  • La base de la división es la barra anterior. Una caída del 10 por ciento seguida de una subida del 10 por ciento no vuelve al precio inicial. Sumar variaciones a lo largo de muchas bars solo aproxima el movimiento total.
  • La primera barra es indefinida. El cálculo necesita price[1], que no existe en la primera bar del histórico cargado. Ignora la lectura más antigua.
  • ROC, tasa de cambio sobre un periodo arbitrario de N barras.
  • Momentum, diferencia absoluta de precio en N barras.
  • STD, desviación típica, utilizada para poner bandas a las lecturas de variación.
  • ExponentialAverage, suavizado para la serie bruta ruidosa.
  • Average, alternativa de media móvil simple para el suavizado.
  • VolumeROC, la misma idea de tasa de cambio aplicada al volumen.
  • HistoricVolatility, volatilidad estadística a partir de los rendimientos del precio.
  • Volatility, Chaikin Volatility construido sobre el spread entre máximo y mínimo.