Formules
Les formules vous permettent de créer des séries calculées personnalisées à partir des métriques d'un graphique. Combinez, transformez et analysez des métriques à l'aide d'opérateurs arithmétiques et de fonctions intégrées.
Ajouter une formule
- Ouvrez un graphique en mode Édition
- Cliquez sur le bouton + Ajouter, puis sélectionnez Ajouter une formule
- Saisissez un libellé (par ex. « SMA 7 jours du prix »)
- Saisissez une expression (par ex.
sma(m1, 7)) - Cliquez sur Ajouter une formule
Le résultat de la formule apparaît comme une nouvelle série sur le graphique, avec sa propre couleur et son propre style.
Syntaxe
Références aux métriques et aux formules
m1,m2, … référencent les métriques du graphique par position (première métrique = m1)f1,f2, … référencent les formules précédentes par position (première formule = f1)
Les formules sont évaluées dans l'ordre : f2 peut donc référencer f1, mais pas l'inverse.
Opérateurs arithmétiques
Opérateurs standard avec précédence habituelle (* et / avant + et -) :
m1 + m2 # Addition
m1 - m2 # Subtraction
m1 * m2 # Multiplication
m1 / m2 # Division (returns null if divisor is 0)
(m1 + m2) * m3 # Parentheses for grouping
Nombres et lignes horizontales
Des valeurs constantes peuvent être utilisées dans les expressions. Un nombre isolé trace une ligne horizontale à cette valeur :
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)
Fonctions
Moyennes mobiles et statistiques glissantes
| Fonction | Syntaxe | Description |
|---|---|---|
sma | sma(series, period) | Moyenne mobile simple (SMA) — moyenne arithmétique sur les N derniers points de données |
ema | ema(series, period) | Moyenne mobile exponentielle (EMA) — EMA_t = value_t × k + EMA_(t-1) × (1 - k), où k = 2 / (period + 1). Accorde plus de poids aux valeurs récentes |
median | median(series, period) | Médiane glissante (valeur centrale) sur N périodes |
sum | sum(series, period) | Somme glissante sur les N dernières périodes |
std | std(series, period) | Écart-type glissant sur N périodes |
Fonctions cumulatives
Fonctions à fenêtre extensible qui utilisent toutes les données depuis le début jusqu'à chaque point :
| Fonction | Syntaxe | Description |
|---|---|---|
cumsum | cumsum(series) | Somme cumulée extensible depuis le début des données |
cummean | cummean(series) | Moyenne cumulée extensible depuis le début des données |
cummedian | cummedian(series) | Médiane cumulée extensible depuis le début des données |
cumstd | cumstd(series) | Écart-type cumulé extensible depuis le début des données |
cummax | cummax(series) | Maximum historique cumulé jusqu'à chaque point |
cummin | cummin(series) | Minimum historique cumulé jusqu'à chaque point |
Fonctions de variation
| Fonction | Syntaxe | Description |
|---|---|---|
percent_change | percent_change(series, period) | Variation en pourcentage sur N périodes. Les valeurs sont renvoyées sous forme décimale (par ex. 0.20 = +20 % de croissance) |
diff | diff(series, period) | Variation en valeur absolue sur N périodes : value_t - value_(t-N) |
Fonctions mathématiques
| Fonction | Syntaxe | Description |
|---|---|---|
abs | abs(series) | Valeur absolue de tous les points de données |
pow | pow(series, n) | Élève tous les points de données à la puissance n |
log | log(series) | Logarithme en base 10 (renvoie null pour les valeurs non positives) |
round | round(series, digits) | Arrondit les valeurs à N décimales |
max | max(a, b, ...) | Maximum point par point — renvoie la valeur la plus élevée parmi tous les arguments à chaque point de données. Les arguments peuvent être des séries ou des constantes, par ex. max(m1, m2, 0) |
min | min(a, b, ...) | Minimum point par point — renvoie la valeur la plus basse parmi tous les arguments à chaque point de données. Les arguments peuvent être des séries ou des constantes, par ex. min(m1, m2, 100) |
Indicateurs techniques
| Fonction | Syntaxe | Description |
|---|---|---|
rsi | rsi(series, period) | Relative Strength Index (RSI, 0–100) selon la méthode de lissage de Wilder sur N périodes |
corr | corr(series1, series2, period) | Coefficient de corrélation de Pearson entre deux séries sur une fenêtre glissante de N périodes. Renvoie des valeurs de -1 (inverse) à +1 (parfaitement corrélé) |
drawdown | drawdown(series) | Drawdown relatif par rapport au plus haut historique. Renvoie des décimales négatives (par ex. -0.30 = 30 % sous l'ATH) |
Risque et rendement
| Fonction | Syntaxe | Description |
|---|---|---|
mean_return | mean_return(series, period) | Rendement moyen glissant annualisé sur N périodes (basé sur les rendements logarithmiques quotidiens × 365) |
realized_vol | realized_vol(series, period) | Volatilité réalisée annualisée sur N périodes (écart-type des rendements logarithmiques quotidiens × √365) |
sharpe_ratio_arithmetic | sharpe_ratio_arithmetic(series, period) | Ratio de Sharpe annualisé utilisant la moyenne arithmétique des rendements sur N périodes |
sharpe_ratio_geometric | sharpe_ratio_geometric(series, period) | Ratio de Sharpe annualisé utilisant la moyenne géométrique des rendements sur N périodes |
Manipulation de séries
| Fonction | Syntaxe | Description |
|---|---|---|
shift | shift(series, period) | Décale la série vers la droite de N périodes. Une période positive affiche les valeurs passées à la position courante (c.-à-d. que chaque point affiche la valeur de N périodes plus tôt). Une période négative décale vers la gauche (affiche les valeurs futures) |
if | if(a, "op", b, then, else) | Conditionnel : évalue la comparaison a op b à chaque point de données, renvoie then si vrai, else si faux. L'argument op est un opérateur de comparaison passé sous forme de chaîne entre guillemets : "=", "!=", ">", ">=", "<", "<=" |
Exemples
Moyennes mobiles
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
Détection de croisement de SMA
f1: sma(m1, 7) # Short-term SMA
f2: sma(m1, 30) # Long-term SMA
f3: f1 - f2 # Difference (positive = short above long)
Analyse de ratio
m1 / m2 # Ratio between two metrics
Drawdown par rapport au plus haut historique
drawdown(m1) # Drawdown as negative decimal (-0.30 = 30% below ATH)
Bandes 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)
Variation d'une période à l'autre
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
Bornage des valeurs
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
Corrélation
corr(m1, m2, 30) # 30-day rolling correlation between two metrics
Volatilité et risque
realized_vol(m1, 30) # 30-day annualized volatility
sharpe_ratio_arithmetic(m1, 90) # 90-day annualized Sharpe ratio
Style
Après avoir ajouté une formule, cliquez dessus dans la légende (en mode Édition) pour configurer :
- Style de graphique : Ligne, Aire ou Barre
- Couleur : choisissez parmi les préréglages ou une couleur personnalisée
- Axe Y : assignez à n'importe quel axe
- Épaisseur de ligne et opacité du remplissage
- Visibilité : bascule afficher/masquer
Persistance
Les formules sont enregistrées avec la configuration du graphique. Lorsque vous enregistrez un graphique dans « Mes graphiques », toutes les formules sont préservées et restaurées au rechargement du graphique.
Export
Les valeurs des formules sont incluses dans les exports CSV et JSON. Chaque colonne de formule utilise le libellé de la formule comme en-tête.