SELL
SELL in ProBacktest e ProOrder chiude una posizione long aperta. SELL esce dai long mentre SELLSHORT apre gli short. Sintassi, tipi di ordine ed esempi spiegati.
Sintassi
SELL AT MARKETSELL x CONTRACT AT MARKETSELL AT price STOPCome funziona
SELL è l'istruzione di uscita dal lato long. Scritta senza una quantità, SELL AT MARKET chiude l'intera posizione long aperta al prezzo successivo disponibile. Con una quantità, come SELL 1 CONTRACT AT MARKET, chiude solo una parte di una posizione più grande, che è il modo in cui si esprime l'uscita graduale.
Sono disponibili anche le forme in attesa: SELL AT price LIMIT esce a un livello indicato o migliore sopra il mercato, un ordine di take profit, e SELL AT price STOP esce quando il prezzo scende sotto un livello, un ordine stop manuale. Come per tutti gli ordini pendenti in ProBacktest e ProOrder, un ordine non eseguito viene annullato dopo un bar e deve essere reinviato finché la regola di uscita resta valida.
La distinzione con SELLSHORT è importante. SELL riduce o chiude soltanto una posizione long; quando la strategia è fuori mercato o short, un ordine SELL non ha effetto. SELLSHORT apre una nuova posizione short, ed EXITSHORT la chiude. Le quattro istruzioni di ordine si accoppiano come BUY con SELL per il lato long, e SELLSHORT con EXITSHORT per il lato short.
Esempi
Esempio 1, Uscita basata su regole da una posizione long (ProBacktest)
// Close the long at market when the exit conditions are met
IF LongOnMarket AND ExitConditions THEN
SELL AT MARKET
ENDIFLa posizione si chiude al prezzo di mercato corrente quando la regola di uscita si attiva mentre è aperta un'operazione long. Questo è l'esempio della documentazione ufficiale.
Esempio 2, Riduzione di metà della posizione dopo un guadagno (ProOrder)
DEFPARAM CumulateOrders = false
// Enter with two contracts when flat
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
BUY 2 CONTRACT AT MARKET
ENDIF
// Take half off after a 2 percent gain from entry
IF longonmarket AND close >= tradeprice * 1.02 AND countofposition = 2 THEN
SELL 1 CONTRACT AT MARKET
ENDIF
// Close the remainder when the trend turns
IF longonmarket AND close CROSSES UNDER Average[50](close) THEN
SELL AT MARKET
ENDIFUn SELL con quantità specificata chiude parte della posizione, mentre il SELL finale senza quantità azzera ciò che rimane.
Esempio 3, Uscita stop pendente sotto l'ingresso (ProOrder)
// Maintain a resting exit 50 points below the entry price
IF longonmarket THEN
SELL AT tradeprice - 50 * pointsize STOP
ENDIFL'ordine stop pendente viene reinviato su ogni barra mentre il long è aperto, mantenendo un'uscita rigida 50 punti sotto il prezzo di esecuzione.
Errori e insidie comuni
- SELL non è SELLSHORT. SELL chiude i long; SELLSHORT apre gli short. Una strategia che intende andare short e che invia SELL mentre è fuori mercato non fa nulla, e l'errore è silenzioso perché l'ordine viene semplicemente ignorato.
- Nessun long da chiudere. Quando la strategia è flat o short, SELL non ha effetto. Proteggi i blocchi di uscita con
IF LongOnMarket THENcosì l'intento del codice resta esplicito. - Le uscite pendenti scadono dopo una barra. Un ordine in attesa
SELL ... STOPoSELL ... LIMITl'ordine viene cancellato se non eseguito dopo la barra successiva. Reinvialo a ogni barra mentre la posizione è aperta, come nell'esempio 3. - Discrepanza di quantità parziale. Un SELL con quantità specificata superiore alla posizione aperta chiude semplicemente la posizione; non la inverte in short. Verifica la dimensione con COUNTOFPOSITION prima di ridurre con importi fissi.
Istruzioni correlate
BUY, apre una posizione long.SELLSHORT, apre una posizione short.EXITSHORT, chiude una posizione short.MARKET, esecuzione immediata al prezzo corrente.LIMIT, ordine pendente a un prezzo indicato o migliore.STOP, ordine pendente attivato quando il prezzo attraversa un livello.LONGONMARKET, vero mentre una posizione long è aperta.ONMARKET, vero mentre una qualsiasi posizione è aperta.TRADEPRICE, il prezzo di esecuzione di un'operazione passata.