Un esempio di overfitting: se lo conosci (forse) lo eviti. (1 Viewer)

surcontre

Nuovo forumer
Qualche giorno fa mi è capitato in mano un opuscoletto dal titolo Winning Stock Index Strategies: era allegato ad un vecchio numero della rivista Futures Magazine dell’agosto 1997 e si prefiggeva di descrivere il funzionamento dell’allora nascente contratto futures E-MINI SP, negoziato in modo elettronico sul Globex.
Nell’opscolo vi erano articoli di alcuni “guru” del tempo, Larry Williams, Linda Raschke, Murray Ruggero, tutta gente che ha riempito le librerie dei trader dello scorso decennio con libri dedicati all’AT.

Nell’articolo di Murray Ruggero era presentato un system studiato per il futures SP500 EOD, con codice in Easylanguage per TS2000i e performance summary con risultati a dir poco interessanti: sul vecchio contratto SP ($500 a punto, allora) dall’82 al 97 mostrava un profitto di quasi mezzo milione di $, con un max drawdown di circa $30000 e una equity-line abbastanza regolare. Il system era basato sull’influenza che i tassi di interesse esercitano sul mercato azionario.
Questo il codice:

{ SP futures in Data1
Tbond in Data2}
Value1=60000/C;
If C Data2 > Average(C Data2, 30) and C < average(C, 12)
then buy value1 contract at C;
If C Data2 < Average(C Data2, 30) and C > average(C, 12)
Then sell value1 contract at C;
if lastbaronchart then setexitonclose;

In pratica il system assume posizioni Long in caso di crescita Tbond e discesa SP, posizioni Short in caso di esatto contrario, sempre nel mercato.

A questo punto, possendendo le serie storiche dei due futures, ho provato a simulare l’esatta strategia dal 1982 a oggi, considerando come controvalore fisso dei trade il controvalore attuale del contratto E-Mini SP, circa $60000, in modo da evitare la distorsione dovuta alle oscillazioni di controvalore del futures nel periodo.
Ecco l’equity-line che esce trascurando i costi di transazione:
1272377106iosp.jpg

la vedete quella riga viola? è centrata esattamente nell’agosto 1997, data di pubblicazione del system: prima di allora abbiamo una bella equity-line crescente, dopo abbiamo un trading più o meno casuale, senza profitto alcuno ma con parecchia volatilità.
Se ci pensate, Ruggero simulò il suo system su 15 anni di dati eod (non sono pochissimi) e con un system semplice con solo due soli parametri ottimizzabili (il lookback delle due media mobili) eppure, pur essendo un “guru” degno di rispetto, cascò con mani e piedi nella trappola dell’overfitting.

Mi capita spesso di spulciare vecchie riviste di AT della fine anni 90 e quando trovo un system con codice analizzabile, spesso controllo out-of-sample la performance: devo dire che quasi mai (per non dire mai…) i risultati dopo la pubblicazione dei system sono diversi da un semplice buy/sell lanciando una moneta.
Happy trading
 

cosky

Nuovo forumer
Ottima considerazione... ora però mi sorge una domanda:
mettendo di voler utilizzare un TS, come faccio ad essere sicuro che non sia in overfitting?
Mettiamo che io voglia utilizzare un semplice incrocio di MM... chiaro che se otttimizzo le due MM da 5 a 200 gg vado in overfitting, ma se scelgo a priori 20 e 100, come faccio a sapere che magari non siano proprio i valori "più overfittati" dell'intero sistema?
Nel senso, come faccio a sapere quali valori dovrò usare nel futuro?
Non so se sono riuscito a spiegarmi bene...
M.
 

surcontre

Nuovo forumer
Risposta alla prima domanda: credo sia impossibile avere la certezza di evitare l'overfitting, possiamo solo mettercela tutta nel tentativo di minimizzarna gli effetti. Aumentando la lunghezza della serie storica e diminuendo, quanto possibile, il numero delle regole e dei parametri della strategia.

Come puro esercizio proviamo, col senno di poi e senza voler criticare l'ottimo Ruggero, a "fare le pulci" al system da me descritto.
Ruggero ipotizza due regole: una relazione inversa tra l'andamento di breve di SP e il suo andamento futuro e una relazione diretta tra l'andamento dei bond e l'andamento futuro di SP. Nell'ultima decade la prima relazione ha tenuto, mentre la seconda è fallita (per questo il profitto realizzato è pari a zero o poco più, fossero fallite entrambe avremmo assistito a perdite sostanziose).
Probabilmente, 15 anni di dati sono pochi per supporre stabile nel futuro una relaazione così importante come bond/azioni, infatti dal grafico sottostante appare che il periodo 82-97 non è rappresentativo dell'intera storia di SP: il periodo precedente, caratterizzato da forti oscillazioni di mercato senza crescita globale è molto simile a quello degli ultimi 10-13 anni. e non è rappresentato nel periodo scelto da Ruggero.
1272447071sspp.jpg


Insomma, a naso sembra che la serie storica usata da Ruggero sia stata troppo corta. Se a questo si associa il fatto che per arrivare a determinare il lookback ottimale delle due MM (12 e 30), probabilmente avrà esplorato centinaia di combinazioni, che il numero di trade del system nel periodo (118, se ricordo bene) era relativamente basso, il risultato out-of-sample ottenuto appare abbastanza scontato.

Per quanto riguarda le tue MM cosky, vale la risposta di cui sopra: non saprai mai se hai azzeccato i periodi migliori per il futuro o meno.
Avrai notato che la MM più famosa sul pianeta rimane la classica a 200 gg, o 10 mesi: forse perché è semplice (una sola regola) pochi parametri (uno solo) e funziona sui mercati di tutto il mondo da oltre 100 anni.

Gira e rigira si torna sempre lì: serie storiche lunghe, poche regole, pochi parametri.
Happy trading.
 

supermilan

Forumer storico
scopro con piacere che scrivi ancora LV :bow:

conservo ancora con cura i tuoi scritti che poi provvedesti a rimuovere dall'altra parte

complimenti per le tue esposizioni e anche per il blog che ho visitato
sei sempre grande ItaliaKilo2HotelLimaBravo :up:


73,
Lucio
 

f4f

翠鸟科
Gira e rigira si torna sempre lì: serie storiche lunghe, poche regole, pochi parametri.
Happy trading.


premesso che sono perfettamente d'accordo, mi permetto di introdurre una idea ( che al più presto vorrei sviluppare con voi nel thread della mm200) :
posto che il rischio di overfitting esiste sempre, o che cmq il TS può fallire,
esite un metodo per capire quando un TS 'non funziona più ' ??
 

Users who are viewing this thread

Alto