SET
SET in ProBacktest and ProOrder introduces order management commands such as SET TARGET PROFIT and SET STOP LOSS. Variants, syntax, and errors explained.
Syntaxe
SET TARGET PROFIT value
SET STOP LOSS valueParamètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
value | nombre | aucun | Distance par rapport au prix d'entrée à laquelle la sortie se déclenche, dans l'unité impliquée par le mot-clé qui suit STOP ou TARGET. Accepte les littéraux, les variables et les expressions. |
Comment ça marche
SET introduces the two families of exit declarations. SET STOP définit où la position se clôture à perte, et SET TARGET définit où elle se clôture en gain. Chaque famille accepte plusieurs mots-clés d'unité : LOSS et PROFIT mesurent la distance en unités de prix, PLOSS et PPROFIT en points, %LOSS et %PROFIT en pourcentage, $LOSS et $PROFIT dans la devise du compte. Au-delà des distances fixes, SET STOP accepte également les variantes trailing TRAILING, PTRAILING, %TRAILING et $TRAILING, et les deux côtés acceptent BREAKEVEN.
Une déclaration SET est persistante. Elle s'applique à la position actuellement ouverte et à toute position ouverte par la suite, jusqu'à ce qu'un autre appel SET du même côté la remplace. Il existe exactement deux emplacements, un côté stop et un côté cible ; dans un emplacement, l'appel le plus récent l'emporte. Écrite sans condition à la fin du code, une déclaration agit comme un encadrement permanent sur tous les trades. Écrite à l'intérieur de blocs IF, elle ajuste la sortie à mesure que le trade évolue, ce qui est la façon d'exprimer la logique de mise à breakeven et de sécurisation des gains.
Les valeurs sont des distances par rapport au prix d'entrée, pas des niveaux de prix absolus. Pour une position long, la distance du stop s'étend sous l'entrée et la distance de la cible au-dessus ; une position short reflète les deux en miroir.
Exemples
Exemple 1, Encadrement permanent sur chaque trade (ProBacktest)
// Standing exit bracket, applies to each position the strategy opens
SET TARGET PROFIT 120
SET STOP LOSS 100Chaque trade porte un take profit à 120 unités de prix de l'entrée et un stop à 100 unités de l'entrée. C'est l'exemple de la référence officielle.
Exemple 2, Encadrement en pourcentage (ProOrder)
DEFPARAM CumulateOrders = false
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Exit at plus 2 percent or minus 1 percent from entry
SET TARGET %PROFIT 2
SET STOP %LOSS 1Les variantes en pourcentage maintiennent l'encadrement proportionnel au prix de l'instrument, ce qui rend le même code réutilisable sur des marchés aux prix différents.
Exemple 3, Resserrement du stop à mesure que le trade progresse (ProOrder)
DEFPARAM CumulateOrders = false
IF NOT onmarket AND close CROSSES OVER highest[20](high)[1] THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Initial stop, replaced by a tighter trailing stop once in profit
IF onmarket AND close - tradeprice < 20 * pointsize THEN
SET STOP PLOSS 20
ELSIF onmarket THEN
SET STOP PTRAILING 10
ENDIFL'emplacement du stop est réécrit à chaque bar, un stop fixe de 20 points en début de trade, puis un trailing stop de 10 points une fois que la position est à 20 points de profit. Le dernier appel SET du côté stop est toujours celui qui est actif.
Erreurs et pièges courants
- SET is not assignment. Les variables sont affectées avec
=, comme dansa = 10. SET ne précède que les mots-clés de gestion des ordres ;SET a 10ne compile pas, etSTOP LOSS 100sans SET ne compile pas non plus. - Des distances, pas des niveaux de prix.
SET STOP LOSS 100place le stop à 100 unités de prix de l'entrée, pas au prix 100. Les niveaux absolus doivent d'abord être convertis en distance par rapport à TRADEPRICE. - Un emplacement par côté, le dernier appel l'emporte. Deux
SET STOPlignes qui s'exécutent toutes les deux sur le même bar ne laissent active que la seconde. Les blocs IF qui se recouvrent sont la cause habituelle d'un stop qui diffère silencieusement de ce qui était prévu. - Les déclarations survivent au trade. Un appel SET continue de s'appliquer aux positions futures jusqu'à son remplacement. Un resserrement conditionnel qui se déclenche tard dans un trade se reporte sur la bar d'entrée du trade suivant, sauf si le code réinitialise l'encadrement lorsqu'aucune position n'est ouverte.
Instructions liées
STOP, le côté stop-loss de l'instruction SET.TARGET, le volet take profit de l'instruction SET.BREAKEVEN, déplace le stop ou l'objectif au prix d'entrée.TRAILING, distance du trailing stop en unités de prix.PTRAILING, distance du trailing stop en points.Set Stop Profit, ordre stop placé à une distance de profit par rapport à l'entrée.Set Target Loss, ordre target placé à une distance de perte depuis l'entrée.PROFIT, distance du take-profit en unités de prix.LOSS, distance de stop loss en unités de prix.PPROFIT, distance de take profit en points.PLOSS, distance du stop-loss en points.