Documentazione
Applicazioni
Ultimo aggiornamento il 29. 4. 2019 da Mark Fric
Backtesting affidabile in Tradestation / MultiCharts
Page contents
Affidabilità del backtesting in generale
Prima di tutto, dobbiamo capire che il backtesting significa testare la strategia sui dati storici. L'esatto flusso di tick non si ripeterà mai in futuro, quindi anche se si utilizzano dati di tick reali non significa che la strategia si comporterà in futuro come si è comportata in passato.
In secondo luogo, dobbiamo renderci conto che i backtest non possono essere accurati al 100%. Nel migliore dei casi, il backtesting offre un'approssimazione del modo in cui le operazioni verrebbero eseguite in tempo reale. Ci sono cose come l'allargamento degli spread, le requote, lo slippage, i ritardi, le disconnessioni di rete, i guasti al VPS e così via che influenzano il trading reale.
La proprietà più importante della nostra strategia dovrebbe essere la sua robustezza.
Dobbiamo assicurarci di non aver semplicemente adattato la nostra strategia ai dati esistenti, in modo che funzioni alla grande nei nostri backtest; che rimanga redditizia nonostante le modifiche dei dati, dei parametri, quando sbaglia qualche operazione, ecc.
StrategyQuant offre molti strumenti (Cross checks) per testare la robustezza della strategia. È possibile testare la strategia su mercati diversi, con variazioni dei parametri o con variazioni casuali dei dati storici utilizzando i test Monte Carlo.
Backtesting affidabile tra SQ e TS / MC
In questo senso, un backtesting affidabile significa che la strategia avrà risultati uguali o molto simili in StrategyQuant e Tradestation/MultiCharts.
Se la vostra strategia ha risultati completamente diversi in SQ e in TS/MC, allora c'è qualcosa di sbagliato nel vostro setup e dovete risolverlo prima di andare avanti.
Il motore di backtesting di SQ è stato realizzato per corrispondere ai motori di trading di TS/MC, quindi se si notano differenze è molto probabile che si tratti di dati o configurazioni diverse tra i due programmi.
Di seguito elenchiamo alcuni punti da tenere in considerazione.
1. Assicurarsi di aver importato tutti gli indicatori personalizzati.
Si tratta di una delle fasi successive all'installazione: https://strategyquant.com/doc/strategyquant/installation/#steps-after-installation
SQ utilizza alcuni indicatori personalizzati ed è necessario importarli in Tradestation / MultiCharts per farli funzionare.
2. Utilizzare le impostazioni e i dati corretti
Le differenze nei backtest sono per lo più causate da problemi in quest'area.
Esistono due modi per utilizzare i dati del TS/MC in SQ:
Opzione 1 - Importare i dati esatti dal grafico
Questo è il modo più affidabile: esportare i dati direttamente dal grafico in TS / MC e importarli in SQ.
In Multicharts: utilizzare File -> Esporta dati
In Tradestation, aprire la finestra Dati e utilizzare la funzione Salva.
In questo modo si può essere sicuri di testare i dati con le sessioni effettive e le altre configurazioni.
Quindi, ad esempio, quando testate la vostra strategia in TS/MC su un grafico a 15 minuti con una certa sessione, esportate questi dati esatti del grafico a 15 minuti con la sessione applicata dalla piattaforma di trading e importateli in SQ.
Importante - Se si utilizza questo metodo, è necessario impostare Sessione = Nessuna sessione nelle opzioni di trading.. Questo perché i dati includono già la sessione, altrimenti SQ cercherà di applicare nuovamente la sessione e il risultato sarà un dato errato!
Opzione 2 - Importare i dati dei minuti e lasciare che SQ calcoli i tempi più alti
È più conveniente importare i dati al minuto da TS e lasciare che SQ calcoli i timeframe superiori per qualsiasi backtest.
Importante - In questo caso, assicuratevi di utilizzare la sessione corretta in SQ, che deve essere esattamente la stessa di Tradestation / Multicharts.. Le barre in TS / MC sono calcolate in base a questa sessione e se si sbaglia, le barre saranno calcolate in modo errato!
Se si riscontrano differenze nel backtest, tornare all'opzione precedente e testarla sui dati esportati dal grafico.
C'è un nuovo articolo che descrive come eseguire correttamente esportare i dati da Tradestation.
3. Assicurarsi di utilizzare il motore corretto e il tipo di barra corretto nei dati importati.
La scelta del motore è ovvia: verificare che si utilizzi davvero Tradestation o MultiCharts in SQ, in quanto offre una scelta di motori.
Quando si importano i dati da un file, assicurarsi di usare "Il timestamp è l'ora della fine della barraTipo di dati della barra ". Questo è il tipo di dati utilizzato da MetaTrader e influenza il modo in cui vengono calcolati i timeframe superiori.
4. Utilizzare le corrette opzioni di Exit trading basate sul tempo
Questo vale se è stata attivata una qualsiasi delle opzioni di trading basate sul tempo, ad esempio Uscita a fine giornata, o Uscita di venerdì.
Quando si utilizza una di queste due opzioni è necessario impostare l'orario di uscita a 00:00 - SQ chiuderà quindi le operazioni alla fine della sessione giornaliera - oppure, se si specifica l'orario esatto, è necessario assicurarsi che sia l'orario di una barra esistente PRIMA dell'ultima barra del giorno.
Una configurazione errata potrebbe far sì che SQ chiuda le operazioni a fine giornata in un orario diverso da quello della piattaforma TS/MC.
Se si riscontrano differenze nelle strategie, confrontare gli orari di chiusura delle operazioni chiuse a fine giornata tra SQ e TS/MC se si comportano allo stesso modo.
5. Riavviare SQ e cancellare i file temporanei in caso di problemi.
SQ memorizza i dati di backtest sia nella memoria che nei file su disco e a volte può accadere che i dati nella cache siano di una versione più vecchia (sbagliata) e non vengano aggiornati quando se ne importano di nuovi o si modifica qualcosa.
Se si verificano differenze nel backtest, provare prima a uscire da SQ, cancellare tutti i file nella cartella /internal/testfiles e avviare nuovamente SQ.
6. Il supporto per i sottografici è ancora in fase di sviluppo
Ci siamo concentrati sulle strategie a singolo grafico nell'implementazione del motore di test di Tradestation / MultiCharts.
Le strategie che utilizzano grafici multipli (Data2, Data3 ecc. in EasyLanguage) non sono state ancora testate in StrategyQuant per la corrispondenza - potrebbero funzionare o meno.
Ci concentreremo su questo aspetto nelle prossime build.
7. La precisione dei test è ancora in fase di sviluppo
Al momento è possibile utilizzare il motore di test di Tradestation / MultiCharts con la precisione di test "Timeframe selezionato". Questo è sufficiente per tutti i tipi di ordini: mercato, stop, limite. Tradestation / MultiCharts funziona in modo affidabile con questo tipo di precisione di test e può essere utilizzato nel trading live.
Stiamo lavorando per aggiungere anche modalità di precisione migliori, che saranno aggiunte in una delle prossime versioni.
8. Ci sono pochi indicatori che non sono stati testati in modo approfondito in TS/MC.
Alcuni indicatori non sono stati testati in tutte le loro possibili configurazioni e potrebbero causare differenze nel trading. Essi sono:
- Perni
- Fibo
Questo articolo è stato utile? L'articolo è stato utile L'articolo non è stato utile
Sono in attesa di un motore di test Multicharts di maggiore precisione, che sto aspettando da diversi anni. Questo è davvero importante per migliorare la credibilità dei risultati dei test.