Exit

[[exit]] gère les sorties d’une position ouverte en créant des ordres basés sur le prix. Il peut placer un take profit, un stop loss et un stop suiveur. Ces ordres restent en attente tant qu’ils ne sont pas exécutés ou annulés.

Pour la logique globale de sizing et la différence entre quantité absolue, pourcentage d’equité et pourcentage de position, reportez-vous à la page Dimensionnement, marge et levier. Cette page décrit seulement la sémantique propre au bloc [[exit]].

Lorsque le bloc est évalué à nouveau avec le même order_id, Whale‑E met à jour les ordres existants. Si un paramètre n’est plus défini, l’ordre correspondant est annulé.

Si aucun niveau de sortie n’est défini (profit, limit, loss, stop, trail_price, trail_points), le bloc n’ajoute aucun ordre et annule les ordres de sortie existants associés à order_id.

Par défaut, après la création, la mise à jour ou l’annulation des ordres, le bloc se valide sur la bougie courante et passe immédiatement au bloc suivant. La clé wait_candles ne fait que retarder cette transition, elle ne modifie pas l’exécution des ordres.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[exit]]. Le champ order_id identifie les ordres de sortie gérés par le bloc.

Exemples

Take profit et stop loss

Cet exemple place un take profit et un stop loss en utilisant des distances en ticks depuis le prix d’entrée.

[[exit]]
id       = "exit_main"
order_id = "exit_main"
profit   = 120
loss     = 80

Sortie partielle

Cet exemple clôture 25 % de la position courante lorsque l’objectif de profit est atteint.

[[exit]]
id          = "take_partial"
order_id    = "take_partial"
qty_percent = 25
profit      = 100

Stop suiveur

Cet exemple crée un stop suiveur avec une distance d’activation et une distance de suivi exprimées en ticks.

[[exit]]
id           = "trail"
order_id     = "trail"
trail_points = 200
trail_offset = 100

Ciblage d’une entrée précise

Cet exemple applique le stop loss uniquement à l’entrée dont order_id vaut add.

[[exit]]
id         = "exit_add"
order_id   = "exit_add"
from_entry = "add"
loss       = 60

Exit armé avant le fill d’une entrée pending

Cet exemple arme un bracket sur la même bougie qu’une entrée limit déjà soumise. Si l’entrée main est exécutée plus tard, Whale-E crée alors les ordres de sortie avec les niveaux évalués au moment du bloc arm_exit.

[[entry]]
id            = "place_limit_entry"
order_id      = "main"
direction     = "long"
limit         = "close * 0.995"
wait_candles  = 0
next_block_id = "arm_exit"

[[exit]]
id            = "arm_exit"
order_id      = "main_exit"
from_entry    = "main"
profit        = 250
loss          = 150
wait_candles  = 0
next_block_id = "next_step"

Annulation des ordres de sortie

Cet exemple annule les ordres de sortie existants pour exit_main en omettant tous les niveaux de sortie.

[[exit]]
id       = "cancel_exit"
order_id = "exit_main"

Sans délai

Cet exemple conserve les mêmes niveaux de sortie mais enchaîne immédiatement vers le bloc suivant.

[[exit]]
id           = "instant_exit"
order_id     = "instant_exit"
profit       = 50
loss         = 50
wait_candles = 0

Paramètres du bloc

ParamètreDescription
id
 Texte
 Obligatoire
Identifiant unique du bloc.
next_block_id
 Texte
 Obligatoire
Identifiant du bloc à exécuter ensuite.
order_id
 Texte
 Obligatoire
Identifiant des ordres de sortie gérés par le bloc. Une nouvelle évaluation du bloc avec le même order_id met à jour les ordres existants.
from_entry
 Texte
 Optionnel
Si ce champ est défini, le bloc ne s’applique qu’aux entrées ouvertes par un bloc [[entry]] dont la valeur order_id correspond. Il ne permet pas de viser un bloc [[order]].
Whale-E peut aussi armer cet exit avant le fill réel d’une entrée pending déjà soumise.
Dans ce cas, les paramètres de sortie sont évalués au moment de l’appel du bloc [[exit]], puis les ordres de sortie sont matérialisés quand l’entrée ciblée est effectivement exécutée.
Une nouvelle évaluation du même order_id remplace l’intention différée existante.
Si ce champ est vide, le bloc s’applique à toutes les jambes ouvertes et reste actif pour les nouvelles jambes ouvertes plus tard sur le même côté tant que la position reste ouverte.
qty
 Décimal ou Texte
 Optionnel
