Backtest Multi-Symbol
La funzionalità Backtest Multi-Simbolo permette di eseguire Backtest ed ottimizzazioni di un trading system applicato ad uno o più simboli contemporaneamente ed analizzare i risultati ottenuti sia in modalità aggregata (un unico risultato) che per ogni singolo simbolo. Il documento è suddiviso in cinque sezioni:
Barra dei comandi
Nella parte in alto a sinistra del documento è presente la barra dei comandi del Backtest, che prevede i seguenti pulsanti:
Open Backtest - Apre un file di impostazione del Backtest Multi-Simbolo da un file precedentemente salvato;
Save Backtest - Salva le impostazioni attuali del Backtest Multi-Simbolo su file;
History - Pulsante On/Off, mostra/nasconde lo storico dei Backtest Multi-Simbolo eseguiti sul PC, comprensivi di dati di impostazione e risultati. Tramite la funzionalità Backtest History 3 è possibile confrontare un risultato ottenuto tempo addietro con quello appena conseguito.
Impostazioni del Backtest
In questa sezione sono presenti le impostazioni del Backtest da eseguire, sono divise in:
Signal and Parameters - Scelta del trading system da utilizzare ed interazione con i relativi parametri;
Symbols and Qty/Amount - Scelta dei simboli ai quali applicare il trading system e relative impostazioni di quantità e controvalore;
TimeFrame - Scelta del TimeFrame dei dati storici sui quali applicare il trading system;
Num. of Bars - Numero di barre di dati storici sulle quali applicare il trading system;
Impostazioni di Ottimizzazione
Se nella sezione Signal and Parameters è stata attivata l'ottimizzazione di almeno un parametro, nella parte inferiore del pannello delle impostazioni viene visualizzato un'ulteriore sezione composta da:
Number of Combinations - Numero di possibili combinazioni dei parametri che sono stati impostati come da ottimizzare;
Estimated Time - Stima del tempo necessario per completare l'ottimizzazione, dato il numero di combinazioni, il numero di simboli ed il numero di barre storiche su cui eseguire il Backtest. Durante l'ottimizzazione nella barra dei Comandi del Backtest ed Interazione con il Grafico Storico verrà visualizzata una stima continuamente aggiornata del tempo necessario al completamento dell'ottimizzazione;
Optimization In-Samples - Impostazione di quale percentuale dei dati storici utilizzare per eseguire l'ottimizzazione dei parametri. La parte rimanente costituirà la parte di dati storici usati per calcolare i risultati di ogni possibile combinazione del Backtest. Se il parametro Optimization In-Samples è impostato a 100% l'ottimizzazione userà tutte le barre storiche per calcolare la miglior combinazione di parametri possibile, e questi valori costituiranno i risultati del Backtest stesso, dato che non saranno disponibili dati storici per eseguire un calcolo Out-of-Samples;
Optimization Target - Casella a discesa dalla quale selezionare in quale modo calcolare il miglior risultato possibile durante l'ottimizzazione. Le scelte disponibili sono:
Aggregate Best Net Profit - Calcola il miglior risultato possibile usando la stessa combinazione di parametri di ottimizzazione su tutti i simboli selezionati per il Backtest;
Individual Best Net Profit -Calcola il miglior risultato possibile usando combinazioni diverse dei parametri di ottimizzazione per ogni simbolo selezionato per il Backtest.
Signal and Parameters
La finestra di selezione del trading system ed impostazione dei parametri consente di personalizzare il funzionamento del trading system per l’utilizzo nel Backtest. La finestra è composta dai seguenti elementi:
Signal - Casella a discesa tramite la quale scegliere il trading system da utilizzare nel Backtest. I trading system sono elencati tramite una vista ad albero e sono raggruppati per categoria;
Optimization - Pulsante On/Off, attiva o disattiva l’impostazione dei parametri di ottimizzazione del Backtest. E’ possibile ottimizzare qualsiasi parametro di tipo numerico. Quando l’ottimizzazione è attiva nella tabella dei parametri 3 vengono visualizzate tre colonne aggiuntive: From, To e Step;
Tabella dei parametri - Mostra un elenco dei parametri di Input del trading system. Le colonne disponibili sono:
Name - Nome del parametro di Input;
Value - Valore del parametro;
From - Valore minimo da usare nell’ottimizzazione degli Inputs;
To - valore massimo da usare nell’ottimizzazione degli Inputs;
Step - Intervallo di ottimizzazione degli Inputs;
Anteprima delle combinazioni per l’ottimizzazione - Se l’ottimizzazione è attiva, sotto alla tabella dei parametri 3 viene mostrato il numero di combinazioni di Inputs che sono state configurate ed una stima di quanto tempo sarà necessario per completare l’ottimizzazione del trading system;
Show Code - Mostra il codice sorgente del trading system attualmente selezionato nella casella a discesa 1 Signal. Se non già installato sul PC, MarvelChart propone l’installazione dell'ambiente di sviluppo Microsoft Visual Studio. E’ possibile comunque visualizzare il codice sorgente in qualsiasi editor di testo;
OK - Conferma le impostazioni attuali e chiude la finestra;
Cancel - Annulla le impostazioni attuali e chiude la finestra.
Symbols and Qty/Amount
La finestra di impostazione dei simboli che si vogliono utilizzare nel Backtest e relative quantità consente di eseguire il Backtest su più di un simbolo in un unico passaggio. La finestra prevede una barra con i seguenti comandi:
Open Symbols List - Apre un file precedentemente salvato contenente l’elenco dei simboli ed i relativi valori di quantità o controvalore;
Save Symbols List - Salva su file l’elenco attuale dei simboli, ciascuno con la propria impostazione di quantità o controvalore;
Add - Aggiunge uno o più simboli alla lista;
Remove - Elimina i simboli selezionati dalla lista;
Copy Settings - Copia le impostazioni del simbolo selezionato su tutti gli altri simboli presenti sulla lista;
Split Amount - Suddivide il controvalore impostato nella riga selezionata tra tutti i simboli presenti sulla lista. Esempio: se la riga selezionata ha un controvalore pari a 100K, e sono presenti 2 simboli sulla lista, per ciascun simbolo sarà impostato un controvalore pari a 50K.
L’elenco dei simboli è visualizzato come una tabella che presenta le seguenti colonne:
Data Symbol - Nome del simbolo utilizzato per ottenere i dati storici sui quali applicare il trading system;
Account - Account associato al simbolo sul quale simulare gli ordini del Backtest;
Qty / Amt - Permette di configurare la modalità di calcolo della quantità degli ordini. Le scelte disponibili sono:
Fixed Quantity - Quantità fissa, generalmente utilizzata per simboli di tipo Future o simile;
Amount - Controvalore, la quantità di ogni ordine verrà calcolata in modo tale da equivalere al valore di Amount impostato per il simbolo. Generalmente utilizzata per simboli di tipo Stock e simili.
Qty - Quantità dell’ordine, disponibile solo se nella casella Qty / Amt è stato scelto Fixed Quantity;
Amount - Controvalore dell’ordine, disponibile solo se nella casella Qty / Amt è stato scelto Amount.
Quando si aggiungono simboli tipo Stocks e simili l’impostazione predefinita è Amount 1.000, mentre in tutti gli altri casi, ad esempio contratti Future, l’impostazione predefinita è Fixed Quantity 1.
Una volta completate le impostazioni dei simboli e delle relative quantità, si devono confermare le proprie scelte cliccando sul pulsante OK.
Comandi del Backtest ed Interazione con il Grafico Storico
In questa sezione del documento Backtest Multi-Simbolo sono presenti i comandi per avviare e gestire l’esecuzione Backtest. La sezione è composta dai seguenti elementi:
Analyze Backtest on Charts - consente di attivare l'interazione del Backtest con i grafici storici dei simboli selezionati, in modo da poter analizzare nel dettaglio il comportamento del Trading System applicato al Backtest. Questa impostazione è disponibile solo se nessun parametro del Trading System è stato impostato per essere ottimizzato. Se almeno un parametro è stato impostato per essere ottimizzato non sarà possibile interagire con il Backtest tramite i grafici storici dei simboli;
Barra di impostazione della velocità di esecuzione del Backtest - con questa barra è possibile variare la velocità con la quale il Backtest viene eseguito, più lentamente trascinando il cursore verso sinistra, più velocemente trascinando il cursore verso destra. L'impostazione della velocità del Backtest è disponibile soltanto quando la casella Analyze Backtest on Charts è attiva;
Barra di avanzamento, che indica la percentuale di avanzamento del Backtest rispetto alle barre storiche disponibili;
Pulsante Start/Stop, avvia o ferma l’esecuzione del Backtest;
Pulsante Pausa/Riprendi, che consente di mettere in pausa l’esecuzione del Backtest per riprenderla in un secondo momento. Per interagire tramite il grafico dei dati storici è consigliato porre in pausa l’esecuzione del Backtest;
Pulsante Indietro, che sposta riporta l’esecuzione del Backtest indietro di una barra di dati storici;
Pulsante Avanti, che esegue il Backtest per una sola barra di dati storici.
Per interagire tramite il grafico dei dati storici è consigliato impostare una velocità di esecuzione del Backtest bassa tramite la barra 2 e successivamente porre in pausa l’esecuzione del Backtest, usando il pulsante Pausa/Riprendi 5 descritto qui sopra. Variare la velocità ed utilizzare il pulsante Pausa è utile per poter vedere il grafico e gli eventuali indicatori che scorrono nel tempo, quindi valutare se/quali interventi di modifica apportare al Trading System.
Sul grafico storico, tenendo premuto il tasto CTRL sulla tastiera e cliccando con il pulsante sinistro del mouse su una specifica barra, l’esecuzione del Backtest verrà portata a quella barra, spostando avanti o indietro nel tempo il Backtest.
Messaggi e notifiche
Questa sezione della documento Backtest Multi-Simbolo mostra i messaggi e le notifiche generate dal sistema durante l’esecuzione del trading system. I messaggi e le notifiche comprendono:
Avvio e completamento dell’esecuzione del Backtest;
Scaricamento dei dati storici sui quali il Backtest viene eseguito;
Spostamento avanti e/o indietro dell’esecuzione del Backtest;
Nuovi ordini generati dall’esecuzione del trading system.
Nelle notifiche relative ai nuovi ordini generati dell’esecuzione del trading system possono essere comprese ulteriori informazioni, configurate all’interno del codice sorgente del segnale del trading system. Per maggiori informazioni consultare il capitolo Programmazione per MarvelChart.
Risultati del Backtest
Il pannello dei risultati del Backtest Multi-Simbolo 1 è l’area più grande del documento. All’interno di questo pannello sono mostrate, a seconda dello stato del sistema di Backtest, le seguenti viste:
Pannello informativo, visualizzato quando il Backtest è in uno stato non-interattivo, durante lo scaricamento dei dati storici e/o durante l’esecuzione quando l’interazione tra Backtest e grafico dei dati storici non è disponibile o durante l'ottimizzazione;
Grafico dei dati storici, visualizzato quando è possibile interagire con il Backtest direttamente da questo grafico;
Pannello dei risultati senza ottimizzazione se nessun parametro del Trading System è stato impostato per essere ottimizzato, oppure Pannello dei risultati con ottimizzazione se almeno un parametro del Trading System è stato impostato per essere ottimizzato.
Pannello dei risultati per Backtest senza ottimizzazione
Quando il Backtest viene eseguito senza ottimizzazione di alcun parametro i risultati vengono presentati in un pannello composto da:
Un Performance Report Aggregato che contiene i risultati complessivi di tutti i simboli selezionati nel Backtest;
Un Performance Report semplice per ogni simbolo selezionato nel Backtest che contiene i risultati specifici del simbolo stesso.
Pannello dei risultati per Backtest con ottimizzazione
Nel caso in cui si sia impostata l'ottimizzazione di almeno un parametro nel Backtest, i risultati saranno presentati tramite un pannello composto da diverse viste. L'elenco delle viste dipende dal valore scelto nel parametro Optimization Target.
Risultati con Optimization Target pari a Aggregate Best Net Profit
Se Optimization Target è impostato al valore Aggregate Best Net Profit il pannello dei risultati mostrerà le schede:
Risultati con Optimization Target pari a Individual Best Net Profit
Se Optimization Target è impostato al valore Individual Best Net Profit il pannello dei risultati mostrerà le schede:
All'interno della scheda Best Result, nei report relativi ai singoli simboli sui quali il backtest è stato eseguito, sarà presentata una scheda aggiuntiva, Optimization, che visualizzerà l'elenco delle combinazioni del Backtest che sono state testate ed i relativi risultati, in forma tabellare.
In questo caso le schede All Results e Chart non sono presenti in quanto i risultati sono calcolati in modo indipendente per ciascun simbolo.
Best Result
In questa scheda vengono presentati i migliori risultati ottenuti tramite l'ottimizzazione dei parametri del Backtest. Il miglior risultato è calcolato estraendo la misura di Net Profit ottenuto da tutte le possibili combinazioni dei parametri di ottimizzazione del Backtest.
E' presentato tramite un pannello composto esattamente come il Pannello dei risultati per Backtest senza ottimizzazione, con l'unica differenza che nella vista Summary viene aggiunta una sezione che mostra i valori dei parametri di ottimizzazione che hanno portato ad ottenere quel particolare risultato.
All Results
In questa scheda vengono mostrati i risultati ottenuti per ogni combinazioni dei parametri di ottimizzazione del Backtest. I risultati vengono presentati tramite una griglia, con una colonna per ogni combinazione dei parametri di ottimizzazione, mentre le misure dei risultati sono elencate come righe.
Chart
Questa scheda può presentare due tipi di viste:
Vista con grafici a 2 dimensioni - Questa vista è presente esclusivamente quando l'ottimizzazione consiste in un singolo parametro;
Vista con grafico a 3 dimensioni - Questa vista è presente esclusivamente quando l'ottimizzazione consiste in più parametri contemporaneamente;
Grafici 2D
In questo tipi di vista è possibile visualizzare 1, 2 o 4 grafici bi-dimensionali, che mostrano l'andamento di varie misure dei risultati del Backtest a seconda del valore dell'unico parametro ottimizzato. Nella barra dei comandi di ogni chart sono disponibili i pulsanti:
Selezione della misura - Casella a discesa dalla quale scegliere la misura da visualizzare nel corrispondente grafico;
Numero di Grafici - Menù dal quale scegliere quanti grafici disporre nella scheda, la disposizione dei grafici è predeterminata;
Help - Mostra/Nasconde un testo di aiuto che descrive le caratteristiche della misura visualizzata.
In ogni chart è presente un Cross-Hair che visualizza i dati relativi alla posizione del cursore del mouse, indicando il nome del parametro di ottimizzazione, il suo valore per quella specifica posizione, ed infine il valore della misura selezionata dei risultati del Backtest. E' inoltre possibile eseguire lo Zoom su ogni grafico usando la rotellina del mouse.
Grafico 3D
In questo tipo di vista viene mostrato un grafico tridimensionale in grado di rappresentare l'andamento di una specifica misura dei risultati del Backtest in base alle combinazioni di 2 parametri di ottimizzazione. Nella parte superiore della vista è presente una barra con i comandi:
X-Axis Parameter - Casella a discesa per selezionare il parametro di ottimizzazione da utilizzare per l'asse X del grafico;
Z-Axis Parameter - Casella a discesa per selezionare il parametro di ottimizzazione da utilizzare per l'asse Z del grafico;
Y-Axis Result - Casella a discesa per selezionare la misura dei risultati dei Backtest da visualizzare nel grafico.
E' possibile interagire con il grafico usando il mouse:
Zoom - Per modificare lo zoom del grafico usare la rotellina del mouse;
Rotazione - Tenere cliccato il pulsante sinistro del mouse per ruotare il grafico in tutte le direzioni.
Per ripristinare le caratteristiche di Zoom e Rotazione ai valori iniziali, basta eseguire un doppio click con il pulsante sinistro del mouse sul grafico.
Backtest History
Questa vista presenta un elenco contenente le impostazioni ed i risultati di fino a 500K Backtest Multi-Simbolo eseguiti nel corso del tempo. Le colonne disponibili sono:
Date/Time - Data e ora di esecuzione del Backtest;
Signal - Nome del segnale e relativi parametri;
Symbols - Elenco dei simboli sui quali o Backtest è stato eseguito;
TimeFrame - TimeFrame dei dati storici;
Optimized - Casella di spunto che indica se il Backtest presentava dei parametri di ottimizzazione;
Realized P/L - Profit/Loss realizzato;
Un-Realized P/L - Profit/Loss non realizzato derivante dall’eventuale Open Position rimasta ancora in essere;
Net Profit - Profitto netto, pari alla somma di Realized P/L ed Un-Realized P/L;
Num. Trades - Numero di trades eseguiti;
Percent Profit - Percentuale di trades profittevoli;
Max. Draw-Down - Draw-Down massimo, ossia massima perdita potenziale dei trades;
Account Size Required - Ammontare necessario all’esecuzione del trading system, tale da sostenere il Max. Draw-Down ma avere contemporaneamente liquidità sufficiente per eseguire completamente i nuovi trades;
Profit Factor - Valore statistico pari al rapporto tra Gross Profit e Gross Loss;
Return On Investment - Valore statistico pari al rapporto tra Net Profit ed Account Size Required, espresso in percentuale;
Gross Profit - Somma dei Profit dei soli trades profittevoli;
Gross Loss - Somma dei Loss dei soli trades non profittevoli;
Num. Winning Trades - Numero di trades profittevoli;
Num. Losing Trades - Numero di trades non profittevoli;
Average Winning Trade - Profit medio dei trades profittevoli;
Average Losing Trade - Loss medio dei trades non profittevoli;
Average Trade - Profit/Loss medio di tutti i trades, profittevoli e non;
Ratio Avg. Winning / Avg. Losing - Rapporto tra Average Winning Trade ed Average Losing Trade;
Largest Winning Trade - Massimo tra i Profit dei trades profittevoli;
Largest Losing Trade - Massimo tra i Loss dei trades non profittevoli;
1 Std. Dev. Winning Trade - Deviazione Standard dei Profit dei trades profittevoli, ossia distanza rispetto alla relativa media;
1 Std. Dev. Losing Trade - Deviazione Standard dei Loss dei trades non profittevoli, ossia distanza rispetto alla relativa media;
1 Std. Dev. Profit/Loss - Deviazione Standard dei Profit/Loss dei trades, sia profittevoli che non, ossia distanza rispetto alla relativa media;
Average bars in Winning Trades - Durata media dei trades profittevoli, espressa come numero di barre storiche;
Average bars in Losing Trades - Durata media dei trades non profittevoli, espressa come numero di barre storiche;
Total bars in Winning Trades - Durata totale dei trades profittevoli, espressa come numero di barre storiche;
Total bars in Losing Trades - Durata totale dei trades non profittevoli, espressa come numero di barre storiche;
Max. Consecutive Winning Trades - Numero massimo di trades consecutivi profittevoli;
Max. Consecutive Losing Trades - Numero massimo di trades consecutivi non profittevoli;
Max. Contracts/Lots Held - Numero massimo di azioni/contratti/lotti detenuti;
Kelly Bet Fraction (K%) - Il criterio di Kelly (anche conosciuto come strategia di Kelly o Kelly Bet) è il risultato di una formula utile per dimensionare l’ammontare da investire nel trading system;
Sharpe Ratio - Valore statistico che misura gli Extra-Return rispetto al Risk-Free Rate;
Sortino Ratio - Valore statistico, simile allo Sharpe Rato, che misura gli Extra-Return rispetto al Risk-Free Rate;
Time From Start - Tempo trascorso tra l’apertura del primo trade e la chiusura dell’ultimo.
E’ possibile rimuovere dall’elenco uno o più risultati selezionando le relative righe e premendo il tasto Canc sulla tastiera, oppure spostare le colonne tenendo premuto il pulsante sinistro del mouse sul capo-colonna. Per maggiori informazioni vedere il capitolo Funzionalità comuni delle griglie di dati.
Tramite la funzionalità Backtest History 1 è possibile confrontare un risultato ottenuto tempo addietro con quello appena conseguito.