Rejoignez-nous
ProBacktest/probacktest · proorder

SHARES

SHARES dans ProBacktest et ProOrder dimensionne un ordre en nombre d'actions pour les stratégies sur actions et CFD. Couvre la syntaxe, le choix de l'unité et des exemples détaillés.

Syntaxe

probuilder
[BUY|SELLSHORT] quantity SHARES [AT MARKET|AT price LIMIT|AT price STOP]

Comment ça marche

SHARES nomme l'unité dans laquelle la quantité de l'ordre est comptée. BUY 100 SHARES AT MARKET achète 100 actions au prochain prix disponible. Le mot-clé suit le nombre et précède le type d'ordre, qu'il s'agisse de AT MARKET, un AT price LIMIT, ou un AT price STOP.

L'unité de dimensionnement doit correspondre à l'instrument. SHARES convient aux actions et aux CFD sur actions, CONTRACT convient aux futures et aux CFD, et LOT convient au forex. Choisir la mauvaise unité dimensionne la position de façon incorrecte pour ce marché. Le fait que des ordres répétés s'additionnent en une position plus grande est régi par CumulateOrders, exactement comme avec toute autre unité de dimensionnement.

Exemples

Exemple 1, Entrée short dimensionnée en actions (ProBacktest)

probuilder
// Sell short one share when MACD crosses below zero and no short is open
myMACD = MACD[12,26,9](close)
shortCondition = myMACD CROSSES UNDER 0
IF NOT ShortOnMarket AND shortCondition THEN
    SELLSHORT 1 SHARES AT MARKET
ENDIF

C'est le modèle de la référence officielle. L'ordre vend une action au marché lorsque l'histogramme MACD croise sous zéro et qu'aucune position short n'est déjà ouverte.

Exemple 2, Entrée long avec un nombre d'actions fixe (ProOrder)

probuilder
DEFPARAM CumulateOrders = false
// Buy 100 shares on a break above the 20-bar high
IF NOT LongOnMarket AND close CROSSES OVER Highest[20](high) THEN
    BUY 100 SHARES AT MARKET
ENDIF

La position est de 100 actions fixes à chaque déclenchement de l'entrée, la protection de position empêchant une seconde entrée lorsque l'on est déjà long.

Exemple 3, Ordre stop en attente dimensionné en actions (ProOrder)

probuilder
DEFPARAM CumulateOrders = false
// Rest a stop entry above the market for 50 shares
entryLevel = Highest[20](high)
IF NOT OnMarket THEN
    BUY 50 SHARES AT entryLevel STOP
ENDIF

L'ordre stop en attente n'est exécuté que si le prix franchit à la hausse le plus haut de 20 bars, achetant 50 actions à ce niveau.

Erreurs et pièges courants

  • Mauvaise unité pour le marché. SHARES sur une paire forex ou un contrat futures ne dimensionne pas l'ordre comme prévu. Utilisez CONTRACT pour les futures et les CFD et LOT pour le forex.
  • Actions fractionnaires. Les règles du broker déterminent si une quantité fractionnaire d'actions est acceptée. Un nombre entier est le choix sûr pour la plupart des instruments.
  • Empilement involontaire. CumulateOrders est activé par défaut, donc une entrée qui reste vraie sur plusieurs bars ajoute des titres sur chacun d'eux. Mettez DEFPARAM CumulateOrders = false ou protéger avec NOT LongOnMarket.
  • L'unité seulement, pas l'ordre entier. SHARES n'est qu'un élément d'une ligne d'ordre. Il suit toujours une quantité et s'inscrit dans un BUY ou SELLSHORT instruction avec un type d'ordre.
  • CONTRACT, unité de quantité pour les futures et les CFD.
  • LOT, unité de quantité pour le forex.
  • BUY, ouvre une position long dimensionnée dans une unité choisie.
  • SELLSHORT, ouvre une position short dimensionnée dans une unité choisie.
  • SELL, clôture une position long.
  • EXITSHORT, clôture une position short.
  • MARKET, LIMIT, STOP, les types d'ordre qu'un ordre dimensionné en actions peut utiliser.