Iscriviti ora
ProBacktest/probacktest · proorder

TomorrowOpen

TomorrowOpen rinvia un ordine ProBacktest o ProOrder all'apertura del giorno di trading successivo, come in BUY 1 CONTRACT AT MARKET TomorrowOpen per le strategie giornaliere.

Sintassi

probuilder
AT MARKET TomorrowOpen

Come funziona

Per impostazione predefinita un ordine a mercato inviato da una strategia viene eseguito al prezzo successivo disponibile. Aggiungere TomorrowOpen rinvia l'esecuzione all'apertura del giorno di negoziazione successivo. Le condizioni vengono comunque valutate sulla barra corrente, solo l'esecuzione si sposta al primo prezzo della sessione successiva.

Il modificatore è adatto alle strategie costruite sui dati di chiusura giornalieri. Un segnale calcolato sulla bar giornaliera conclusa non può realisticamente essere eseguito a quella stessa chiusura, e nemmeno un'esecuzione da qualche parte all'interno della sessione overnight è ciò che un modello end-of-day intende. Eseguire all'apertura ufficiale del giorno successivo mantiene il backtest onesto e corrisponde a come tali sistemi vengono operati manualmente.

TomorrowOpen differisce da NextBarOpen nell'unità di ritardo. NextBarOpen attende l'apertura della bar successiva nel timeframe del grafico, qualunque esso sia. TomorrowOpen attende sempre l'apertura del giorno di negoziazione successivo, anche se nel frattempo si formano diverse barre intraday. Su un grafico giornaliero i due coincidono.

Esempi

Esempio 1, Entrare long all'apertura del giorno successivo (ProOrder)

probuilder
// Signal: close above the 50-day average, evaluated at end of day
LongConditions = close > average[50](close)

IF NOT LongOnMarket AND LongConditions THEN
  BUY 1 CONTRACT AT MARKET TomorrowOpen
ENDIF

La condizione viene verificata sulla bar giornaliera completata e, quando è soddisfatta, viene acquistato un contratto al prezzo di apertura del giorno successivo. Questo riprende l'esempio di riferimento per l'istruzione.

Esempio 2, Uscire alla prossima apertura invece che overnight (ProBacktest)

probuilder
// Leave the trade at tomorrow's open once momentum fades
exitSignal = close < close[3]

IF LongOnMarket AND exitSignal THEN
  SELL AT MARKET TomorrowOpen
ENDIF

Invece di scaricare la posizione sulla chiusura o nella sessione overnight, l'uscita è programmata per l'asta di apertura del giorno successivo, dove le strategie giornaliere operano tipicamente.

Esempio 3, Ingresso short su una chiusura giornaliera debole (ProOrder)

probuilder
// Short setups detected on the daily close, filled at the next open
weakClose = close < lowest[10](low)[1]

IF NOT onmarket AND weakClose THEN
  SELLSHORT 1 CONTRACT AT MARKET TomorrowOpen
  SET STOP LOSS 40
ENDIF

Una chiusura sotto il minimo dei 10 giorni precedenti attiva uno short che si apre al primo prezzo della sessione successiva, con uno stop protettivo di 40 punti associato.

Errori e insidie comuni

  • Solo ordini a mercato. Il modificatore estende AT MARKET. Non si combina con ordini pendenti STOP o LIMIT livelli di prezzo, quelle forme di ordine hanno la propria logica di attivazione.
  • Unità di ritardo errata sui grafici intraday. Su un grafico intraday TomorrowOpen attende il giorno successivo, non il bar successivo. Il codice che intende un ritardo di un bar richiede NextBarOpen invece. Sui grafici giornalieri la distinzione scompare.
  • Il segnale può diventare obsoleto durante la notte. Le condizioni vengono valutate sulla chiusura corrente, ma l'esecuzione avviene dopo il gap overnight. Un gap avverso ampio esegue comunque l'ordine, quindi il rischio di gap va gestito dal position sizing o dallo stop, non dalla condizione di ingresso.
  • Errori di ambito. Poiché la parola chiave appartiene al motore degli ordini, indicatori e screener che menzionano TomorrowOpen non compilano. La logica di segnale può stare in un indicatore, ma la riga dell'ordine deve restare nel codice della strategia.
  • NextBarOpen, rinvia l'esecuzione all'apertura della bar successiva nel timeframe del grafico.
  • BUY, apre o incrementa una posizione long.
  • SELLSHORT, apre o incrementa una posizione short.
  • SELL, chiude una posizione long.
  • EXITSHORT, chiude una posizione short.
  • MARKET, esecuzione immediata al prezzo corrente.
  • LONGONMARKET, vero mentre una posizione long è aperta.
  • DEFPARAM, parametri a livello di strategia come CumulateOrders.