Documentazione

Applicazioni

Ultimo aggiornamento il 6. 5. 2015 da Mark Fric

Ottimizzazione Walk-Forward

Che cos'è l'ottimizzazione?

L'idea alla base dell'ottimizzazione è semplice. Per prima cosa è necessario disporre di un sistema di trading, ad esempio un semplice incrocio di medie mobili: Se l'EMA(10) incrocia l'EMA(20) si va long, altrimenti si va short.

In quasi tutti i sistemi di trading esistono alcuni parametri (periodi degli indicatori, costanti da confrontare, ecc.) che influenzano le prestazioni del sistema. L'ottimizzazione significa trovare i valori ottimali di questi parametri (che danno il massimo profitto o il miglior rapporto rendimento/DD o altri parametri desiderati).

Ad esempio, sarebbe meglio utilizzare la regola "EMA(10) incrocia sopra EMA(20)" o la regola "EMA(15) incrocia sopra EMA(50)"?
L'ottimizzazione può aiutare a trovare i valori che hanno dato le migliori prestazioni in passato.

Che cos'è l'ottimizzazione/analisi Walk-Forward?

L'ottimizzazione Walk-Forward è generalmente un tipo speciale di backtest composto da più backtest più piccoli su periodi di ottimizzazione. Questi periodi di ottimizzazione sono suddivisi sull'intero periodo di backtesting e sono sempre seguiti da test Out of Sample con i parametri ottimizzati.

È una tecnica in cui si ottimizzano i valori dei parametri su un segmento passato di dati di mercato, quindi si verificano le prestazioni del sistema testandolo in avanti nel tempo sui dati successivi al segmento di ottimizzazione, e il processo può essere ripetuto su segmenti temporali successivi.

Come funziona l'ottimizzazione Walk-Forward

Nell'ottimizzazione walk-forward, i dati vengono suddivisi in un numero configurabile di periodi (5 in questo esempio). Ogni periodo è composto da una parte di ottimizzazione e da una parte di esecuzione.

Il programma inizia con il periodo di ottimizzazione 1. Esegue un'ottimizzazione semplice sul periodo di ottimizzazione 1 per trovare i migliori valori dei parametri. Questi valori dei parametri vengono poi applicati al periodo di esecuzione 1 - la strategia viene negoziata con i parametri ottimizzati trovati nella fase precedente.

Al termine del periodo di esecuzione 1, il sistema esegue nuovamente un'ottimizzazione semplice su una parte dei dati contrassegnati come periodo di ottimizzazione 2. Trova il miglior set di valori dei parametri e li utilizza nuovamente per il trading nel periodo di esecuzione 2. Trova il miglior set di valori dei parametri e li utilizza nuovamente per il trading nel periodo di esecuzione 2.

Ciò continua fino al periodo 5, che è anche la fine dei dati storici utilizzati nel test.

L'ottimizzazione Walk-Forward simula il funzionamento della strategia durante il trading reale. - è possibile ottimizzarlo su alcuni dati storici e poi operare con i valori ottimali. Dopo un certo periodo di tempo, si consiglia di riottimizzarlo e di lasciarlo operare di nuovo.

Cosa vi dice l'ottimizzazione/analisi Walk-Forward?

In pratica vi dice se la startegia è sufficientemente robusta e se le sue prestazioni possono essere migliorate con una riottimizzazione.
Se durante la riottimizzazione le prestazioni della strategia sono peggiori rispetto alla strategia originale non ottimizzata, è un segnale importante da tenere in considerazione per l'adattamento della curva.

D'altra parte, se la strategia ottimizzata Walk-Forward si comporta meglio della versione non ottimizzata sugli stessi dati, significa che :

  1. La vostra strategia beneficerà dell'ottimizzazionequindi è necessario riottimizzarlo periodicamente per ottenere le migliori prestazioni.
  2. Significa anche che il La strategia è sufficientemente robusta per far fronte ai cambiamenti del mercato. (utilizzando la riottimizzazione) e c'è una grande possibilità che funzioni anche in futuro.

Esempio di ottimizzazione Walk-Forward in StrategyQuant

L'esecuzione dell'ottimizzazione Walk-Forward in StrategyQuant è semplice; nelle prossime righe mostrerò il processo completo.

Strategia di ottimizzazione
Per semplicità, in questo esempio utilizzeremo la strategia EMA Cross. Si noti che questa strategia nella sua forma di base NON è redditizia e la riottimizzazione non la aiuterà, ma è abbastanza semplice per dimostrare come funziona l'ottimizzazione.

È possibile scaricare la strategia utilizzando il link sottostante - Fare clic con il tasto destro del mouse e scegliere Salva con nome...

Strategia EMA Cross.str

Contenuti:

  1. Caricamento di una strategia di ottimizzazione
  2. Impostazione dei valori di ottimizzazione
  3. Configurazione delle corse di andata e ritorno
  4. Controllo dei risultati
  5. Interpretare i risultati
  6. Descrizione dei componenti del punteggio WF avanzato

Fase 1: caricare una strategia di ottimizzazione

Prima di tutto, è necessario passare alla finestra Optimizer e caricare la strategia che si desidera ottimizzare.

Per questo esempio utilizzeremo la semplice strategia EMA_Cross che va long quando la EMA più veloce incrocia la EMA più lenta e va short quando la EMA più veloce incrocia la EMA più lenta. Dopo aver caricato la strategia, questa viene aggiunta anche come strategia Originale alla banca dati dei risultati dell'ottimizzazione.

È possibile fare doppio clic sulla strategia Originale e poi andare su Risultati -> Codice sorgente per vedere le sue regole.

