Iscriviti ora
ProBacktest/probacktest · proorder

EXITSHORT

EXITSHORT chiude una posizione short aperta in ProBacktest e ProOrder, a mercato oppure come ordine pendente. Sintassi, esempi svolti e insidie comuni.

Sintassi

probuilder
EXITSHORT AT MARKET
probuilder
EXITSHORT x SHARES AT MARKET

Le varianti pendenti collocano l'uscita a un prezzo scelto invece di eseguirla immediatamente:

probuilder
EXITSHORT AT price LIMIT
EXITSHORT AT price STOP

x è il numero di azioni, lotti o contratti da riacquistare. Omettere la quantità chiude l'intera posizione short.

Come funziona

Una posizione short si apre con SELLSHORT e chiusa riacquistando lo strumento. EXITSHORT esegue quel riacquisto senza mai aprire una posizione long: se non è aperta nessuna posizione short, l'istruzione non ha nulla da chiudere e nessun ordine viene inviato. Questo lo rende più sicuro rispetto all'uso di BUY per le uscite, che aprirebbe una nuova posizione long una volta chiusa la short.

La forma a mercato viene eseguita al primo prezzo disponibile. Le forme pendenti restano presso il broker fino a quando il prezzo raggiunge il livello specificato, LIMIT per uscite a un prezzo favorevole inferiore a quello attuale, STOP per uscite protettive al di sopra. Una quantità trasforma l'istruzione in una copertura parziale, riducendo la posizione e lasciando aperto il resto, che è il modo standard per uscire gradualmente da uno short in piramide.

In ProBacktest l'istruzione viene eseguita dal motore di simulazione con la stessa logica di prezzo usata per gli altri ordini. In ProOrder live l'uscita viene trasmessa al broker come qualsiasi altro ordine.

Esempi

Esempio 1, Ingresso e uscita short guidati dal MACD (ProBacktest)

probuilder
myMACD = MACD[12,26,9](close)

// Short when the MACD line falls through zero,
// cover when it climbs back above zero
short = myMACD crosses under 0
exit = myMACD crosses over 0

IF NOT SHORTONMARKET AND short THEN
  SELLSHORT 1 LOT AT MARKET
ENDIF

IF SHORTONMARKET AND exit THEN
  EXITSHORT AT MARKET
ENDIF

Il ciclo canonico di andata e ritorno tratto dalla documentazione ufficiale. Il SHORTONMARKET i controlli garantiscono che ingressi e uscite scattino solo nello stato di posizione corretto.

Esempio 2, Uscita progressiva da uno short piramidato (ProOrder)

probuilder
DEFPARAM CumulateOrders = true

// Cover 2 lots once the short is 25 points in profit,
// keep the rest running with a trailing stop
IF SHORTONMARKET AND TRADEPRICE - close >= 25 * pointsize AND COUNTOFSHORTSHARES > 2 THEN
  EXITSHORT 2 SHARES AT MARKET
ENDIF

SET STOP TRAILING 40

La forma con quantità copre una parte dello short, incassando il profitto mentre i lotti restanti rimangono esposti a ulteriori ribassi.

Esempio 3, Uscita pendente con limite su un target di profitto (ProOrder)

probuilder
// Rest a buy-back order 30 points below the entry price
IF SHORTONMARKET THEN
  EXITSHORT AT TRADEPRICE - 30 * pointsize LIMIT
ENDIF

Invece di attendere che il codice della strategia reagisca, l'ordine di uscita resta presso il broker e viene eseguito nel momento in cui il prezzo scende al livello target.

Errori e insidie comuni

  • Nessuna posizione, nessun ordine. EXITSHORT non fa nulla quando la strategia non è short. Una logica che conta sul suo scatto incondizionato, per esempio come chiusura a fine sessione, dovrebbe verificare SHORTONMARKET prima o usare DEFPARAM FLATAFTER.
  • Usare BUY per chiudere uno short. BUY riduce una posizione short e poi continua a comprare fino ad aprire una posizione long. Quando l'intento è solo coprire, EXITSHORT è l'istruzione corretta perché non può mai invertire la posizione.
  • Uscita parziale maggiore della posizione. Richiedere più azioni di quelle detenute chiude semplicemente l'intera posizione. Dimensiona le uscite parziali a partire da COUNTOFSHORTSHARES per mantenere corretta l'aritmetica.
  • Le uscite pendenti vengono rivalutate a ogni bar. Un ordine pendente EXITSHORT ... LIMIT inserito dentro una condizione viene aggiornato a ogni barra in cui la condizione è vera e annullato quando smette di esserlo. Mantieni la condizione vera per tutto il tempo in cui l'ordine deve restare attivo.
  • SELLSHORT, apre o incrementa una posizione short.
  • SELL, chiude totalmente o parzialmente una posizione long.
  • BUY, apre o incrementa una posizione long.
  • MARKET, esegue un ordine al prezzo corrente di mercato.
  • LIMIT, ordine pendente eseguito a un prezzo stabilito o migliore.
  • STOP (pending), ordine pendente attivato quando il prezzo raggiunge un livello.
  • SHORTONMARKET, vero mentre una posizione short è aperta.
  • ONMARKET, vero mentre una qualsiasi posizione è aperta.