Saltar al contenido principal

Fórmulas

Las fórmulas le permiten crear series calculadas personalizadas a partir de las métricas del gráfico. Combine, transforme y analice métricas mediante operadores aritméticos y funciones integradas.

Añadir una fórmula

  1. Abra un gráfico en modo de edición
  2. Haga clic en el botón + Añadir y luego seleccione Añadir fórmula
  3. Introduzca una etiqueta (p. ej., "SMA de 7 días del precio")
  4. Introduzca una expresión (p. ej., sma(m1, 7))
  5. Haga clic en Añadir fórmula

El resultado de la fórmula aparece como una nueva serie en el gráfico, con su propio color y estilo.

Sintaxis

Referencias a métricas y fórmulas

  • m1, m2, ... hacen referencia a las métricas del gráfico por posición (la primera métrica = m1)
  • f1, f2, ... hacen referencia a fórmulas anteriores por posición (la primera fórmula = f1)

Las fórmulas se evalúan en orden, por lo que f2 puede hacer referencia a f1, pero no al revés.

Operadores aritméticos

Operadores estándar con la precedencia habitual (* y / antes que + y -):

m1 + m2 # Addition
m1 - m2 # Subtraction
m1 * m2 # Multiplication
m1 / m2 # Division (returns null if divisor is 0)
(m1 + m2) * m3 # Parentheses for grouping

Números y líneas horizontales

Se pueden usar valores constantes en las expresiones. Un número aislado dibuja una línea horizontal en ese valor:

42000 # Horizontal line at 42,000
m1 * 100 # Scale a metric
m1 / 1000000 # Convert to millions
0.5 # Horizontal line at 0.5 (useful as threshold)

Funciones

Medias móviles y estadísticas móviles

FunciónSintaxisDescripción
smasma(series, period)Media móvil simple (SMA): media aritmética sobre los últimos N puntos de datos
emaema(series, period)Media móvil exponencial (EMA): EMA_t = value_t × k + EMA_(t-1) × (1 - k), donde k = 2 / (period + 1). Da más peso a los valores recientes
medianmedian(series, period)Mediana móvil (valor central) sobre N periodos
sumsum(series, period)Suma móvil sobre los últimos N periodos
stdstd(series, period)Desviación estándar móvil sobre N periodos

Funciones acumulativas

Funciones de ventana expansiva que utilizan todos los datos desde el inicio hasta cada punto:

FunciónSintaxisDescripción
cumsumcumsum(series)Suma acumulada expansiva desde el inicio de los datos
cummeancummean(series)Media acumulada expansiva desde el inicio de los datos
cummediancummedian(series)Mediana acumulada expansiva desde el inicio de los datos
cumstdcumstd(series)Desviación estándar acumulada expansiva desde el inicio de los datos
cummaxcummax(series)Máximo histórico acumulado hasta cada punto
cummincummin(series)Mínimo histórico acumulado hasta cada punto

Funciones de variación

FunciónSintaxisDescripción
percent_changepercent_change(series, period)Variación porcentual sobre N periodos. Los valores se devuelven como decimales (p. ej., 0,20 = +20 % de crecimiento)
diffdiff(series, period)Variación de valor absoluto sobre N periodos: value_t - value_(t-N)

Funciones matemáticas

FunciónSintaxisDescripción
absabs(series)Valor absoluto de todos los puntos de datos
powpow(series, n)Eleva todos los puntos de datos a la potencia n
loglog(series)Logaritmo en base 10 (devuelve null para valores no positivos)
roundround(series, digits)Redondea los valores a N posiciones decimales
maxmax(a, b, ...)Máximo punto a punto: devuelve el valor más alto entre todos los argumentos en cada punto de datos. Los argumentos pueden ser series o constantes, p. ej. max(m1, m2, 0)
minmin(a, b, ...)Mínimo punto a punto: devuelve el valor más bajo entre todos los argumentos en cada punto de datos. Los argumentos pueden ser series o constantes, p. ej. min(m1, m2, 100)

Indicadores técnicos

