Test di robustezza e analisi

L'adattamento della strategia ai dati storici su cui è stata costruita è il pericolo maggiore delle strategie generate con qualsiasi processo di apprendimento automatico.
Dopo aver sviluppato una nuova strategia, è necessario assicurarsi che questa sia solida, il che dovrebbe aumentare la probabilità che funzioni anche in futuro.

Che cos'è la robustezza?
È semplicemente la proprietà della strategia di essere in grado di far fronte a condizioni mutevoli.
- Innanzitutto, la strategia dovrebbe funzionare su dati sconosciuti (se le caratteristiche del mercato non sono cambiate) con o senza una riottimizzazione periodica dei parametri.
- Non dovrebbe andare in frantumi se si perdono alcuni scambi.
- La strategia robusta non deve essere troppo sensibile ai parametri di input: deve funzionare anche se si modificano leggermente i valori dei parametri di input, come il periodo dell'indicatore o qualche costante.

Come testare la robustezza delle strategie

1. Utilizzare i periodi di In Sample e Out of Sample

il test più elementare per la robustezza consiste nel testare la strategia su dati fuori campione. Se si esegue l'evoluzione genetica, la strategia si evolve solo sulla parte di dati In Sample. La parte fuori campione è "sconosciuta" alla strategia, quindi può essere utilizzata per determinare se la strategia funziona anche su una parte sconosciuta di dati.

La parte blu di ogni grafico è rappresentata dai dati fuori campione (sconosciuti). Possiamo notare che la strategia di sinistra ottiene buoni risultati anche su questa parte, mentre la strategia di destra fallisce sui dati sconosciuti - è quasi certo che si tratti di una curva adattata.

2. Testare la strategia su più simboli e/o timeframe

Il secondo test di robustezza è molto importante: significa testare la stessa strategia su simboli diversi e/o su altri timeframe. Una strategia robusta dovrebbe idealmente funzionare su più simboli/tempi.

In realtà, poiché ogni mercato ha le sue caratteristiche, la sua volatilità giornaliera, ecc. non sarà facile trovare una strategia che abbia la stessa performance perfetta su più simboli utilizzando un solo set di impostazioni.
Possiamo ritenerci soddisfatti se la strategia si comporta su altri mercati con almeno un certo grado di redditività, o solo leggermente in perdita.

StrategyQuant consente di specificare simboli aggiuntivi per la costruzione/test delle strategie nella sezione Dati aggiuntivi. È anche possibile testare la strategia sullo stesso simbolo con un timeframe diverso.


