Documentazione

Applicazioni

Ultimo aggiornamento il 26. 2. 2019 da Kornel Mazur

Controlli incrociati - test di robustezza automatizzati della strategia

Il pericolo maggiore delle strategie generate con qualsiasi processo di apprendimento automatico è l'overfitting (o curve-fitting) della strategia rispetto ai dati storici su cui è stata costruita.

Durante o dopo lo sviluppo di una nuova strategia, dovreste assicurarvi che la vostra strategia 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 ri-ottimizzazione 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, o se i dati storici vengono leggermente modificati - lo spread o lo slippage vengono aumentati, e così via.

il test più elementare per la robustezza consiste nel testare la strategia su dati sconosciuti (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.

 

Evitare strategie overfitted (curve-fitted)

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.

 

Controlli incrociati automatici per la robustezza in SQ X

I controlli incrociati sono metodi aggiuntivi opzionali che possono essere applicati a ogni strategia dopo che questa è stata generata e ha superato i primi filtri.

Consultate questo articolo per scoprire come Utilizzare i controlli incrociati in Builder e Retester

I controlli incrociati possono verificare la solidità della strategia da più punti di vista, operando su altri mercati, o utilizzando metodi Monte Carlo per simulare 100 diverse curve azionarie, o ancora utilizzando l'ottimizzazione Walk-Forward o Matrix.

L'aspetto importante è che è possibile utilizzare i filtri di controllo incrociato per eliminare la strategia se non supera il test di controllo incrociato. In questo modo è possibile creare degli imbuti in cui la strategia viene esaminata con metodi sempre più avanzati (e più impegnativi in termini di tempo) e la strategia che fallisce viene automaticamente scartata.

Imbuto di test di robustezza automatizzato in StrategyQuant X

Un esempio di funnel di filtraggio che utilizza i controlli incrociati durante la costruzione

Sta a voi decidere quanti controlli incrociati impiegare e come configurare i filtri.

I controlli incrociati sono suddivisi in tre gruppi: base, standard e approfonditi, a seconda del tempo che richiedono.

Inoltre, vengono applicati da quelli più semplici a quelli più complicati. Quindi, se la strategia non supera il Cross check 1, viene scartata e non viene verificata dal Cross check 2.

 

Si noti che l'esecuzione di controlli incrociati su una strategia può richiedere molto tempo!
Alcuni metodi di controllo incrociato effettuano complicate simulazioni e centinaia o addirittura migliaia di backtest della strategia con parametri diversi e richiedono migliaia di secondi in più rispetto alla generazione iniziale della strategia e al backtest iniziale. Quindi la strategia senza alcun controllo incrociato può essere generata (ad esempio) in 0,2 secondi, ma con l'applicazione di alcuni controlli incrociati potrebbe facilmente richiedere 10 - 200 secondi per una strategia!

 

I controlli incrociati possono essere usati anche in Retester (senza filtro), quindi non è necessario usare tutti i controlli incrociati in modalità di compilazione.

Possibile utilizzo dei controlli incrociati

Una possibile applicazione di controllo incrociato potrebbe essere quella di utilizzare:

  • Controllo incrociato Ripetizione del test con maggiore precisione
  • Controllo incrociato Manipolazione dei trade Monte Carlo
  • Controllo incrociato Retest su altri mercati
  • Controllo incrociato opzionale Metodi di retest Monte Carlo

StrategyQuant eseguirà quindi i seguenti passaggi per ogni strategia generata:

  1. La strategia viene generata in modo casuale e testata con la precisione più veloce "Timeframe selezionato" - questo dipende dalle impostazioni, ma è il valore predefinito.
  2.  La strategia viene automaticamente filtrata e scartata (liquidata) se non supera i filtri globali, ad esempio se non ha abbastanza operazioni o se il profitto netto è inferiore a $1000.
  3. Controllo incrociato Ripetizione del test con maggiore precisione verificherà nuovamente questa strategia con una precisione al minuto o addirittura al tick reale, per assicurarsi che la strategia sia stata testata in modo affidabile utilizzando la precisione di base. Si noti che solo le strategie che superano il punto 2. arriveranno qui. Se la strategia non supera questo primo controllo incrociato, viene scartata.
  4. Controllo incrociato Manipolazione dei trade Monte Carlo eseguirà una serie di simulazioni di diverse curve azionarie manipolando le operazioni esistenti, per garantire che la curva azionaria originale non sia stata ottenuta solo per fortuna. Filtrerete le strategie che non superano il test di Monte Carlo.
  5. Controllo incrociato Retest su altri mercati testerà la strategia su altri mercati o timeframe. Se non è redditizia su altri mercati, viene filtrata.
  6. Controllo incrociato opzionale Metodi di retest Monte Carlo Eseguirà un numero di simulazioni in cui ogni simulazione è un nuovo backtest della strategia utilizzando piccole variazioni nei parametri dell'indicatore della strategia, nelle opzioni di trading come spread, slippage o nei dati storici. Si noti che ogni simulazione è un backtest indipendente, quindi se sono stati necessari 0,2 secondi per eseguire il backtest della strategia nel passaggio 1., ci vorranno 100 x 0,2 s. = 20 secondi per completare questo controllo incrociato per questa strategia se si utilizzano 100 simulazioni Monte Carlo.
    Se la strategia supera anche questi controlli incrociati, viene salvata nella banca dati e si può avere la certezza che sia sufficientemente robusta.

 

Una descrizione più dettagliata dei controlli incrociati è disponibile nella sezione Controlli incrociati - test di robustezza sezione.

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

Abbonarsi
Notificami
2 Commenti
Il più vecchio
Più recente I più votati
Feedback in linea
Visualizza tutti i commenti
James Colton
17. 1. 2023 10:38 pm

Ho impostato un test con le impostazioni predefinite e ho ottenuto risultati positivi ogni minuto circa. Poi, notando che molti risultati erano significativamente superiori ai criteri minimi di accettazione, ho riavviato il test con standard minimi moderatamente più elevati che avrebbero dovuto catturare forse 10% di strategie come quelle generate dai parametri del test precedente. Dopo 6 ore non un solo risultato ha superato l'esame iniziale. Il costruttore ha bisogno di esempi di successo per sapere dove guardare? In altre parole, devo aspettarmi risultati migliori se inizialmente imposto standard più bassi di quelli che prenderei mai in considerazione per il trading?

tomas262
Admin
Rispondi a  James Colton
19. 1. 2023 7:22 pm

Potete inviarci il flusso di lavoro per l'analisi, verificheremo i file di configurazione di CFX che potrebbero essere impostati in modo errato.