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
Variation(price)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
price | fuente de precio | ninguno | Serie cuyo cambio porcentual en un bar se devuelve. Acepta close, open, high, low o cualquier variable personalizada. |
Fórmula
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)
// 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, averagingvarDibuja 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)
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)
// 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
ENDIFEl 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.
Variationsiempre compara con la bar inmediatamente anterior. Para un cambio a lo largo deNlos bars usanROC[N](price)o calcular100 * (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.
Instrucciones relacionadas
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.