Rejoignez-nous
ProBacktest/probacktest · proorder

$TRAILING

L'instruction $TRAILING définit un trailing stop sous forme de distance monétaire fixe dans la devise de l'instrument avec SET STOP $TRAILING dans ProBacktest et ProOrder.

Syntaxe

probuilder
SET STOP $TRAILING x

Paramètres

NomTypePar défautDescription
xnumériqueaucunRestitution maximale autorisée depuis le meilleur prix atteint depuis l'entrée, exprimée dans la devise de l'instrument traité.

Comment ça marche

$TRAILING se combine avec SET STOP uniquement. Il se comporte comme SET STOP $LOSS avec une différence : le prix de référence se décale par cliquet. Pour une position long, le stop suit sous le plus haut prix atteint depuis l'entrée, à une distance équivalente à x unités de devise compte tenu de la position size, et il ne redescend jamais. Pour une position short, il suit au-dessus du prix le plus bas atteint. Lorsque le prix retrace de toute la distance, la position se clôture.

Le montant en argent est traduit en écart de prix via la position size et la valeur du point de l'instrument, de sorte que le même x donne un suivi de prix plus serré sur une position plus grande. Le réglage persiste pour la position courante et toutes les positions futures jusqu'à ce qu'un autre SET STOP appel le remplace, et une valeur de 0 le désactive.

L'effet pratique est un plafond sur la part de profit latent que le trade peut restituer, mesurée en termes pertinents pour le compte plutôt qu'en points ou en pourcentage.

Exemples

Exemple 1, Entrée sur repli avec un suivi de 100 unités monétaires (ProBacktest)

probuilder
// Moving averages framing the pullback
i1 = Average[100](close)
i2 = Average[5](close)

// Uptrend pullback with three rising lows
tradeinitiate = Close > i1 AND Close < i2 AND Low[3] > Low[2] AND Low[2] > Low[1] AND Low[1] > Low

IF NOT LongOnMarket AND tradeinitiate THEN
    BUY 1 CONTRACTS AT MARKET
    // Give the trade at most 100 of retracement from its best price
    SET STOP $TRAILING 100
ENDIF

La stratégie achète les replis dans une tendance haussière. À partir de l'entrée, le stop suit le plus haut prix atteint et sort après un retracement valant 100 unités monétaires.

Exemple 2, Suivi monétaire sur un breakout short (ProOrder)

probuilder
support = Lowest[20](low)
IF NOT ShortOnMarket AND close crosses under support[1] THEN
    SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// The stop trails above the lows, exit after a 75 currency-unit bounce
SET STOP $TRAILING 75

Du côté short, le suivi accompagne le prix vers le bas ; seul un rebond valant 75 unités monétaires contre la position déclenche la sortie.

Exemple 3, Stop monétaire statique d'abord, suivi après activation (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT OnMarket AND close crosses over Highest[20](high)[1] THEN
    BUY 1 CONTRACT AT MARKET
    // Fixed risk while the breakout proves itself
    SET STOP $LOSS 120
ENDIF

// Once the trade is 100 ahead in money terms, switch to a trail
IF LongOnMarket AND (close - TRADEPRICE) * POINTVALUE / POINTSIZE >= 100 THEN
    SET STOP $TRAILING 60
ENDIF

Une sortie en deux phases exprimée entièrement en argent : un plafond de risque statique de 120 à l'entrée, remplacé par un abandon de gain suiveur de 60 dès que le gain latent atteint 100. La conversion utilise POINTVALUE et POINTSIZE pour convertir le mouvement de prix en devise pour une position d'un contrat.

Erreurs et pièges courants

  • Mauvais appariement de SET. $TRAILING est une instruction de stop et se combine avec SET STOP uniquement. Il n'y a pas de SET TARGET $TRAILING ; les objectifs de gain utilisent $PROFIT.
  • Argent, pas points. SET STOP $TRAILING 100 autorise un rendu de 100 unités monétaires, et non 100 points. La variante en points est PTRAILING, et confondre les deux modifie la distance du stop de la valeur du point de l'instrument.
  • La position size redimensionne le suivi. Comme la distance monétaire est répartie sur la position, doubler la quantité divise par deux l'écart de prix. Des changements de position size peuvent transformer un suivi confortable en un suivi situé à l'intérieur du bruit normal des barres.
  • Un seul emplacement de stop. $TRAILING, %TRAILING, $LOSS, PLOSS et BREAKEVEN écrasent le même stop interne ; seul le plus récent SET STOP est actif. Alterner entre eux à chaque bar produit des sorties erratiques.
  • Granularité du backtest. ProBacktest met à jour le niveau suivi à partir des données de barres. L'exécution en réel suit tick par tick, les sorties en réel peuvent donc différer légèrement de celles du backtest sur les barres rapides.
  • %TRAILING, trailing stop en pourcentage du prix de la position.
  • PTRAILING, trailing stop sous forme de distance en points.
  • TRAILING, vue d'ensemble de la famille trailing stop.
  • $LOSS, stop loss statique sous forme de montant fixe en devise.
  • $PROFIT, take profit sous forme de montant fixe en argent.
  • BREAKEVEN, déplace le stop ou l'objectif au prix d'entrée.
  • STOP, ordres stop en attente et la famille SET STOP.
  • POINTVALUE, valeur en devise d'un point, utilisée dans la conversion argent-prix.
  • LONGONMARKET, vrai tant qu'une position long est ouverte.