FLATAFTER
FLATAFTER è un parametro DEFPARAM che chiude tutte le posizioni e annulla gli ordini pendenti dopo un orario stabilito ogni giorno nelle strategie ProBacktest e ProOrder.
Sintassi
DEFPARAM FLATAFTER = HHMMSSParametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
FLATAFTER | letterale temporale (HHMMSS) | nessuno | Ora del giorno dopo la quale tutte le posizioni vengono chiuse, gli ordini pendenti annullati e i nuovi ordini bloccati. Formato 24 ore, ad es. 153000 per le 3:30 PM. |
Come funziona
FLATAFTER viene dichiarato una volta con DEFPARAM all'inizio della strategia, prima di qualsiasi logica di trading. Dall'ora specificata in poi, la piattaforma chiude qualsiasi posizione aperta, annulla ogni ordine pendente e rifiuta nuovi ordini per il resto della giornata di trading. Il codice della strategia continua a essere eseguito, semplicemente non può mantenere né inviare operazioni oltre il limite, e il funzionamento normale riprende alla sessione successiva.
Il letterale di orario usa il formato HHMMSS su un orologio a 24 ore, quindi 153000 significa 15:30:00. Gli zeri iniziali possono essere scritti per leggibilità (073000), il valore è numerico in entrambi i casi.
Il parametro è il modo standard per costruire strategie di day trading che non devono mai mantenere posizioni overnight. Si abbina naturalmente con FLATBEFORE, che blocca il trading prima di un orario scelto, così insieme confinano tutta l'attività in una finestra intraday fissa. Rispetto a una logica di uscita costruita a mano basata su TIME, il DEFPARAM l'approccio annulla anche gli ordini pendenti, un passaggio che il codice di chiusura manuale spesso dimentica.
Esempi
Esempio 1, Flat dopo le 3:30 PM (ProOrder)
// Close positions, cancel pending orders and stop trading after 15:30
DEFPARAM FLATAFTER = 153000La dichiarazione conservata dalla documentazione ufficiale. Dopo le 3:30 PM nessuna posizione o ordine pendente sopravvive, il che garantisce che la strategia chiuda ogni giorno flat.
Esempio 2, Limitare un sistema breakout a una finestra di sessione (ProBacktest)
// Trade only between 08:00 and 17:00
DEFPARAM FLATBEFORE = 080000
DEFPARAM FLATAFTER = 170000
// Buy a breakout of the highest high of the last 20 bars
IF close crosses over highest[20](high)[1] THEN
BUY 1 CONTRACT AT MARKET
ENDIF
SET STOP %TRAILING 0.8FLATBEFORE e FLATAFTER racchiudono la sessione. Il backtest riflette quindi una strategia sempre flat fuori dalla finestra dalle 08:00 alle 17:00, compresi i suoi ordini di trailing stop.
Esempio 3, Evitare una chiusura illiquida sui futures su indici (ProOrder)
// Force flat 15 minutes before the cash close
DEFPARAM FLATAFTER = 214500
DEFPARAM CumulateOrders = false
rsiVal = RSI[14](close)
IF rsiVal crosses under 30 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND rsiVal crosses over 60 THEN
SELL AT MARKET
ENDIFQualunque cosa faccia la logica RSI, FLATAFTER garantisce che la posizione sia liquidata prima del flusso sottile di fine giornata.
Errori e insidie comuni
- Dichiarato dopo la logica di trading. Tutte
DEFPARAMrighe devono precedere ogni altra istruzione. CollocareFLATAFTERsotto unIFblocco o un'istruzione d'ordine causa un errore di compilazione. - Formato dell'ora errato. Il valore è HHMMSS, non HHMM. Scrivere
1530viene letto come 00:15:30, non 15:30:00, il che chiude la strategia subito dopo la mezzanotte invece che a metà pomeriggio. - Timeframe non corrispondente. Il limite si risolve alla granularità del bar. Su un grafico a 1 ora un
FLATAFTER = 153000il cutoff non può agire esattamente alle 15:30, quindi i cutoff intraday vanno su timeframe abbastanza fini da rappresentare quell'ora. Il parametro è privo di significato su timeframe giornalieri o superiori. - Ipotesi su orologio e fuso orario. L'orario è interpretato in base all'orologio che la piattaforma applica alle bar del grafico. Quando la borsa dello strumento si trova in un altro fuso orario, verificare l'orario limite effettivo sul grafico invece di presumere una corrispondenza con l'ora locale.
Istruzioni correlate
FLATBEFORE, parametro DEFPARAM che mantiene la strategia flat prima di un orario stabilito.DEFPARAM, dichiara i parametri della strategia all'inizio del codice.CumulateOrders, parametro DEFPARAM che controlla l'accumulo di ordini nella stessa direzione.QUIT, arresta completamente la strategia dopo la chiusura delle posizioni.TIME, orario della bar corrente per condizioni temporali scritte a mano.CurrentTime, valore dell'ora dell'orologio utilizzabile nelle condizioni.ONMARKET, vero mentre una qualsiasi posizione è aperta.SELL, chiude totalmente o parzialmente una posizione long.