Iscriviti ora
ProBacktest/probacktest · proorder

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

probuilder
LongTriggered
probuilder
LongTriggered[N]

Parametri

NomeTipoPredefinitoDescrizione
Nintero0Offset 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)

probuilder
// increment a counter each time a long entry fills
if LongTriggered then
  buycount = buycount + 1
endif

Ogni 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)

probuilder
// 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
ENDIF

LongTriggered[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)

probuilder
// 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
ENDIF

Quando 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. LongTriggered senza parentesi quadre significa LongTriggered[0]. Il codice che intende controllare la bar precedente deve scrivere LongTriggered[1] esplicitamente. Presumere che la forma semplice guardi un bar indietro è un errore di lettura frequente.
  • Confonderlo con LongOnMarket. LongOnMarket riporta lo stato della posizione aperta, LongTriggered segnala l'evento di esecuzione dell'ingresso. Un'operazione che si apre e si chiude entro un bar mostra LongTriggered = TRUE e LongOnMarket = FALSE su 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. N deve essere un intero non negativo. Passare un offset negativo o un valore frazionario non è valido, non esiste alcuna anticipazione sulle barre future.
  • 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.