BUY
BUY in ProBacktest e ProOrder apre una posizione long. Copre le unità di quantità, i tipi di ordine AT MARKET, LIMIT e STOP, oltre agli errori comuni di dimensionamento e di ingresso.
Sintassi
BUY x SHARES AT MARKETBUY x CONTRACT AT price LIMITBUY x CONTRACT AT price STOPParametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
x | numero | obbligatorio | Quantità dell'ordine, interpretata attraverso l'unità che segue. |
| unità | SHARES, CONTRACT, LOT, CASH | obbligatorio | Unità di dimensionamento. CASH indica un importo nella valuta del conto invece di un numero di unità. |
| tipo di ordine | AT MARKET, AT price LIMIT, AT price STOP | obbligatorio | Esecuzione immediata al prezzo corrente, oppure un ordine pendente a un livello indicato. |
Come funziona
BUY inserisce un ordine di ingresso long. Con AT MARKET, l'ordine viene eseguito al prossimo prezzo disponibile. Con AT price LIMIT, un ordine pendente attende di acquistare al livello indicato o migliore, sotto il prezzo attuale. Con AT price STOP, un ordine pendente acquista quando il prezzo sale oltre il livello indicato, la forma consueta per gli ingressi in breakout.
L'unità di quantità deve corrispondere allo strumento: SHARES per le azioni, CONTRACT per futures e CFD, LOT per il forex, e CASH per dimensionare l'ordine come importo nella valuta del conto. L'accumulo di posizione è governato da CumulateOrders. Quando è attivo, come da impostazione predefinita, gli ordini BUY ripetuti si accumulano in una posizione più grande; con DEFPARAM CumulateOrders = false, un nuovo BUY mentre si è già long viene ignorato.
Gli ingressi sono normalmente racchiusi in un controllo dello stato della posizione come IF NOT LongOnMarket THEN o IF NOT OnMarket THEN, così gli ordini partono solo quando la strategia intende assumere una nuova posizione.
Esempi
Esempio 1, Ingresso a mercato condizionale (ProBacktest)
// Enter long at market when flat and the entry conditions hold
IF NOT LongOnMarket AND LongConditions THEN
BUY 1 SHARES AT MARKET
ENDIFViene acquistata un'azione al prezzo corrente di mercato, ma solo quando non è già aperta una posizione long. Questo è l'esempio della documentazione ufficiale.
Esempio 2, Ingresso in breakout con un ordine stop pendente (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'ordine stop pendente resta sopra il mercato e viene eseguito solo se il prezzo sale oltre il massimo delle 20 bar precedenti.
Esempio 3, Ingresso dimensionato in valuta con un filtro di trend (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 il sizing mantiene l'esposizione costante in termini di valuta su strumenti con prezzi diversi, invece di fissare un numero di unità.
Errori e insidie comuni
- Piramidazione involontaria.
CumulateOrdersè abilitato per impostazione predefinita, quindi una condizione di ingresso che resta vera per diverse barre accumula un nuovo BUY su ognuna di esse. ImpostaDEFPARAM CumulateOrders = falseo proteggere l'ingresso conNOT LongOnMarket. - Gli ordini pendenti scadono dopo una bar. A
LIMIToSTOPordine che non viene eseguito sulla bar successiva viene annullato. Gli ingressi in attesa persistenti devono essere reinviati a ogni bar finché il setup resta valido. - Unità sbagliata per lo strumento.
SHARESsu una coppia forex oLOTsu un'azione non dimensiona l'ordine come previsto. Adatta l'unità al mercato, oppure usaCASHper una dimensione espressa in valuta. - BUY come uscita da una short. Chiudere una posizione short è compito di EXITSHORT. Un BUY di dimensione maggiore della short aperta inverte la posizione invece di limitarsi a chiuderla, che raramente è il comportamento voluto.
Istruzioni correlate
SELL, chiude 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.CONTRACT, unità di quantità per futures e CFD.SHARES, unità di quantità per le azioni.LOT, unità di quantità per il forex.CASH, dimensiona un ordine nella valuta del conto.ONMARKET, vero mentre una qualsiasi posizione è aperta.CumulateOrders, controlla se gli ingressi ripetuti si cumulano.