Passa al contenuto principale

Formule

Le formule consentono di creare serie calcolate personalizzate a partire dalle metriche del grafico. Combina, trasforma e analizza le metriche utilizzando operatori aritmetici e funzioni integrate.

Aggiungere una formula

  1. Apri un grafico in modalità Modifica
  2. Fai clic sul pulsante + Aggiungi, quindi seleziona Aggiungi formula
  3. Inserisci un'etichetta (ad es. "SMA a 7 giorni del prezzo")
  4. Inserisci un'espressione (ad es. sma(m1, 7))
  5. Fai clic su Aggiungi formula

Il risultato della formula appare come una nuova serie sul grafico, con colore e stile propri.

Sintassi

Riferimenti a metriche e formule

  • m1, m2, ... fanno riferimento alle metriche del grafico per posizione (prima metrica = m1)
  • f1, f2, ... fanno riferimento a formule precedenti per posizione (prima formula = f1)

Le formule vengono valutate in ordine, quindi f2 può fare riferimento a f1 ma non viceversa.

Operatori aritmetici

Operatori standard con la consueta precedenza (* e / prima di + 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

Numeri e linee orizzontali

Nelle espressioni è possibile utilizzare valori costanti. Un numero a sé stante traccia una linea orizzontale in corrispondenza di quel valore:

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)

Funzioni

Medie mobili e statistiche su finestra mobile

FunzioneSintassiDescrizione
smasma(series, period)Media mobile semplice — media aritmetica sugli ultimi N punti dati
emaema(series, period)Media mobile esponenziale — EMA_t = value_t × k + EMA_(t-1) × (1 - k), dove k = 2 / (period + 1). Attribuisce maggior peso ai valori più recenti
medianmedian(series, period)Mediana mobile (valore centrale) su N periodi
sumsum(series, period)Somma mobile sugli ultimi N periodi
stdstd(series, period)Deviazione standard mobile su N periodi

Funzioni cumulative

Funzioni a finestra espansiva che utilizzano tutti i dati dall'inizio fino a ciascun punto:

FunzioneSintassiDescrizione
cumsumcumsum(series)Somma cumulativa espansiva dall'inizio dei dati
cummeancummean(series)Media cumulativa espansiva dall'inizio dei dati
cummediancummedian(series)Mediana cumulativa espansiva dall'inizio dei dati
cumstdcumstd(series)Deviazione standard cumulativa espansiva dall'inizio dei dati
cummaxcummax(series)Massimo cumulativo storico fino a ciascun punto
cummincummin(series)Minimo cumulativo storico fino a ciascun punto

Funzioni di variazione

FunzioneSintassiDescrizione
percent_changepercent_change(series, period)Variazione percentuale su N periodi. I valori sono restituiti come decimali (ad es. 0,20 = crescita del +20%)
diffdiff(series, period)Variazione in valore assoluto su N periodi: value_t - value_(t-N)

Funzioni matematiche

FunzioneSintassiDescrizione
absabs(series)Valore assoluto di tutti i punti dati
powpow(series, n)Eleva tutti i punti dati alla potenza n
loglog(series)Logaritmo in base 10 (restituisce null per valori non positivi)
roundround(series, digits)Arrotonda i valori a N cifre decimali
maxmax(a, b, ...)Massimo punto per punto — restituisce il valore più alto tra tutti gli argomenti a ciascun punto dati. Gli argomenti possono essere serie o costanti, ad es. max(m1, m2, 0)
minmin(a, b, ...)Minimo punto per punto — restituisce il valore più basso tra tutti gli argomenti a ciascun punto dati. Gli argomenti possono essere serie o costanti, ad es. min(m1, m2, 100)

Indicatori tecnici

FunzioneSintassiDescrizione
rsirsi(series, period)Relative Strength Index (0–100) che utilizza il metodo di smoothing di Wilder su N periodi
corrcorr(series1, series2, period)Coefficiente di correlazione di Pearson tra due serie su una finestra mobile di N periodi. Restituisce valori da -1 (inversa) a +1 (perfettamente correlate)
drawdowndrawdown(series)Drawdown relativo rispetto al massimo storico. Restituisce decimali negativi (ad es. -0,30 = 30% sotto l'ATH)

Rischio e rendimento

FunzioneSintassiDescrizione
mean_returnmean_return(series, period)Rendimento medio mobile annualizzato su N periodi (basato sui rendimenti logaritmici giornalieri × 365)
realized_volrealized_vol(series, period)Volatilità realizzata annualizzata su N periodi (deviazione standard dei rendimenti logaritmici giornalieri × √365)
sharpe_ratio_arithmeticsharpe_ratio_arithmetic(series, period)Indice di Sharpe annualizzato che utilizza la media aritmetica dei rendimenti su N periodi
sharpe_ratio_geometricsharpe_ratio_geometric(series, period)Indice di Sharpe annualizzato che utilizza la media geometrica dei rendimenti su N periodi

Manipolazione delle serie

FunzioneSintassiDescrizione
shiftshift(series, period)Sposta la serie a destra di N periodi. Un periodo positivo mostra i valori passati nella posizione corrente (ovvero ciascun punto dati visualizza il valore di N periodi prima). Un periodo negativo sposta a sinistra (mostra i valori futuri)
ifif(a, "op", b, then, else)Condizionale: valuta il confronto a op b a ciascun punto dati, restituisce then se vero, else se falso. L'argomento op è un operatore di confronto passato come stringa tra virgolette: "=", "!=", ">", ">=", "<", "<="

Esempi

Medie mobili

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

Rilevamento dell'incrocio di SMA

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

Analisi del rapporto

m1 / m2 # Ratio between two metrics

Drawdown dal massimo storico

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

Bande di 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)

Variazione periodo su 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

Limitazione dei valori

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

Correlazione

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

Volatilità e rischio

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

Stile

Dopo aver aggiunto una formula, fai clic su di essa nella legenda (in modalità Modifica) per configurare:

  • Stile del grafico: linea, area o barra
  • Colore: scegli tra i preset o personalizzato
  • Asse Y: assegna a un asse qualsiasi
  • Spessore della linea e opacità del riempimento
  • Visibilità: interruttore mostra/nascondi

Persistenza

Le formule vengono salvate insieme alla configurazione del grafico. Quando salvi un grafico in "I miei grafici", tutte le formule vengono conservate e ripristinate al ricaricamento del grafico.

Esportazione

I valori delle formule sono inclusi nelle esportazioni CSV e JSON. Ogni colonna di formula utilizza l'etichetta della formula come intestazione.