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.