Rejoignez-nous
ProBacktest/probacktest · proorder

CONTRACT

CONTRACT est une unité de quantité ProBacktest et ProOrder qui définit la taille de l'ordre en contrats, comme dans BUY 5 CONTRACTS AT MARKET, interchangeable avec SHARES ou LOT.

Syntaxe

probuilder
x CONTRACT

Utilisé à l'intérieur d'une instruction d'ordre :

probuilder
BUY 5 CONTRACTS AT MARKET

Paramètres

NomTypePar défautDescription
xnumérique1 à l'entrée, position complète à la sortieNombre de contrats pour l'ordre. Accepte des littéraux ou des expressions numériques.

Comment ça marche

CONTRACT déclare combien de contrats un ordre négocie. Il ne porte aucune direction propre : BUY 5 CONTRACTS AT MARKET ouvre ou renforce une position long, SELLSHORT 5 CONTRACTS AT MARKET ouvre ou renforce un short, et SELL 2 CONTRACTS AT MARKET réduit un long de deux contrats.

Le mot-clé est l'un de plusieurs mots d'unité interchangeables. SHARE, CONTRACTS, PERPOINT, LOT et LOTS sont acceptés à la même position sur tout type d'instrument, et l'orthographe au singulier ou au pluriel ne change rien au fonctionnement. Sur le Forex, la quantité indiquée est multipliée par la taille d'un lot.

Lorsqu'aucune quantité n'est donnée, les valeurs par défaut s'appliquent. Un ordre d'entrée comme BUY AT MARKET négocie une unité. Un ordre de sortie tel que SELL AT MARKET ou EXITSHORT AT MARKET clôture toute la position ouverte, quelle que soit sa taille.

La quantité peut être une variable, c'est ainsi que les règles de position size, par exemple un nombre de contrats dérivé de la volatilité ou de l'equity du compte, sont intégrées au flux d'ordres.

Exemples

Exemple 1, Entrée fixe de cinq contrats (ProBacktest)

probuilder
long = close crosses over Average[50](close)
IF NOT LongOnMarket AND long THEN
    // Order size fixed at five contracts
    BUY 5 CONTRACTS AT MARKET
ENDIF
SET STOP PLOSS 40

Le croisement des moyennes mobiles déclenche une entrée long d'exactement cinq contrats, la taille donnée par l'unité CONTRACT.

Exemple 2, Nombre de contrats ajusté à la volatilité (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Fewer contracts when the market is volatile
atr = AverageTrueRange[14](close)
n = MAX(1, ROUND(200 / atr))

IF NOT OnMarket AND RSI[14](close) crosses over 50 THEN
    BUY n CONTRACT AT MARKET
ENDIF
SET STOP %LOSS 2

Le nombre de contrats est une variable recalculée à chaque bar : un marché calme autorise davantage de contrats, un marché volatil moins, avec un plancher de un.

Exemple 3, Sortie partielle en contrats (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT OnMarket AND close crosses over Highest[20](high)[1] THEN
    BUY 4 CONTRACTS AT MARKET
ENDIF

// Bank half the position after a favorable move, keep the rest running
IF LongOnMarket AND close >= TRADEPRICE * 1.02 THEN
    SELL 2 CONTRACTS AT MARKET
ENDIF
SET STOP %TRAILING 1.5

Indiquer une quantité sur l'ordre de sortie ne ferme que ce nombre de contrats, ici deux sur quatre, tandis que le reste demeure ouvert sous le trailing stop.

Erreurs et pièges courants

  • CONTRACT définit la taille, pas la direction. Le mot-clé n'ouvre et ne clôture jamais rien par lui-même. L'instruction qui l'entoure, BUY, SELL, SELLSHORT ou EXITSHORT, décide du sens du trade.
  • Multiplication des lots sur le Forex. Sur les instruments Forex, la quantité est multipliée par la taille du lot, donc BUY 1 CONTRACT trade un lot entier, non une unité de devise. Vérifiez la définition du lot de l'instrument avant de dimensionner.
  • Les quantités non précisées reviennent aux valeurs par défaut. BUY AT MARKET trade discrètement une unité et SELL AT MARKET clôture toute la position. Un nombre manquant n'est pas une erreur, une faute de frappe qui supprime la quantité change donc la position size sans avertissement.
  • Les nombres fractionnaires sont arrondis. Une expression calculée telle que capital / price donne rarement un entier. Encadrez les formules de calcul de taille dans ROUND, ou ajoutez un plancher explicite, pour que la quantité demandée reste intentionnelle.
  • CASH, quantité de l'ordre exprimée en montant monétaire.
  • LOT, quantité de l'ordre en lots.
  • SHARES, quantité de l'ordre en nombre d'actions.
  • BUY, ouvre une position long ou la renforce.
  • SELL, ferme ou réduit une position long.
  • SELLSHORT, ouvre une position short ou la renforce.
  • EXITSHORT, ferme ou réduit une position short.
  • MARKET, exécution immédiate au prix courant.
  • COUNTOFPOSITION, taille de la position ouverte en unités.