If

[[if]] est un bloc conditionnel qui évalue l’expression condition à chaque passage.

Quand l’expression est vraie, l’exécution passe au bloc indiqué par then_block_id. Quand l’expression est fausse, ou qu’elle vaut NaN, l’exécution passe au bloc indiqué par else_block_id s’il est défini.

Si else_block_id n’est pas défini et que l’expression est fausse ou vaut NaN, le bloc n’est pas validé sur cette bougie. La stratégie reste sur le même bloc [[if]] et le réévalue à la bougie suivante.

Le champ condition du bloc [[if]] peut contenir directement la condition utilisée pour choisir entre then_block_id et else_block_id.

Ce bloc ne peut pas être référencé dans la clé conditions d’un bloc [[and]] ou [[or]].

Les blocs [[and]] et [[or]] attendent uniquement des blocs qui répondent à une question simple sur la bougie courante : la condition est vraie ou fausse. Le bloc [[if]] n’a pas ce rôle. Il ne sert pas à valider une condition pour un parent logique. Il sert à choisir lui-même la suite de l’exécution entre then_block_id et else_block_id.

Pour cette raison, [[if]] doit rester dans le flux principal de la stratégie. Si vous devez d’abord valider une combinaison logique, puis choisir une branche, faites valider le bloc [[and]] ou [[or]], puis enchaînez vers [[if]] avec next_block_id.

Déclaration du bloc

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

Exemples

Branche else explicite

Cet exemple enchaîne vers enter_long lorsque la condition est vraie, sinon vers enter_short.

[[if]]
id            = "trend_switch"
condition     = "rsi_fast > rsi_slow"
then_block_id = "enter_long"
else_block_id = "enter_short"

Sans branche else

Cet exemple enchaîne vers enter_breakout lorsque la condition est vraie. Lorsque la condition est fausse, ou qu’elle vaut NaN, la stratégie reste sur ce bloc et le réévalue à la bougie suivante.

[[if]]
id            = "breakout_guard"
condition     = "close > resistance"
then_block_id = "enter_breakout"

Paramètres du bloc

ParamètreDescription
id
 Texte
 Obligatoire
Identifiant unique du bloc.
condition
 Expression
 Obligatoire
Expression de condition évaluée sur chaque bougie. 0.0 et NaN sont considérés comme faux ; toute autre valeur non nulle est considérée comme vraie.
then_block_id
 Texte
 Obligatoire
Identifiant du bloc conditionnel exécuté lorsque la condition est vraie.
else_block_id
 Texte
 Optionnel
Identifiant du bloc exécuté lorsque la condition est fausse. S’il est omis, et que la condition est fausse ou vaut NaN, la stratégie reste sur ce bloc [[if]] et le réévalue à la bougie suivante.