Rejoignez-nous
ProBacktest/probacktest · proorder

PTRAILING

SET STOP PTRAILING in ProBacktest and ProOrder sets a trailing stop that follows price at a fixed distance in points. PTRAILING syntax, examples, and gotchas.

Syntaxe

probuilder
SET STOP PTRAILING x

Paramètres

NomTypePar défautDescription
xnombreaucunDistance en points entre le prix de marché et le trailing stop. Accepte les littéraux, les variables et les expressions.

Comment ça marche

SET STOP PTRAILING déclare un ordre stop dynamique qui suit le marché à un nombre fixe de points. Pour une position long, le stop se place x points sous le prix le plus haut atteint depuis l'entrée ; quand le prix inscrit un nouveau plus haut, le stop monte avec lui, et quand le prix baisse le stop conserve son niveau. La position se ferme dès que le prix revient de x points depuis son meilleur niveau. Les positions short reproduisent ce comportement en miroir au-dessus du marché.

Comme toutes les déclarations SET, l'instruction est persistante. Déclarée une fois, généralement sur sa propre ligne en dehors de tout bloc IF, elle s'applique à la position actuelle et à toutes les positions suivantes jusqu'à ce qu'une autre SET STOP l'appel le remplace.

La distance est mesurée en points. Les variantes voisines couvrent d'autres unités : SET STOP TRAILING pour les unités de prix, SET STOP %TRAILING pour le pourcentage, et SET STOP $TRAILING pour la devise du compte.

Exemples

Exemple 1, Trailing stop sur une entrée en pullback (ProBacktest)

probuilder
// Trend filter and short-term average
i1 = average(close)[100]
i2 = average(close)[5]

// Enter on a three-bar pullback inside an uptrend
tradeinitiate = Close > i1 AND Close < i2 AND Low[3] > Low[2] AND Low[2] > Low[1] AND Low[1] > Low
tradeclose = Close > Close[1]

IF NOT LongOnMarket AND tradeinitiate THEN
    BUY 1 CONTRACTS AT MARKET
ENDIF

IF LongOnMarket AND tradeclose THEN
    SELL AT MARKET
ENDIF

// Protective stop trails 10 points behind price
SET STOP PTRAILING 10

La stratégie achète les pullbacks au-dessus de la moyenne à 100 bars et sort sur la force, tandis que le trailing stop limite tout retracement à 10 points. Ceci est l'exemple tiré de la référence officielle.

Exemple 2, Entrée en breakout protégée par un suivi en points (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Enter on a 20-bar breakout
IF NOT onmarket AND close > highest[20](high)[1] THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Let the trade run, exit after a 25-point retracement
SET STOP PTRAILING 25

Aucun objectif fixe n'est utilisé. Le trailing stop est la seule sortie, de sorte que le trade reste ouvert tant que le prix continue de progresser sans pullback de 25 points.

Exemple 3, Suivre une position short (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Short when price loses the 50-bar average
IF NOT onmarket AND close CROSSES UNDER Average[50](close) THEN
  SELLSHORT 1 CONTRACT AT MARKET
ENDIF

// Stop trails 15 points above the falling price
SET STOP PTRAILING 15

Pour un short, le stop se situe au-dessus du marché et descend par paliers à mesure que le prix fait de nouveaux plus bas, clôturant le trade après un rebond de 15 points.

Erreurs et pièges courants

  • Des points, pas des unités de prix ni des pourcentages. PTRAILING suit en points, TRAILING en unités de prix, %TRAILING en pourcentage et $TRAILING dans la devise du compte. Choisir la mauvaise variante sur un instrument dont la taille de point est petite crée un stop qui se trouve en pratique au marché ou absurdement loin.
  • Un seul emplacement de stop par position. SET STOP PTRAILING, SET STOP LOSS, et SET STOP BREAKEVEN écrivent toutes dans le même stop interne, et le dernier appel l'emporte. Alterner entre elles bar par bar produit des sorties erratiques ; choisissez une seule politique de stop par trade.
  • Les backtests exécutent les trailing stops de façon optimiste. ProBacktest évalue le suivi sur les données des bars et suppose des exécutions nettes au niveau du stop. L'exécution en réel sur des marchés rapides traverse le niveau avec du slippage, de sorte que les résultats réels sont systématiquement moins bons que la simulation pour les suivis serrés.
  • Un suivi trop serré se transforme en sortie instantanée. Une distance inférieure au bruit normal d'un bar à l'autre de l'instrument clôture la plupart des trades en quelques bars. Dimensionnez la distance à partir de la volatilité mesurée, par exemple un multiple de l'ATR converti en points, plutôt que d'une estimation fixe.
  • TRAILING, distance du trailing stop en unités de prix.
  • %TRAILING, distance de trailing stop en pourcentage.
  • $TRAILING, distance de trailing stop dans la devise du compte.
  • SET, préfixe de toutes les déclarations de gestion des ordres.
  • STOP, le volet stop de protection de l'instruction SET.
  • BREAKEVEN, déplace le stop ou l'objectif au prix d'entrée.
  • PLOSS, distance de stop loss fixe en points.
  • TRADEPRICE, le prix d'entrée de la position courante.
  • POINTSIZE, la valeur d'un point de l'instrument.
  • LONGONMARKET, vrai tant qu'une position long est ouverte.