Quantité absolue à réserver pour les ordres de sortie. Ce paramètre représente un nombre fixe de contrats, d’actions ou d’unités à clôturer. La quantité est arrondie à l’inférieur selon la taille minimale de contrat.
qty_percent
 Décimal ou Texte
 Optionnel
Pourcentage de la position à clôturer. Ce paramètre calcule le volume de sortie dynamiquement par rapport à la taille actuelle de la position. Dans [[exit]], qty_percent signifie toujours pourcentage de position, jamais pourcentage d’equité. Valeur par défaut : 100.
profit
 Décimal ou Texte
 Optionnel
Distance du take profit, exprimée en ticks par rapport au prix d’entrée.
limit
 Décimal ou Texte
 Optionnel
Prix limite du take profit. Si profit et limit sont tous deux définis, Whale‑E retient le niveau le plus proche du prix d’entrée.
loss
 Décimal ou Texte
 Optionnel
Distance du stop loss, exprimée en ticks par rapport au prix d’entrée.
stop
 Décimal ou Texte
 Optionnel
Prix stop du stop loss. Si loss et stop sont tous deux définis, Whale‑E retient le niveau le plus proche du prix d’entrée.
trail_price
 Décimal ou Texte
 Optionnel
Niveau d’activation du stop suiveur, exprimé en prix.
trail_points
 Décimal ou Texte
 Optionnel
Distance d’activation du stop suiveur, exprimée en ticks par rapport au prix d’entrée.
trail_offset
 Décimal ou Texte
 Optionnel
Distance de suivi du stop suiveur, exprimée en ticks. Whale‑E ne crée un stop suiveur que si un niveau d’activation (trail_price ou trail_points) et trail_offset sont définis.
oca_name
 Texte
 Optionnel
Nom du groupe OCA (One Cancels All) pour les ordres de sortie créés par le bloc. Lorsqu’un ordre du groupe est exécuté, Whale‑E réduit la quantité des autres ordres du groupe en conséquence. Si ce champ est vide, Whale‑E utilise un groupe interne isolé.
comment
 Texte
 Optionnel
Renseigne la colonne Signal dans la liste des trades si la valeur est fournie ; sinon order_id est utilisé. Aussi exporté comme comment Pine Script. Aucun impact sur les calculs de backtest.
comment_profit
 Texte
 Optionnel
Ce paramètre n’a aucun effet sur le backtest. Il sert uniquement à définir le paramètre Pine Script comment_profit. Il ne modifie pas la colonne Signal.
comment_loss
 Texte
 Optionnel
Ce paramètre n’a aucun effet sur le backtest. Il sert uniquement à définir le paramètre Pine Script comment_loss. Il ne modifie pas la colonne Signal.
comment_trailing
 Texte
 Optionnel
Ce paramètre n’a aucun effet sur le backtest. Il sert uniquement à définir le paramètre Pine Script comment_trailing. Il ne modifie pas la colonne Signal.
alert_message
 Texte
 Optionnel
Ce paramètre n’a aucun effet sur le backtest. Il sert uniquement à définir le paramètre Pine Script alert_message.
alert_profit
 Texte
 Optionnel
Ce paramètre n’a aucun effet sur le backtest. Il sert uniquement à définir le paramètre Pine Script alert_profit.
alert_loss
 Texte
 Optionnel
Ce paramètre n’a aucun effet sur le backtest. Il sert uniquement à définir le paramètre Pine Script alert_loss.
alert_trailing
 Texte
 Optionnel
Ce paramètre n’a aucun effet sur le backtest. Il sert uniquement à définir le paramètre Pine Script alert_trailing.
disable_alert
 Booléen
 Optionnel
Ce paramètre n’a aucun effet sur le backtest. Il sert uniquement à définir le paramètre Pine Script disable_alert. Valeur par défaut : false.
wait_candles
 Entier
 Optionnel
Nombre de bougies a attendre avant de valider le bloc et passer au suivant. Utilisez 0 pour desactiver le delai. Ce delai ne change pas l’execution des ordres.
Valeur par defaut : 0