Assicurarsi di controllare il Assegnare valori ai parametri in modo da vedere che le variabili pLongEMA_1, pLongEMA_2, pShortEMA_1, pShortEMA_1 sono utilizzate per memorizzare i parametri dell'indicatore. Nella nostra ottimizzazione cercheremo di trovare i valori ottimali di questi parametri.

C'è ancora un piccolo problema. Possiamo notare che la strategia utilizza parametri diversi per la direzione long e short. Possiamo utilizzarla in questo modo se vogliamo trovare i valori ottimali indipendentemente per il lato lungo e per quello corto, ma per il nostro esempio vorremmo utilizzare lo stesso parametro per il lato lungo e per quello corto.

Possiamo farlo nel programma Strumenti -> Opzioni -> Parametri della strategia.

Se si seleziona la prima casella di controllo, verranno utilizzati gli stessi parametri per la direzione lunga e corta (a condizione che le regole siano le stesse). Fare clic su OK per memorizzare le impostazioni e ripristinare il codice sorgente.


Fase 2: Impostazione dei valori di ottimizzazione

Per impostare i valori che saranno ottimizzati dobbiamo andare in Impostazioni -> Parametri

Qui è possibile vedere l'elenco di tutti i parametri della strategia disponibili per l'ottimizzazione. Ottimizzare significa semplicemente provare diversi valori dei parametri di ingresso.

Per ogni parametro che si vuole ottimizzare è necessario controllare la riga del parametro e scegliere i valori di Avvio, Arresto e Passo. L'ottimizzatore itererà il valore da Start a Stop, prendendo i passi. È possibile configurare anche il valore originale, che verrà utilizzato per testare nuovamente la strategia originale. È possibile utilizzare questo valore per confrontare le prestazioni dei nuovi risultati con le impostazioni "originali".

Il Numero di test indica quanti test devono essere eseguiti per verificare tutte le combinazioni di valori.

Nota!
È possibile che la tabella dei parametri contenga un numero maggiore di parametri; potrebbe avere un aspetto simile a questo:

Questa è un'altra potente caratteristica di StrategyQuant. Consente di ottimizzare non solo i parametri della strategia, ma anche altre opzioni di trading, come ad esempio il numero di operazioni al giorno o l'intervallo di tempo per il trading. Queste impostazioni fanno normalmente parte delle opzioni della strategia, ma è possibile ottimizzare anche i loro valori.

Se non si desidera utilizzarli e vederli nella tabella Parametri, andare ancora una volta a Strumenti -> Opzioni -> Parametri della strategia e deselezionare la casella di controllo per Aggiungere parametri per le opzioni della strategia.


Passo 3: Configurazione delle corse di andata e ritorno

È necessario specificare anche le impostazioni di avanzamento. In questo esempio utilizzeremo il periodo 30% Out Of Sample (Run) e 6 passi di riottimizzazione.

Fuori campione %
indica quanta parte dell'intero periodo rimane per l'esecuzione. Se lo impostiamo a 30 %, significa che in ogni periodo 70% dei dati sono utilizzati per l'ottimizzazione e 30% saranno utilizzati per il trading utilizzando i valori ottimizzati.

Corse a piedi in avanti
indica il numero di ottimizzazioni, ovvero il numero di volte in cui la strategia verrà riottimizzata.

È anche possibile specificare i periodi di ottimizzazione (In Sample) e di esecuzione (Out of Sample) per giorni esatti, selezionando Define specific number of days.


Fase 4: Controllo dei risultati

L'ottimizzazione Walk-Forward richiede più tempo di una semplice ottimizzazione, perché ci sono 6 (o più) fasi di ottimizzazione invece di una sola.

Al termine, vedremo che abbiamo solo due risultati nella banca dati: la strategia originale e il risultato di Walk-Forward.

Facendo doppio clic sul risultato nella banca dati, si apriranno i risultati della strategia.

Possiamo notare che la strategia ha fallito nel test walk-forward, in base alle impostazioni del punteggio di robustezza.

Il punteggio di robustezza è completamente personalizzabile. Possiamo impostare tutte le condizioni che vogliamo osservare nella tabella dei componenti del punteggio di robustezza (1) e impostare i loro valori limite.

Il valore di soglia del punteggio di robustezza principale (2) indica quanti di questi punteggi utilizzati devono essere superati affinché il risultato di WF sia considerato positivo.

A destra di questa tabella possiamo controllare i risultati per ogni ottimizzazione e periodo di esecuzione:

Si può notare che solo 2 corse su 6 sono finite in profitto.

Possiamo anche controllare il grafico delle azioni:

La linea blu rappresenta la strategia riottimizzata, mentre la linea grigia più sottile rappresenta la strategia originale non ottimizzata.


Interpretare i risultati

Come dobbiamo interpretare questi risultati?

Innanzitutto, è chiaro che questa particolare strategia non produce risultati migliori quando si utilizza la riottimizzazione.
Di certo questa strategia non è redditizia nella sua forma originale e non è stata resa redditizia dalla riottimizzazione.

Ma se dovessimo riottimizzare la strategia più spesso? O se utilizzassimo un diverso Out of Sample %? Come possiamo sapere qual è il periodo di ri-ottimizzazione migliore per la strategia?

Qui è dove Matrice di avanzamento viene a mancare - consultate il prossimo articolo.

 

Suggerimento: controllare anche l'articolo Descrizione dei valori avanzati di Walk-Forward per la descrizione dei vari valori che possono essere utilizzati nei filtri o mostrati nella banca dati.

 

 

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

Abbonarsi
Notificami
0 Commenti
Feedback in linea
Visualizza tutti i commenti