LongTriggered
LongTriggered in ProBacktest e ProOrder restituisce vero quando un ingresso long è stato eseguito su una data bar. Usalo per rilevare le esecuzioni di ordini pendenti bar per bar.
Sintassi
LongTriggeredLongTriggered[N]Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
N | intero | 0 | Offset in bar rispetto al bar corrente. 0 è la bar corrente, 1 è il bar precedente, e così via. |
Come funziona
Ogni volta che una strategia apre una posizione long, ProBacktest e ProOrder registrano l'esecuzione sul bar in cui è avvenuta. LongTriggered legge quel registro: restituisce true su una barra in cui è stato eseguito un ingresso long e false in tutti gli altri casi. L'indice opzionale sposta la ricerca nel passato, quindi LongTriggered[1] verifica se un ingresso long è stato eseguito sul bar precedente.
La distinzione da LongOnMarket conta soprattutto con gli ordini pendenti. Un ingresso stop o limit può essere eseguito intrabar e anche il suo stop protettivo o target può scattare nella stessa barra. In quel caso LongOnMarket è già tornato falso quando il codice viene eseguito alla chiusura della barra, e l'operazione sarebbe invisibile ai controlli sullo stato della posizione. LongTriggered riporta ancora vero per quel bar, quindi la strategia può reagire all'esecuzione anche quando la posizione non esiste più.
Il flag è legato solo agli ingressi. Le uscite, i tocchi dello stop e i tocchi del target non lo attivano. Per gli ingressi short la controparte è ShortTriggered.
Esempi
Esempio 1, Conteggio degli ingressi long (ProOrder)
// increment a counter each time a long entry fills
if LongTriggered then
buycount = buycount + 1
endifOgni bar in cui è stato eseguito un ingresso long incrementa buycount di uno. Il contatore può poi condizionare la logica successiva, per esempio limitando il numero di ingressi per sessione.
Esempio 2, Pausa dopo un'esecuzione recente (ProBacktest)
// entry signal: close crosses above the 50-bar average
signal = close crosses over Average[50](close)
// skip new entries on the bar right after a fill
IF signal AND NOT LongTriggered[1] AND NOT LongOnMarket THEN
BUY 1 CONTRACT AT MARKET
ENDIFLongTriggered[1] verifica se un ingresso long è stato eseguito sulla bar precedente. La condizione impedisce ingressi consecutivi su bar adiacenti, un semplice filtro di attesa.
Esempio 3, Rilevare ingresso e uscita sulla stessa bar (ProOrder)
// pending entry above the prior high, protective stop attached
IF NOT OnMarket THEN
BUY 1 CONTRACT AT high[1] STOP
SET STOP PLOSS 20
ENDIF
// a fill happened this bar but no position remains:
// the stop was hit within the same bar
IF LongTriggered AND NOT LongOnMarket THEN
stoppedSameBar = 1
ENDIFQuando LongTriggered è vero mentre LongOnMarket è falso sulla stessa bar, l'ingresso e il suo stop sono stati eseguiti entrambi all'interno di quella bar. Il flag stoppedSameBar può quindi essere usato per restare fuori o modificare l'ingresso successivo.
Errori e insidie comuni
- L'indice predefinito è la bar corrente.
LongTriggeredsenza parentesi quadre significaLongTriggered[0]. Il codice che intende controllare la bar precedente deve scrivereLongTriggered[1]esplicitamente. Presumere che la forma semplice guardi un bar indietro è un errore di lettura frequente. - Confonderlo con
LongOnMarket.LongOnMarketriporta lo stato della posizione aperta,LongTriggeredsegnala l'evento di esecuzione dell'ingresso. Un'operazione che si apre e si chiude entro un bar mostraLongTriggered = TRUEeLongOnMarket = FALSEsu quel bar. - Solo ingressi. Il flag da solo non reagisce mai alle uscite o al raggiungimento degli stop. Rilevare uno stop-out sulla stessa bar richiede di combinarlo con un controllo dello stato della posizione, come nell'Esempio 3.
- Indice negativo o non intero.
Ndeve essere un intero non negativo. Passare un offset negativo o un valore frazionario non è valido, non esiste alcuna anticipazione sulle barre future.
Istruzioni correlate
ShortTriggered, il flag equivalente per gli ingressi short.LONGONMARKET, vero mentre una posizione long è aperta.SHORTONMARKET, vero mentre una posizione short è aperta.ONMARKET, vero mentre una qualsiasi posizione è aperta.BUY, apre una posizione long.MARKET, esecuzione immediata al prezzo di mercato corrente.TRADEPRICE, il prezzo di ingresso della posizione corrente.TRADEINDEX, l'indice di bar dell'ingresso della posizione corrente.