Pular para o conteúdo principal

Fórmulas

As fórmulas permitem criar séries calculadas personalizadas a partir das métricas de um gráfico. Combine, transforme e analise métricas usando operadores aritméticos e funções integradas.

Adicionar uma fórmula

  1. Abra um gráfico no modo de edição
  2. Clique no botão + Adicionar e selecione Adicionar fórmula
  3. Insira um rótulo (por exemplo, "SMA de 7 dias do preço")
  4. Insira uma expressão (por exemplo, sma(m1, 7))
  5. Clique em Adicionar fórmula

O resultado da fórmula aparece como uma nova série no gráfico, com sua própria cor e estilo.

Sintaxe

Referências a métricas e fórmulas

  • m1, m2, ... referenciam as métricas do gráfico por posição (primeira métrica = m1)
  • f1, f2, ... referenciam fórmulas anteriores por posição (primeira fórmula = f1)

As fórmulas são avaliadas em ordem, portanto f2 pode referenciar f1, mas não o contrário.

Operadores aritméticos

Operadores padrão com precedência normal (* e / antes de + e -):

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 e linhas horizontais

Valores constantes podem ser usados em expressões. Um número isolado desenha uma linha horizontal naquele 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)

Funções

Médias móveis e estatísticas móveis

FunçãoSintaxeDescrição
smasma(series, period)Média Móvel Simples — média aritmética sobre os últimos N pontos de dados
emaema(series, period)Média Móvel Exponencial — EMA_t = value_t × k + EMA_(t-1) × (1 - k), onde k = 2 / (period + 1). Atribui mais peso aos valores recentes
medianmedian(series, period)Mediana móvel (valor central) ao longo de N períodos
sumsum(series, period)Soma móvel sobre os últimos N períodos
stdstd(series, period)Desvio padrão móvel ao longo de N períodos

Funções cumulativas

Funções de janela expansível que usam todos os dados desde o início até cada ponto:

FunçãoSintaxeDescrição
cumsumcumsum(series)Soma cumulativa expansível a partir do início dos dados
cummeancummean(series)Média cumulativa expansível a partir do início dos dados
cummediancummedian(series)Mediana cumulativa expansível a partir do início dos dados
cumstdcumstd(series)Desvio padrão cumulativo expansível a partir do início dos dados
cummaxcummax(series)Máximo histórico acumulado até cada ponto
cummincummin(series)Mínimo histórico acumulado até cada ponto

Funções de variação

FunçãoSintaxeDescrição
percent_changepercent_change(series, period)Variação percentual ao longo de N períodos. Os valores são retornados como decimais (por exemplo, 0,20 = +20% de crescimento)
diffdiff(series, period)Variação de valor absoluto ao longo de N períodos: value_t - value_(t-N)

Funções matemáticas

FunçãoSintaxeDescrição
absabs(series)Valor absoluto de todos os pontos de dados
powpow(series, n)Eleva todos os pontos de dados à potência n
loglog(series)Logaritmo de base 10 (retorna null para valores não positivos)
roundround(series, digits)Arredonda os valores para N casas decimais
maxmax(a, b, ...)Máximo ponto a ponto — retorna o maior valor entre todos os argumentos em cada ponto de dados. Os argumentos podem ser séries ou constantes, por exemplo max(m1, m2, 0)
minmin(a, b, ...)Mínimo ponto a ponto — retorna o menor valor entre todos os argumentos em cada ponto de dados. Os argumentos podem ser séries ou constantes, por exemplo min(m1, m2, 100)

Indicadores técnicos

FunçãoSintaxeDescrição
rsirsi(series, period)Índice de Força Relativa (0–100) usando o método de suavização de Wilder ao longo de N períodos
corrcorr(series1, series2, period)Coeficiente de correlação de Pearson entre duas séries ao longo de uma janela móvel de N períodos. Retorna valores de -1 (inverso) a +1 (perfeitamente correlacionado)
drawdowndrawdown(series)Drawdown relativo em relação à máxima histórica. Retorna decimais negativos (por exemplo, -0,30 = 30% abaixo da ATH)

Risco e retorno

FunçãoSintaxeDescrição
mean_returnmean_return(series, period)Retorno médio móvel anualizado ao longo de N períodos (baseado em retornos logarítmicos diários × 365)
realized_volrealized_vol(series, period)Volatilidade realizada anualizada ao longo de N períodos (desvio padrão do retorno logarítmico diário × √365)
sharpe_ratio_arithmeticsharpe_ratio_arithmetic(series, period)Índice de Sharpe anualizado usando a média aritmética dos retornos ao longo de N períodos
sharpe_ratio_geometricsharpe_ratio_geometric(series, period)Índice de Sharpe anualizado usando a média geométrica dos retornos ao longo de N períodos

Manipulação de séries

FunçãoSintaxeDescrição
shiftshift(series, period)Desloca a série para a direita em N períodos. Um período positivo mostra valores passados na posição atual (ou seja, cada ponto de dados exibe o valor de N períodos atrás). Um período negativo desloca para a esquerda (mostra valores futuros)
ifif(a, "op", b, then, else)Condicional: avalia a comparação a op b em cada ponto de dados, retorna then se verdadeiro, else se falso. O argumento op é um operador de comparação passado como uma string entre aspas: "=", "!=", ">", ">=", "<", "<="

Exemplos

Médias móveis

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

Detecção de cruzamento 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álise de razão

m1 / m2 # Ratio between two metrics

Drawdown em relação à máxima histórica

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)

Variação período a período

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

Limitação 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

Correlação

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

Volatilidade e risco

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

Estilo

Depois de adicionar uma fórmula, clique nela na legenda (no modo de edição) para configurar:

  • Estilo do gráfico: Linha, Área ou Barra
  • Cor: Escolha entre predefinições ou personalizada
  • Eixo Y: Atribua a qualquer eixo
  • Largura da linha e opacidade do preenchimento
  • Visibilidade: Alternar entre exibir/ocultar

Persistência

As fórmulas são salvas com a configuração do gráfico. Quando você salva um gráfico em "Meus gráficos", todas as fórmulas são preservadas e restauradas ao recarregar o gráfico.

Exportação

Os valores das fórmulas são incluídos nas exportações em CSV e JSON. Cada coluna de fórmula usa o rótulo da fórmula como cabeçalho.