BUY
BUY dans ProBacktest et ProOrder ouvre une position long. Couvre les unités de quantité, les types d'ordre AT MARKET, LIMIT et STOP, ainsi que les erreurs courantes de dimensionnement et d'entrée.
Syntaxe
BUY x SHARES AT MARKETBUY x CONTRACT AT price LIMITBUY x CONTRACT AT price STOPParamètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
x | nombre | requis | Quantité de l'ordre, interprétée selon l'unité qui suit. |
| unité | SHARES, CONTRACT, LOT, CASH | requis | Unité de taille. CASH indique un montant en devise du compte au lieu d'un nombre d'unités. |
| type d'ordre | AT MARKET, AT price LIMIT, AT price STOP | requis | Exécution immédiate au prix actuel, ou ordre en attente à un niveau indiqué. |
Comment ça marche
BUY place un ordre d'entrée long. Avec AT MARKET, l'ordre est exécuté au prochain prix disponible. Avec AT price LIMIT, un ordre en attente attend d'acheter au niveau indiqué ou meilleur, en dessous du prix actuel. Avec AT price STOP, un ordre en attente achète dès que le prix franchit à la hausse le niveau indiqué, la forme habituelle pour les entrées en breakout.
L'unité de quantité doit correspondre à l'instrument : SHARES pour les actions, CONTRACT pour les futures et les CFD, LOT pour le forex, et CASH pour dimensionner l'ordre en montant de la devise du compte. L'accumulation de position est régie par CumulateOrders. Lorsqu'il est activé, ce qui est le cas par défaut, les ordres BUY répétés s'empilent en une position plus grande ; avec DEFPARAM CumulateOrders = false, un nouveau BUY alors que la position est déjà long est ignoré.
Les entrées sont normalement encadrées par un garde d'état de position tel que IF NOT LongOnMarket THEN ou IF NOT OnMarket THEN, de sorte que les ordres ne se déclenchent que lorsque la stratégie compte détenir une nouvelle position.
Exemples
Exemple 1, Entrée au marché conditionnelle (ProBacktest)
// Enter long at market when flat and the entry conditions hold
IF NOT LongOnMarket AND LongConditions THEN
BUY 1 SHARES AT MARKET
ENDIFUne action est achetée au prix du marché actuel, mais uniquement lorsqu'aucune position long n'est déjà ouverte. C'est l'exemple de la référence officielle.
Exemple 2, Entrée en breakout avec un ordre stop en attente (ProOrder)
DEFPARAM CumulateOrders = false
// Buy a break of the 20-bar high
entryLevel = Highest[20](high)
IF NOT onmarket THEN
BUY 1 CONTRACT AT entryLevel STOP
ENDIFL'ordre stop en attente se place au-dessus du marché et n'est exécuté que si le prix franchit à la hausse le plus haut des 20 bars précédents.
Exemple 3, Entrée dimensionnée en cash avec un filtre de tendance (ProOrder)
DEFPARAM CumulateOrders = false
// Size the position as 5000 units of account currency
IF NOT onmarket AND close > Average[50](close) THEN
BUY 5000 CASH AT MARKET
ENDIF
// Exit when price loses the average
IF longonmarket AND close < Average[50](close) THEN
SELL AT MARKET
ENDIFCASH dimensionnement maintient l'exposition constante en valeur monétaire sur des instruments de prix différents, au lieu de fixer un nombre d'unités.
Erreurs et pièges courants
- Pyramidage involontaire.
CumulateOrdersest activé par défaut, donc une condition d'entrée qui reste vraie pendant plusieurs bars empile un nouveau BUY sur chacune d'elles. Soit définissezDEFPARAM CumulateOrders = falseou protéger l'entrée avecNOT LongOnMarket. - Les ordres en attente expirent après un bar. A
LIMITouSTOPordre qui n'est pas exécuté sur le bar suivant est annulé. Les entrées en attente persistantes doivent être resoumises à chaque bar tant que le setup reste valide. - Mauvaise unité pour l'instrument.
SHARESsur une paire forex ouLOTsur une action ne dimensionne pas l'ordre comme prévu. Adaptez l'unité au marché, ou utilisezCASHpour une taille exprimée en devise. - BUY comme sortie de short. Clôturer une position short est le rôle d'EXITSHORT. Un BUY d'une taille supérieure au short ouvert inverse la position au lieu de simplement la clôturer, ce qui est rarement le comportement souhaité.
Instructions liées
SELL, clôture une position long.SELLSHORT, ouvre une position short.EXITSHORT, clôture une position short.MARKET, exécution immédiate au prix courant.LIMIT, ordre en attente à un prix indiqué ou meilleur.STOP, ordre en attente déclenché lorsque le prix franchit un niveau.CONTRACT, unité de quantité pour les futures et les CFD.SHARES, unité de quantité pour les actions.LOT, unité de quantité pour le forex.CASH, dimensionne un ordre dans la devise du compte.ONMARKET, vrai tant qu'une position est ouverte.CumulateOrders, contrôle si les entrées répétées se cumulent.