Objective

[[objective]] définit les critères utilisés pour classer les combinaisons lors de l’optimisation. Chaque objectif produit son propre classement.

Sa formule utilise des variables du backtest, comme netprofit, max_drawdown_percent ou closedtrades. Les sorties d’indicateurs et les séries de bougies (OHLCV) ne sont pas disponibles dans les formules d’objectif.

Certaines variables sont réservées aux objectifs et ne sont pas disponibles dans les expressions de trading de la stratégie.

Voir Les objectifs pour plus de détails, des exemples et la liste complète des variables disponibles.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[objective]].

Exemples

Ratio de Sortino

Le ratio de Sortino classe les combinaisons à partir des rendements de l’equity du portefeuille en ne retenant que la volatilité à la baisse.

Voir Ratios de Sharpe et de Sortino.

[[objective]]
id        = "sortino"
formula   = "sortino_ratio"
ascending = false

Ratio de Calmar

Le ratio de Calmar classe les combinaisons en comparant la croissance annualisée composée au drawdown maximal sur le backtest.

Voir Ratio de Calmar.

[[objective]]
id        = "calmar"
formula   = "calmar_ratio"
ascending = false

Recovery factor

Le recovery factor compare le profit net final au drawdown maximal en valeur absolue. Un score de 4 signifie que le profit net représente quatre fois le pire drawdown observé.

[[objective]]
id        = "recovery_factor"
formula   = "netprofit / max_drawdown"
ascending = false

Paramètres du bloc

ParamètreDescription
id
 Texte
 Obligatoire
Identifiant unique de l’objectif.
formula
 Texte (expression)
 Obligatoire
Expression évaluée à partir des variables du backtest pour calculer la valeur de l’objectif.
ascending
 Booléen
 Optionnel
Ordre de tri du classement. Lorsque true, l’objectif est minimisé ; lorsque false, il est maximisé. Valeur par défaut : false.

Valeurs par défaut

Si aucun bloc objective n’est déclaré, le moteur injecte automatiquement l’objectif suivant :

[[objective]]
id        = "netprofit"
formula   = "netprofit"
ascending = false

Evaluation et classement

  • L’expression d’objectif est évaluée une seule fois à la fin du backtest pour obtenir sa valeur finale.
  • Lorsque le résultat est NaN, la combinaison est exclue du classement correspondant.
  • En cas d’égalité, la combinaison au plus petit identifiant interne est conservée.
  • Lorsque plusieurs objectifs sont déclarés, chacun maintient son propre classement.