FunciónSintaxisDescripción
rsirsi(series, period)Índice de fuerza relativa (RSI) (0–100) mediante el método de suavizado de Wilder sobre N periodos
corrcorr(series1, series2, period)Coeficiente de correlación de Pearson entre dos series sobre una ventana móvil de N periodos. Devuelve valores de -1 (inversa) a +1 (perfectamente correlacionadas)
drawdowndrawdown(series)Caída relativa (drawdown) desde el máximo histórico. Devuelve decimales negativos (p. ej., -0,30 = 30 % por debajo del ATH)

Riesgo y rentabilidad

FunciónSintaxisDescripción
mean_returnmean_return(series, period)Rentabilidad media móvil anualizada sobre N periodos (basada en los rendimientos logarítmicos diarios × 365)
realized_volrealized_vol(series, period)Volatilidad realizada anualizada sobre N periodos (desviación estándar del rendimiento logarítmico diario × √365)
sharpe_ratio_arithmeticsharpe_ratio_arithmetic(series, period)Ratio de Sharpe anualizado usando la media aritmética de los rendimientos sobre N periodos
sharpe_ratio_geometricsharpe_ratio_geometric(series, period)Ratio de Sharpe anualizado usando la media geométrica de los rendimientos sobre N periodos

Manipulación de series

FunciónSintaxisDescripción
shiftshift(series, period)Desplaza la serie hacia la derecha N periodos. Un periodo positivo muestra valores pasados en la posición actual (es decir, cada punto de datos muestra el valor de hace N periodos). Un periodo negativo desplaza hacia la izquierda (muestra valores futuros)
ifif(a, "op", b, then, else)Condicional: evalúa la comparación a op b en cada punto de datos, devuelve then si es verdadera y else si es falsa. El argumento op es un operador de comparación pasado como cadena entre comillas: "=", "!=", ">", ">=", "<", "<="

Ejemplos

Medias móviles

sma(m1, 7) # 7-day simple moving average of first metric
sma(m1, 30) # 30-day SMA
ema(m1, 21) # 21-day exponential moving average
median(m1, 14) # 14-day rolling median

Detección de cruce de SMA

f1: sma(m1, 7) # Short-term SMA
f2: sma(m1, 30) # Long-term SMA
f3: f1 - f2 # Difference (positive = short above long)

Análisis de ratios

m1 / m2 # Ratio between two metrics

Caída desde el máximo histórico

drawdown(m1) # Drawdown as negative decimal (-0.30 = 30% below ATH)

Bandas de Bollinger

f1: sma(m1, 20) # Middle band
f2: f1 + 2 * std(m1, 20) # Upper band (+2 standard deviations)
f3: f1 - 2 * std(m1, 20) # Lower band (-2 standard deviations)

Variación periodo a periodo

percent_change(m1, 7) # 7-day percentage change (decimal)
diff(m1, 30) # 30-day absolute change

RSI

rsi(m1, 14) # 14-period RSI
30 # Oversold threshold line
70 # Overbought threshold line

Acotación de valores

max(m1, 0) # Floor at zero (remove negative values)
min(m1, 100) # Cap at 100
max(m1, m2) # Higher of two metrics at each point

Correlación

corr(m1, m2, 30) # 30-day rolling correlation between two metrics

Volatilidad y riesgo

realized_vol(m1, 30) # 30-day annualized volatility
sharpe_ratio_arithmetic(m1, 90) # 90-day annualized Sharpe ratio

Estilo

Después de añadir una fórmula, haga clic sobre ella en la leyenda (en modo de edición) para configurar:

  • Estilo de gráfico: línea, área o barra
  • Color: elija entre preajustes o uno personalizado
  • Eje Y: asígnelo a cualquier eje
  • Grosor de línea y opacidad de relleno
  • Visibilidad: alternar mostrar/ocultar

Persistencia

Las fórmulas se guardan con la configuración del gráfico. Cuando guarda un gráfico en "Mis gráficos", todas las fórmulas se conservan y se restauran al recargar el gráfico.

Exportación

Los valores de las fórmulas se incluyen en las exportaciones CSV y JSON. Cada columna de fórmula usa la etiqueta de la fórmula como encabezado.