(cliccare sull'immagine per ingrandirla)

Nei due grafici qui sopra potete vedere il test della strategia su EURUSD (linea verde), GBPUSD (linea ciano) e il portafoglio di entrambi (linea blu).
Mentre nel grafico di sinistra la strategia si comporta bene su entrambe le valute, nel grafico di destra si può notare che la performance su GBPUSD è negativa. Probabilmente questa strategia non è abbastanza robusta.

3. Utilizzare lo strumento dei test di robustezza in StrategyQuant.

StrategyQuant consente di attivare i test di robustezza. Lo strumento Robustness Tests non fa altro che testare ripetutamente la strategia con diverse variazioni casuali dei parametri e dei dati di input, eseguendo una simulazione Monte Carlo.

L'idea alla base di questo test di robustezza è quella di verificare il rendimento della strategia in presenza di piccole variazioni degli input, dei dati storici o di altri componenti della strategia.

È possibile simulare diverse proprietà:

- Randomizzare l'ordine delle compravendite - Questo è il test più semplice, in quanto rimescola in modo casuale l'ordine delle operazioni. Questo non cambia il profitto netto risultante, ma è molto utile per esaminare le diverse variazioni del drawdown che possono derivare da un diverso ordine delle operazioni.

- Saltare a caso le compravendite - salterà casualmente le operazioni con una determinata probabilità. Nel trading reale può capitare di perdere un'operazione a causa di un guasto della piattaforma o di Internet, o semplicemente perché si è interrotto il trading per qualche tempo. Questo test vi darà un'idea di come potrebbe apparire la curva dell'equity se alcune operazioni venissero saltate a caso.

- Randomizzare la barra di partenza - Questo test testerà il comportamento della strategia quando il test inizia su una barra di partenza diversa. È ovvio che una buona strategia non può essere sensibile alla barra di partenza del test.

- Randomizzare i parametri della strategia - Ogni strategia utilizza dei parametri, come il periodo di un indicatore o la costante utilizzata nel confronto. Questo test verifica la sensibilità della strategia a una piccola variazione del valore del parametro. La probabilità di variazione è la probabilità che un parametro cambi il suo valore. Variazione massima del parametro è la percentuale massima di variazione del valore del parametro. Ad esempio, se si imposta la variazione massima del parametro a 10%, un parametro con valore 60 può essere modificato casualmente in un intervallo 54-66 (+- 10% del suo valore originale di 60).

- Randomizzare i dati della cronologia - Un caso molto comune di adattamento della curva è quando la strategia è troppo dipendente dai dati storici. Questa opzione verifica il comportamento della strategia in caso di variazione dei dati storici.
La Probabilità di variazione stabilisce per ogni barra la probabilità che il prezzo di apertura, massimo, minimo o chiusura venga modificato. La variazione massima del prezzo è un valore percentuale della variazione rispetto all'ATR (Average True Range).
Quindi, se ad esempio il prezzo di chiusura viene scelto casualmente per essere modificato, il valore ATR è di 10 pip e la variazione massima del prezzo è di 20%, allora il prezzo può cambiare di +- 2 pip.

Interpretare i risultati
I test di robustezza forniscono i risultati sotto forma di una serie di grafici azionari per ogni esecuzione del test e di una tabella che mostra i risultati della simulazione Monte Carlo.

In questo esempio abbiamo eseguito 10 simulazioni, con modifiche casuali dei parametri della strategia, dati storici e operazioni saltate a caso.
Possiamo vedere quale sarebbe il patrimonio netto per ciascuna di queste simulazioni e la tabella a sinistra ci fornisce informazioni preziose sulle proprietà della strategia durante queste simulazioni.

Cosa significano questi valori?
La prima riga mostra i valori di Profitto netto, Drawdown massimo % ecc. della strategia originale a titolo di confronto.
Le altre righe mostrano i valori a diversi livelli di confidenza.
Questi numeri sono il risultato dell'analisi Monte Carlo applicata alle nostre 10 simulazioni casuali.

Ad esempio, valori con un livello di confidenza di 80% significano che esiste una probabilità di 20% che il Profitto netto, il Drawdown ecc. siano peggiori dei valori del livello di confidenza.
I valori con un livello di confidenza di 90% significano che esiste una probabilità di 10% che il Profitto netto, il Drawdown ecc. siano peggiori dei valori del livello di confidenza.
I valori con un livello di confidenza di 95% significano che c'è solo una probabilità di 5% che il Profitto netto, il Drawdown, ecc. siano peggiori di questi valori.

Quindi la simulazione Monte Carlo della nostra strategia ci mostra che saltando 10% di operazioni casuali e piccole modifiche casuali dei parametri e dei dati di input il nostro Profitto netto può diminuire da $ 6990 a $ 3943, e il Drawdown massimo può aumentare da 6,97% a 11,36%.
Ciò significa che c'è solo il 5% di probabilità che il profitto netto sia inferiore a $ 3943. Osservando i livelli di confidenza più elevati, possiamo notare che nessuno dei nostri test ha ottenuto risultati peggiori di $ 3943, quindi la strategia sembra essere relativamente robusta ai cambiamenti a cui l'abbiamo esposta.

Poiché i test di robustezza sono generati in modo casuale, i grafici azionari e i valori della tabella saranno leggermente diversi ogni volta che si esegue un nuovo test della strategia. Inoltre, più simulazioni verranno eseguite, maggiore sarà la significatività statistica di questo test.

4. Utilizzare la matrice Walk-Forward come test di robustezza

Il quarto tipo di verifica della robustezza è il test della matrice Walk-Forward. Se la strategia supera questo test, significa che con l'aiuto della riottimizzazione dei parametri è adattabile a una vasta gamma di condizioni di mercato.

Consultate questi link per trovare articoli dettagliati su Ottimizzazione Walk-Forward e Matrice di avanzamento.

Abbonarsi
Notificami
0 Commenti
Feedback in linea
Visualizza tutti i commenti

Continua a leggere