LIMIT
LIMIT dans ProBacktest et ProOrder place un ordre en attente qui s'exécute à un prix indiqué ou meilleur. Syntaxe avec BUY, SELL et SELLSHORT, exemples, pièges.
Syntaxe
BUY quantity CONTRACT AT price LIMITSELLSHORT quantity CONTRACT AT price LIMITSELL AT price LIMIT
EXITSHORT AT price LIMITParamètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
price | expression numérique | aucun | Le niveau limite. L'ordre s'exécute à ce prix ou mieux, plus bas pour un achat, plus haut pour une vente. |
Comment ça marche
LIMIT est l'un des trois modes d'exécution des instructions d'ordre, aux côtés de MARKET pour une exécution immédiate et STOP pour les ordres stop en attente. Un ordre limite indique le pire prix acceptable. Pour les entrées, BUY ... LIMIT se place sous le marché actuel et s'exécute lors d'un repli jusqu'au niveau, et SELLSHORT ... LIMIT se place au-dessus et s'exécute lors d'un rebond. Pour les sorties, SELL ... LIMIT et EXITSHORT ... LIMIT sont les ordres de prise de bénéfice standards, qui clôturent la position dès que le prix atteint un niveau favorable.
La direction par rapport au marché compte. Un ordre limite d'achat placé au-dessus du prix courant est déjà exécutable au marché et s'exécute immédiatement, se comportant comme un ordre au marché. Le comportement en attente n'apparaît que lorsque le niveau se situe du côté passif, sous le marché pour les achats, au-dessus pour les ventes.
Les ordres en attente dans ProBacktest et ProOrder ont une durée de vie d'un bar. Un ordre limite non exécuté est annulé à la fin du bar suivant, donc une stratégie qui souhaite que l'ordre reste actif plus longtemps doit le resoumettre à chaque bar tant que la règle d'entrée ou de sortie est vraie. Soumettre un nouvel ordre en attente dans la même direction remplace le précédent, ce qui permet aussi de faire glisser le niveau bar par bar.
Exemples
Exemple 1, Acheter un creux après un signal MACD (ProBacktest)
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0
IF long THEN
// rest a buy order 10 price units below the close
BUY 1 LOT AT close-10 LIMIT
ENDIFLorsque la ligne MACD croise au-dessus de zéro, un ordre limite est placé 10 unités de prix sous le cours de clôture. Le trade ne s'ouvre que si le prix descend à ce niveau au cours du bar suivant, ce qui améliore l'entrée au risque de manquer le mouvement. C'est l'exemple de la référence officielle.
Exemple 2, Prendre un short dans un rallye à un décalage fixe (ProOrder)
// fade signal: RSI overbought
overbought = RSI[14](close) > 70
IF NOT onmarket AND overbought THEN
// sell short if price rallies 20 points above the current close
SELLSHORT 1 CONTRACT AT close + 20 * pointsize LIMIT
SET STOP PLOSS 40
ENDIFL'entrée short repose au-dessus du marché, la position ne s'ouvre donc que sur une nouvelle poussée vers le haut, à un meilleur prix qu'une vente au marché immédiate.
Exemple 3, Sortie en prise de profit resoumise à chaque bar (ProOrder)
// keep a resting take-profit 100 points above the entry price
IF longonmarket THEN
SELL AT tradeprice + 100 * pointsize LIMIT
ENDIFComme les ordres en attente expirent après un bar, la sortie est resoumise à chaque bar tant que le long est ouvert, maintenant un objectif de profit permanent 100 points au-dessus du prix d'exécution.
Erreurs et pièges courants
- Durée de vie d'un bar. Un ordre limite non exécuté est annulé après le bar suivant. Un code qui place l'ordre une seule fois dans un bloc d'entrée et ne le répète jamais trade généralement bien moins que prévu. Resoumettez-le tant que la condition est vraie, comme dans l'exemple 3.
- Les ordres limites exécutables au marché s'exécutent immédiatement. Un ordre limite d'achat au-dessus du prix courant, ou un ordre limite de vente en dessous, est exécuté immédiatement. Une erreur de signe dans le décalage transforme silencieusement une entrée patiente en entrée instantanée.
- LIMIT n'est pas STOP. Les ordres à cours limité d'achat se placent sous le marché, les ordres stop d'achat au-dessus. Les entrées en breakout nécessitent
STOP, les entrées en pullback nécessitentLIMIT. Les confondre inverse la logique de la stratégie. - Les exécutions en backtest sont optimistes. ProBacktest exécute un ordre limite dès que le prix touche le niveau. En réel, un niveau touché sans dépassement peut laisser l'ordre non exécuté, donc les backtests surestiment le taux d'exécution des entrées à limite serrée.
Instructions liées
BUY, ouvre une position long.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.STOP (pending), ordre en attente déclenché lorsque le prix franchit un niveau.ONMARKET, vrai tant qu'une position est ouverte.TRADEPRICE, le prix d'entrée de la position courante.