I REPORTS DI BACKTEST
1 - I REPORTS DI BACKTEST
Ora che abbiamo visto le istruzioni essenziali per scrivere un sistema di trading, vediamo tramite 2 semplici
esempi di sistema, cosa ci dicono i risultati del backtest.
Per prima cosa va specificato che, come in probuilder, è possibile inserire le variabili nei valori degli
indicatori e dei parametri.
Facendo così, il sistema ottimizzerà le variabili e ci dirà quali sono quelle migliori in termini di performance.
Il primo sistema di esempio, è un semplice sistema di incrocio di medie mobili esponenziali, con variabili i
periodi delle 2 medie mobili.
Nel secondo sistema, sempre con lo stesso incrocio di medie mobili esponenziali, aggiungeremo anche lo
stop loss ed il trailing profit a parte, basati entrambi sull'ATR moltiplicato per N periodi.
Il sistema è sia long che short e prevede che all'incrocio a rialzo della media mobile a breve termine con
quella a lungo termine, si generi un segnale di acquisto, mentre all'incrocio ribassista si generi un segnale di
vendita.
Quindi, se siamo long ed avviene un incrocio a ribasso, il sistema chiuderà la posizione long ed aprirà
simulataneamente una posizione short.
Lo stesso accadrà quando verrà chiusa la posizione short e si aprirà simultaneamente una posizione long.
Questo sistema può essere fatto anche solo per trades long o short, basta modificare le condizioni.
Inoltre, nelle condizioni ho specificato che la media mobile lunga deve essere almeno più grande di 1,5
volte quella breve (C3).
Questo per evitare, come può accadere, di avere parametri contrari ed illogici, cioè che quella lunga sia
più piccola di quella breve.
C3=lunga>(breve*1.5)
Quindi copiamo il codice nella finestra di programmazione e lo nominiamo per esempio CROSSOVER
EXPONENTIALS.
Nella sezione di destra inseriamo i dati relativi al money management:
Flaggo l'opzione mantieni la finestra aperta, in modo che se devo apportare delle modifiche non la devo
riaprire ogni volta.
Inseriamo le variabili (segnalate in blu) cliccando sul simbolo della chiave inglese - ottimizzazione variabili,
in alto a sinistra.
breve = parametri per la ema a breve periodo (da 5 a 100 con passo ogni 5)
lunga = parametri per la ema a lungo periodo (da 10 a 300 con passo ogni 10).
Una volta settato il tutto, lanciamo il comando probacktesta il mio sistema e vediamo cosa succede.
In base al numero di variabili impostate ed alla lunghezza del periodo di analisi, il sistema avvierà la fase di
ottimizzazione che può durare da pochi secondi ad alcuni minuti.
- il rapporto di ottimizzazione.
- il rapporto dettagliato.
Il rapporto di ottimizzazione (a sinistra) è un elenco con tutte le variabili messe automaticamente in ordine
di performance ed automaticamente sul grafico verranno rappresentati i dati relativi al risultato migliore.
il guadagno totale,
la % di guadagno,
la % di trades vincenti,
Il rapporto dettagliato (a destra) visualizza tutti i dati dei trades e le varie statistiche relative al risultato
migliore:
In alto a destra vediamo il riepilogo del periodo di simulazione, il capitale iniziale ed il guadagno finale.
- una finestra in mezzo con l'istogramma delle posizioni e la grandezza delle stesse.
Di default i colori saranno grigi, possiamo comunque personalizzarli, (io ho messo blu per i dati relativi ai
trades long e rossi per quelli short) cliccando come sempre sull'icona della chiave inglese sul grafico delle
curve.
Anche i segnali di default delle entrate ed uscite dai trades sono personalizzabili:
Vediamo che risultati ci da questo sistema con incrocio di ema breve a 45 periodi ed ema lunga a 70
periodi:
% di guadagno: +60,87 %
le posizioni in questo caso sono 19 perchè vengono analizzate solo le posizioni chiuse.
Tirando le somme, il sistema si rivela essere abbastanza equilibrato con circa il 50 % di trades vincenti e
perdenti e con un rapporto di profit factory o fattore di profittabilità pari a 2,78.
Quindi, per ogni perdita c'è quasi un gudagno superiore a 2,5 volte.
3 - SECONDO SISTEMA: INCROCIO DI 2 MEDIE MOBILI CON STOP LOSS E TRAILING PROFIT
Inseriamo ora il codice del secondo sistema, dove aggiungiamo anche le variabili di stop loss (x) e trailing
profit (y).
L'obiettivo dell'inserimento di queste variabili è quello di trovare i valori più vantaggiosi di stop loss e
trailing profit basati sul moltiplicatore dell'ATR (average true range) e vedere se ho ulteriori vantaggi da
questo sistema rispetto a quello puro.
Per inserire le variabili, prima definisco l'algoritmo di stop loss (SL) e quello di trailing profit (TP) basato sulla
moltiplicazione dell'ATR.
DEFPARAM CumulateOrders = false
// definizione indicatori
emabreve= exponentialaverage[breve](close)
emalunga= exponentialaverage[lunga](close)
SL = averagetruerange[14](close)*x
TP = averagetruerange[14](close)*y
C3=lunga> (breve*1.5)
Purtroppo, la versione free, al contrario della versione premium (abbonamento) ha dei limiti per
l'inserimento delle variabili.
Nel senso che, possiamo inserire tutte le variabili che vogliamo, ma la grandezza ed i passi sono limitati per
attuare un certo numero di combinazioni.
Per esempio in questo caso settiamo le seguenti variabili, mantenendo le stesse del sistema precedente ed
aggiungendo quelle realtive a X e Y :
Se clicchiamo su backtesta il mio sistema, e le variabili sono troppe da combinare, si aprirà la finestra del
limite di ottimizzazione, in cui si invita a sfoltire i parametri delle variabili oppure a sottoscrivere la versione
premium.
Oppure li regoliamo noi stessi cambiando i parametri delle variabili, utilizzando come base i risultati del
precedente sistema.
In questo caso restringo il campo delle variabili delle medie mobili, modificando i valori minimi ed i massimi
in base ai risultati precedentemente ottenuti.
Come vedete il risultato del sistema è lo stesso di prima, settando uno stop loss con ATR*2,5 e nessun
trailing profit (valore 0).
Vuol dire che, nel caso del sistema puro, il prezzo non ha mai ritracciato oltre quel valore e che inoltre, non
si ha nessuna convenienza a settare un trailing profit per questo tipo di sistema.