Condition

[[condition]] est un bloc conditionnel qui évalue l’expression condition à chaque passage de la stratégie.

L’expression est interprétée comme un booléen : 0.0 et NaN sont faux, et toute autre valeur non nulle est vraie.

Quand l’expression est vraie, l’exécution passe au bloc indiqué par next_block_id. Quand l’expression est fausse, le bloc n’est pas validé sur cette bougie. La stratégie reste sur le même bloc [[condition]] et le réévalue à la bougie suivante.

[[condition]] est le bloc conditionnel générique. Des blocs comme [[trend]], [[threshold]] et [[position]] peuvent souvent être réécrits avec un [[condition]] qui exprime explicitement la comparaison voulue.

Déclaration du bloc

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

Exemples

Condition autonome minimale

Cet exemple montre le plus petit bloc [[condition]] autonome valide. La stratégie passe à open_long uniquement lorsque close > ema_200 est vrai.

[[condition]]
id            = "entry_filter"
condition     = "close > ema_200"
next_block_id = "open_long"

Croisement manuel avec indexation historique

Cet exemple reproduit un croisement haussier manuellement en comparant la bougie courante et la bougie précédente avec [1].

[[condition]]
id            = "golden_cross"
condition     = "fast > slow and fast[1] <= slow[1]"
next_block_id = "buy"

Condition sur l’état de position

Cet exemple s’appuie sur une variable runtime de position. Le bloc se valide uniquement lorsqu’il n’y a plus de trade ouvert (opentrades == 0).

[[condition]]
id            = "exit_filled"
condition     = "opentrades == 0"
next_block_id = "golden_cross"

Condition enfant dans [[and]]

Cet exemple montre deux blocs [[condition]] enfants évalués par un bloc parent [[and]]. Les conditions enfants ne définissent pas next_block_id ; le flux est piloté par le parent [[and]].

[[and]]
id            = "entry_filters"
conditions    = ["trend_ok", "volatility_ok"]
next_block_id = "open_long"

[[condition]]
id        = "trend_ok"
condition = "close > ema_200"

[[condition]]
id        = "volatility_ok"
condition = "atr_14 > atr_min"

Paramètres du bloc

ParamètreDescription
id
 Texte
 Obligatoire
Identifiant unique du bloc.
condition
 Expression
 Obligatoire
Expression évaluée sur chaque bougie. Une valeur égale à 0.0 ou NaN est fausse, toute autre valeur non nulle est vraie.
next_block_id
 Texte
 Conditionnel
Obligatoire lorsque le bloc [[condition]] est utilisé seul. Doit être omis lorsqu’il est utilisé comme enfant d’un bloc [[and]] ou [[or]].

Ce bloc ne produit aucune variable de sortie ; il contrôle uniquement le flux d’exécution.