Aller au contenu principal

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

  1. Ouvrez un graphique en mode Édition
  2. Cliquez sur le bouton + Ajouter, puis sélectionnez Ajouter une formule
  3. Saisissez un libellé (par ex. « SMA 7 jours du prix »)
  4. Saisissez une expression (par ex. sma(m1, 7))
  5. 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

FonctionSyntaxeDescription
smasma(series, period)Moyenne mobile simple (SMA) — moyenne arithmétique sur les N derniers points de données
emaema(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
medianmedian(series, period)Médiane glissante (valeur centrale) sur N périodes
sumsum(series, period)Somme glissante sur les N dernières périodes
stdstd(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 :

FonctionSyntaxeDescription
cumsumcumsum(series)Somme cumulée extensible depuis le début des données
cummeancummean(series)Moyenne cumulée extensible depuis le début des données
cummediancummedian(series)Médiane cumulée extensible depuis le début des données
cumstdcumstd(series)Écart-type cumulé extensible depuis le début des données
cummaxcummax(series)Maximum historique cumulé jusqu'à chaque point
cummincummin(series)Minimum historique cumulé jusqu'à chaque point

Fonctions de variation

FonctionSyntaxeDescription
percent_changepercent_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)
diffdiff(series, period)Variation en valeur absolue sur N périodes : value_t - value_(t-N)

Fonctions mathématiques

FonctionSyntaxeDescription
absabs(series)Valeur absolue de tous les points de données
powpow(series, n)Élève tous les points de données à la puissance n
loglog(series)Logarithme en base 10 (renvoie null pour les valeurs non positives)
roundround(series, digits)Arrondit les valeurs à N décimales
maxmax(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)
minmin(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

FonctionSyntaxeDescription
rsirsi(series, period)Relative Strength Index (RSI, 0–100) selon la méthode de lissage de Wilder sur N périodes
corrcorr(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é)
drawdowndrawdown(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

FonctionSyntaxeDescription
mean_returnmean_return(series, period)Rendement moyen glissant annualisé sur N périodes (basé sur les rendements logarithmiques quotidiens × 365)
realized_volrealized_vol(series, period)Volatilité réalisée annualisée sur N périodes (écart-type des rendements logarithmiques quotidiens × √365)
sharpe_ratio_arithmeticsharpe_ratio_arithmetic(series, period)Ratio de Sharpe annualisé utilisant la moyenne arithmétique des rendements sur N périodes
sharpe_ratio_geometricsharpe_ratio_geometric(series, period)Ratio de Sharpe annualisé utilisant la moyenne géométrique des rendements sur N périodes

Manipulation de séries

FonctionSyntaxeDescription
shiftshift(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)
ifif(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.