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
- Apri un grafico in modalità Modifica
- Fai clic sul pulsante + Aggiungi, quindi seleziona Aggiungi formula
- Inserisci un'etichetta (ad es. "SMA a 7 giorni del prezzo")
- Inserisci un'espressione (ad es.
sma(m1, 7)) - 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
| Funzione | Sintassi | Descrizione |
|---|---|---|
sma | sma(series, period) | Media mobile semplice — media aritmetica sugli ultimi N punti dati |
ema | ema(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 |
median | median(series, period) | Mediana mobile (valore centrale) su N periodi |
sum | sum(series, period) | Somma mobile sugli ultimi N periodi |
std | std(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:
| Funzione | Sintassi | Descrizione |
|---|---|---|
cumsum | cumsum(series) | Somma cumulativa espansiva dall'inizio dei dati |
cummean | cummean(series) | Media cumulativa espansiva dall'inizio dei dati |
cummedian | cummedian(series) | Mediana cumulativa espansiva dall'inizio dei dati |
cumstd | cumstd(series) | Deviazione standard cumulativa espansiva dall'inizio dei dati |
cummax | cummax(series) | Massimo cumulativo storico fino a ciascun punto |
cummin | cummin(series) | Minimo cumulativo storico fino a ciascun punto |
Funzioni di variazione
| Funzione | Sintassi | Descrizione |
|---|---|---|
percent_change | percent_change(series, period) | Variazione percentuale su N periodi. I valori sono restituiti come decimali (ad es. 0,20 = crescita del +20%) |
diff | diff(series, period) | Variazione in valore assoluto su N periodi: value_t - value_(t-N) |
Funzioni matematiche
| Funzione | Sintassi | Descrizione |
|---|---|---|
abs | abs(series) | Valore assoluto di tutti i punti dati |
pow | pow(series, n) | Eleva tutti i punti dati alla potenza n |
log | log(series) | Logaritmo in base 10 (restituisce null per valori non positivi) |
round | round(series, digits) | Arrotonda i valori a N cifre decimali |
max | max(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) |
min | min(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
| Funzione | Sintassi | Descrizione |
|---|---|---|
rsi | rsi(series, period) | Relative Strength Index (0–100) che utilizza il metodo di smoothing di Wilder su N periodi |
corr | corr(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) |
drawdown | drawdown(series) | Drawdown relativo rispetto al massimo storico. Restituisce decimali negativi (ad es. -0,30 = 30% sotto l'ATH) |
Rischio e rendimento
| Funzione | Sintassi | Descrizione |
|---|---|---|
mean_return | mean_return(series, period) | Rendimento medio mobile annualizzato su N periodi (basato sui rendimenti logaritmici giornalieri × 365) |
realized_vol | realized_vol(series, period) | Volatilità realizzata annualizzata su N periodi (deviazione standard dei rendimenti logaritmici giornalieri × √365) |
sharpe_ratio_arithmetic | sharpe_ratio_arithmetic(series, period) | Indice di Sharpe annualizzato che utilizza la media aritmetica dei rendimenti su N periodi |
sharpe_ratio_geometric | sharpe_ratio_geometric(series, period) | Indice di Sharpe annualizzato che utilizza la media geometrica dei rendimenti su N periodi |
Manipolazione delle serie
| Funzione | Sintassi | Descrizione |
|---|---|---|
shift | shift(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) |
if | if(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.