Rejoignez-nous
ProBacktest/probacktest · proorder

PROFIT

SET TARGET PROFIT in ProBacktest and ProOrder places a take profit a fixed number of price units from entry. PROFIT syntax, examples, and common errors.

Syntaxe

probuilder
SET TARGET PROFIT x

Paramètres

NomTypePar défautDescription
xnombreaucunDistance entre le prix d'entrée et le take profit, exprimée en unités de prix de l'instrument. Accepte les littéraux, les variables et les expressions.

Comment ça marche

SET TARGET PROFIT déclare un ordre take profit en attente par rapport au prix d'entrée de la position. Pour une position long, le niveau de sortie se situe x unités de prix au-dessus de l'entrée ; pour une position short, il se situe x unités en dessous. Quand le prix atteint le niveau, la position se ferme automatiquement.

La déclaration est persistante. Une fois exécutée, elle reste active pour la position en cours et pour les positions ouvertes ensuite, jusqu'à ce qu'une autre SET TARGET appel la remplace. Placer l'instruction sur sa propre ligne à la fin du code, en dehors de tout bloc IF, est le schéma courant pour un objectif fixe qui s'applique à chaque trade. L'encadrer de conditions permet à l'objectif de changer en cours de trade, et c'est alors l'appel le plus récent qui définit le niveau actif.

La distance est mesurée en unités de prix, une unité étant le POINTSIZE de l'instrument. Pour des objectifs en pourcentage ou en espèces, utilisez les %PROFIT et $PROFIT variantes au lieu de convertir manuellement.

Exemples

Exemple 1, Entrée MACD avec un objectif de 50 unités (ProBacktest)

probuilder
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0
IF NOT LongOnMarket AND long THEN
    BUY 1 CONTRACTS AT MARKET
ENDIF
// Close the position once it gains 50 price units
SET TARGET PROFIT 50

Une position long s'ouvre lorsque la ligne MACD passe au-dessus de zéro, et le take profit la clôture 50 unités de prix au-dessus de l'entrée. Il s'agit de l'exemple de la référence officielle.

Exemple 2, Encadrement fixe objectif et stop (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Fixed exit bracket around the entry price
SET TARGET PROFIT 120
SET STOP LOSS 60

Chaque position porte le même encadrement, un take profit 120 unités au-dessus de l'entrée et un stop 60 unités en dessous. Les deux déclarations se situent en dehors du bloc d'entrée afin de s'appliquer à tous les trades.

Exemple 3, Objectif dimensionné par la volatilité (ProOrder)

probuilder
atr = AverageTrueRange[14](close)

IF NOT onmarket AND RSI[14](close) < 30 THEN
  BUY 1 CONTRACT AT MARKET
  // Target distance adapts to recent volatility
  SET TARGET PROFIT ROUND(2 * atr)
ENDIF

La distance de l'objectif est recalculée à l'entrée comme deux fois l'ATR actuel, donc les marchés calmes obtiennent des objectifs plus serrés que les marchés volatils.

Erreurs et pièges courants

  • Unités de prix, pas points ni pourcentage. SET TARGET PROFIT mesure sa distance en unités de prix de l'instrument. Pour des points, utilisez SET TARGET PPROFIT, pour le pourcentage SET TARGET %PROFIT, pour la devise du compte SET TARGET $PROFIT. Confondre l'unité produit des objectifs très largement trop serrés ou trop larges.
  • PROFIT ne lit pas le profit. Le mot-clé n'apparaît qu'à l'intérieur de l'instruction SET. Pour lire le résultat courant d'une stratégie ou d'une position, utilisez STRATEGYPROFIT ou POSITIONPERF ; écrire IF profit > 0 ne compile pas.
  • Distance, pas niveau. La valeur est un écart par rapport au prix d'entrée, non un prix absolu. SET TARGET PROFIT 12000 sur un indice coté à 12050 crée un objectif à 12000 unités de distance, et non un objectif à 12000.
  • Le dernier appel l'emporte. Consécutifs SET TARGET les appels s'écrasent mutuellement, seule la déclaration la plus récente est active. Des blocs conditionnels qui se déclenchent sur le même bar peuvent remplacer silencieusement un objectif voulu.
  • PPROFIT, distance de take profit en points.
  • %PROFIT, distance de take profit en pourcentage.
  • $PROFIT, distance de take profit dans la devise du compte.
  • SET, préfixe de toutes les déclarations de gestion des ordres.
  • TARGET, le volet take profit de l'instruction SET.
  • LOSS, distance de stop loss en unités de prix.
  • Set Target Loss, ordre target placé à une distance de perte depuis l'entrée.
  • STRATEGYPROFIT, profit réalisé de la stratégie dans la devise du compte.
  • POSITIONPERF, performance de la position ouverte.
  • TRADEPRICE, le prix d'entrée de la position courante.