Documentazione

Applicazioni

Ultimo aggiornamento il 29. 4. 2019 da Mark Fric

Backtesting affidabile in MetaTrader

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 MT4/5

In questo senso, un backtesting affidabile significa che la strategia avrà risultati uguali o molto simili in StrategyQuant e MetaTrader.

Se la vostra strategia ha risultati completamente diversi in SQ e in MT, allora c'è qualcosa di sbagliato nel vostro setup e dovete risolverlo prima di andare avanti.

Il motore di backtesting di SQ è stato realizzato in modo da corrispondere al motore di trading di MetaTrader, 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 e per farli funzionare è necessario importarli in MetaTrader.

 

2. Importare i dati dal proprio MetaTrader o assicurarsi che i dati Dukascopy scaricati siano simili a quelli del proprio broker.

SQ offre un comodo download di dati tick e M1 di alta qualità forniti gratuitamente da Dukascopy.
I dati sono di per sé affidabili, ma assicuratevi di utilizzare lo stesso fuso orario del vostro broker, soprattutto se intendete utilizzare funzioni come l'uscita a fine giornata/venerdì.

Il modo più semplice per verificare che la configurazione sia corretta è utilizzare gli stessi dati in SQ e MT, il che significa esportare i dati da MT e importarli in SQ. Quindi verificate se il backtest della strategia corrisponde a questi dati - dovrebbe. In caso contrario, verificare il punto 3.

Inoltre, tenete conto del fatto che il vostro broker avrà dati leggermente diversi da quelli di Dukascopy e assicuratevi che la vostra strategia sia robusta e in grado di resistere. Testare la strategia in SQ e poi su dati diversi in MetaTrader è un'altra forma di test di robustezza.
Assicuratevi solo che se ci sono grosse differenze nei dati non siano causate dalla vostra configurazione, ma da un vero e proprio fallimento della strategia.

 

3. Assicurarsi di utilizzare il motore corretto e il tipo di barra corretto nei dati importati.

La scelta del motore è ovvia: verificate che in SQ si utilizzi davvero il motore MetaTrader 4 o 5, poiché offre una scelta di motori.

Quando si importano i dati da un file, assicurarsi di usare "Il timestamp è l'ora di inizio 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. Configurare correttamente lo StrategyTester MetaTrader

Assicurarsi di utilizzare il pulsante stessa impostazione dello spread, stesso intervallo di date, ecc.. Il punto è avere la stessa configurazione tra SQ e MT.

Dovreste anche considerare la possibilità di disconnettere MetaTrader dalla rete, perché altrimenti (per impostazione predefinita) utilizzerà lo spread live corrente nel backtest, il che significa che il vostro backtest potrebbe essere leggermente diverso ogni volta che lo eseguite.

Come disconnettere MetaTrader4
Prima di tutto, MetaTrader deve essere online e connesso almeno per un po', in modo da caricare gli spread attuali. Poi è possibile disconnetterla impostando il proxy su un valore fittizio.

Accedere a Strumenti → Opzioni, scheda Server e selezionare la casella Abilita server proxy.

Fare quindi clic sul pulsante Proxy ... per impostare il proxy.

Inserire localhost come server e un testo fittizio in Login e Password. Chiudere la finestra di dialogo facendo clic su OK e chiudere la finestra di dialogo Opzioni facendo nuovamente clic sul pulsante OK; in questo modo si salveranno le impostazioni.

Ora dovete riavviare nuovamente MetaTrader e la prossima volta che lo avvierete sarete disconnessi dal broker.

Dovreste vedere lo stato di assenza di connessione nell'angolo in basso a destra di MetaTrader.

D'ora in poi tutti i test verranno eseguiti con gli stessi spread e i risultati saranno gli stessi ogni volta che si esegue il test.

 

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.

Questo articolo è stato utile? L'articolo è stato utile L'articolo non è stato utile

Abbonarsi
Notificami
1 Commento
Il più vecchio
Più recente I più votati
Feedback in linea
Visualizza tutti i commenti
Blade Runner
Blade Runner
21. 11. 2019 3:42 pm

Molto importanti possono essere anche le impostazioni di timestamp e DST dei dati scaricati in relazione al broker che si intende utilizzare per il trading demo o reale, soprattutto nei timeframe più alti come H4.