LIMIT
LIMIT in ProBacktest e ProOrder inserisce un ordine pendente che viene eseguito a un prezzo indicato o migliore. Sintassi con BUY, SELL e SELLSHORT, esempi, insidie.
Sintassi
BUY quantity CONTRACT AT price LIMITSELLSHORT quantity CONTRACT AT price LIMITSELL AT price LIMIT
EXITSHORT AT price LIMITParametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
price | espressione numerica | nessuno | Il livello del limit. L'ordine viene eseguito a questo prezzo o migliore, più basso per un acquisto, più alto per una vendita. |
Come funziona
LIMIT è una delle tre modalità di esecuzione delle istruzioni di ordine, insieme a MARKET per esecuzione immediata e STOP per gli ordini stop pendenti. Un ordine limit indica il prezzo peggiore accettabile. Per gli ingressi, BUY ... LIMIT si colloca sotto il mercato corrente e viene eseguito a un ribasso fino al livello, e SELLSHORT ... LIMIT si colloca sopra di esso e viene eseguito su un rialzo. Per le uscite, SELL ... LIMIT e EXITSHORT ... LIMIT sono gli ordini standard di take profit, che chiudono la posizione quando il prezzo raggiunge un livello favorevole.
La direzione rispetto al mercato conta. Un limit di acquisto inserito sopra il prezzo corrente è già eseguibile a mercato e viene eseguito immediatamente, comportandosi come un ordine a mercato. Il comportamento pendente si manifesta solo quando il livello si trova sul lato passivo, sotto il mercato per gli acquisti, sopra per le vendite.
Gli ordini pendenti in ProBacktest e ProOrder hanno una durata di una bar. Un ordine limit non eseguito viene annullato alla fine della bar successiva, quindi una strategia che vuole mantenere l'ordine attivo più a lungo deve reinviarlo a ogni bar finché la regola di ingresso o di uscita è vera. Inviare un nuovo ordine pendente nella stessa direzione sostituisce quello precedente, il che rende anche possibile spostare il livello bar per bar.
Esempi
Esempio 1, Comprare un ribasso dopo un segnale 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
ENDIFQuando la linea MACD incrocia sopra lo zero, viene inserito un ordine limit 10 unità di prezzo sotto il prezzo di chiusura. L'operazione si apre solo se il prezzo scende a quel livello entro la bar successiva, migliorando l'ingresso al costo di perdere eventualmente il movimento. Questo è l'esempio del riferimento ufficiale.
Esempio 2, Andare short su un rialzo a un offset fisso (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'ingresso short resta sopra il mercato, quindi la posizione si apre solo su un'ulteriore spinta verso l'alto, a un prezzo migliore di una vendita immediata a mercato.
Esempio 3, Uscita in presa di profitto reinviata a ogni bar (ProOrder)
// keep a resting take-profit 100 points above the entry price
IF longonmarket THEN
SELL AT tradeprice + 100 * pointsize LIMIT
ENDIFPoiché gli ordini pendenti scadono dopo una bar, l'uscita viene reinviata a ogni bar mentre la posizione long è aperta, mantenendo un obiettivo di profitto permanente 100 punti sopra il prezzo di esecuzione.
Errori e insidie comuni
- Durata di una bar. Un ordine limit non eseguito viene annullato dopo la bar successiva. Il codice che inserisce l'ordine una sola volta dentro un blocco di ingresso e non lo ripete mai di solito opera molto meno del previsto. Reinvialo finché la condizione è vera, come nell'esempio 3.
- I limit eseguibili a mercato vengono eseguiti subito. Un limit di acquisto sopra il prezzo corrente, o un limit di vendita sotto di esso, viene eseguito immediatamente. Un errore di segno nell'offset converte silenziosamente un ingresso paziente in uno istantaneo.
- LIMIT non è STOP. I buy limit stanno sotto il mercato, i buy stop sopra. Gli ingressi breakout richiedono
STOP, gli ingressi in pullback richiedonoLIMIT. Confonderli inverte la logica della strategia. - Le esecuzioni nel backtest sono ottimistiche. ProBacktest esegue un limit appena il prezzo tocca il livello. In tempo reale, un livello toccato senza attraversamento può lasciare l'ordine non eseguito, quindi i backtest sovrastimano il tasso di esecuzione degli ingressi limit stretti.
Istruzioni correlate
BUY, apre una posizione long.SELL, chiude una posizione long.SELLSHORT, apre una posizione short.EXITSHORT, chiude una posizione short.MARKET, esecuzione immediata al prezzo corrente.STOP (pending), ordine pendente attivato quando il prezzo attraversa un livello.ONMARKET, vero mentre una qualsiasi posizione è aperta.TRADEPRICE, il prezzo di ingresso della posizione corrente.