Un esempio di overfitting: se lo conosci (forse) lo eviti. (2 lettori)

surcontre

Nuovo forumer
.....
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ù ' ??

Si, direi che esiste, tanto più il system è basato su anomalie reali, tanto più si possono monitorare queste anomalie controllando se scompaiono o meno.
Però la cosa può impegnare tempi molto lunghi, magari ti accorgi del fallimento dell’ipotesi inziale quando ormai hai perso anche la camicia :- )

Mi spiego meglio: se il system ha una logica misteriosa, ad esempio l’incrocio di tre medie mobili con particolari valori, oppure due o tre strani oscillatori di AT che s’incrociano etc., diventa difficile capire perché produce un excess return, e dunque diventa ancora più difficile capire perché smette di produrlo. Già in partenza non sai perché funziona, figuriamoci capire perché smette di funzionare.
Se invece la logica sottostante il system (oppure l’anomalia di mercato che sfrutta) è chiara, allora basta monitorare quella: se scompare ci deve essere una motivazione per il comportamento, così come c’era (la motivazione) quando era presente.

Faccio un esempio:
fino al 2007 esisteva una relazione inversa “forte” tra il rendimento mensile del prezzo del petrolio e il rendimento, nel mese successivo, dei mercati azionari: negli ultimi 25-30 anni sarebbe bastata questa indicazione per battere di molto il buy-hold, anche in Italia. La relazione era “logica”: un aumento del prezzo dei fattori produttivi fa diminuire i profitti attesi e viceversa.

Con la metà del 2007, la crisi subprime e il collasso parziale di tutte le economie del mondo, questa logica è andata a farsi benedire. Il rischio di un collasso delle economie congelò le aspettative sul prezzo futuro dell’energia e la relazione petrolio/azioni si rovesciò: fino a qualche mese fa un aumento del prezzo dell’energia indicava una ripresa delle attività produttive, cosa che allontanava dai mercati azionari la paura di una crisi tipo quella del ‘29, permettendo una ripresa dei prezzi delle azioni.
Il fenomeno sta diminuendo e, probabilmente, nel momento in cui le paure di depressione mondiale saranno del tutto fugate, riprenderà la solita relazione mensile petrolio/azioni dei gioioso periodo pre agosto 2007.

Ovviamente è facile fare questa analisi ora, molto meno facile farla nel 2007 smettendo di usare il system fino a tempi migliori :- )
Però, con tempi diversi in funzione delle diverse capacità/esperienze dei trader, prima o poi ci si arriva a capire questo fenomeno, ma nel caso avesse smesso di funzionare il system di prima, basato su incroci strani di indicatori, diventa difficile, se non impossibile, capire se il system ha avuto un calo di performance per puro effetto della volatilità, oppure se è da buttare per sempre.
Un saluto a tutti
 

neborkia

sono una pippa
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.

Per evitare l'overfitting, in teoria nella costruzione del TS si dovrebbe suddividere in 3 blocchi la serie storica, circa a questo modo:

- Primo Blocco "Back Test": 15%
- Secondo Blocco "Study": 60%
- Terzo Blocco: restante 25%

Provi il TS per il primo blocco e ti fai una lista delle varie ottimizzazioni.
Lo provi sul secondo blocco e fai una lista delle ottimizzazioni.
Compari i 2 risultati e scegli il miglior compromesso.
Provi il TS sul terzo blocco senza effettuare alcuna modifica. Se funziona bene, altrimenti c'e' da ripartire da capo.

Sto provando in questi giorni a fare qualcoasa del genere, ma e' piu' facile a dirsi che a farsi!
 

surcontre

Nuovo forumer
Per evitare l'overfitting, in teoria nella costruzione del TS si dovrebbe suddividere in 3 blocchi la serie storica, circa a questo modo:

- Primo Blocco "Back Test": 15%
- Secondo Blocco "Study": 60%
- Terzo Blocco: restante 25%

Provi il TS per il primo blocco e ti fai una lista delle varie ottimizzazioni.
Lo provi sul secondo blocco e fai una lista delle ottimizzazioni.
Compari i 2 risultati e scegli il miglior compromesso.
Provi il TS sul terzo blocco senza effettuare alcuna modifica. Se funziona bene, altrimenti c'e' da ripartire da capo.

Sto provando in questi giorni a fare qualcoasa del genere, ma e' piu' facile a dirsi che a farsi!

Ottimo metodo, anche se contiene in sé il germe dell’errore, come qualsiasi altro metodo di backtesting.
Mi spiego meglio.
Qualsiasi processo di backtesting si usi per validare una strategia, prima o poi dovrà misurarsi con la realtà, ovvero la strategia si troverà a fare i conti con dati freschi, mai visti.
A questo punto in caso di fallimento, non è possibile ripartire da capo a meno di farlo dopo aver accusato delle perdite sull’account.

Questo non accade, ovviamente, usando il tuo metodo ( qualsiasi altro metodo per minimizzare l’averfitting): se non va, semplicemente cambi strategia e questo accadrà più e più volte, finché il tuo system avrà una performance decorosa nei tre spezzoni.
In questo modo, lentamente anche la parte di validazione finale entra nel gioco, per cui l’ultimo spezzone di dati (quello che dovrebbe convalidare la bontà del system) è come se fosse visto dal system medesimo, producendo una pericolosissima forma di overfitting invisibile.

Purtroppo questa forma di overfitting è ineliminabile: più passi tempo ad “arare” la serie storica provando strategie, più le chance di data-mining diventano alte. E’ una caratteristica abbastanza nota in letteratura scientifica, infatti molte anomalie scoperte da ricercatori universitari scompaiono appena l’articolo scientifico è pubblicato e reso disponibile a tutti.
Per questo è conveniente che la strategia abbia una “logica” fondamentale al suo interno, ovvero una spiegazione del suo funzionamento aldilà, dei risultati statistici.

E’ una brutta bestia l’overfitting, secondo me la principale responsabile delle perdite dei trader “sistematici”.
Happy trading
 

f4f

翠鸟科
mi permetto di suggerire un'altra tecnica per evitare l'overfitting:
testare il TS con serie di altri mercati che 'rassomiglino' al mercato scelto, ad esempio per lo FTSEMOB il CAC o il DAX o al limite l'Eurostoxx

se i risultati non sono del tutto deludenti sugli altri mervìcati, si può ipotizzare che la logica sottostante al TS sia abbastanza valida
 

surcontre

Nuovo forumer
mi permetto di suggerire un'altra tecnica per evitare l'overfitting:
testare il TS con serie di altri mercati che 'rassomiglino' al mercato scelto, ad esempio per lo FTSEMOB il CAC o il DAX o al limite l'Eurostoxx

se i risultati non sono del tutto deludenti sugli altri mervìcati, si può ipotizzare che la logica sottostante al TS sia abbastanza valida

Ottimo metodo, in particolare se i mercati sono simili ma scorrelati.
Lo so, detta così sembra un ossimoro, ma questa condizione può verificarsi se si analizzano strategie intraday.

Ad esempio trovandosi di fronte a una presunta anomalia intraday sul FIB, probabilmente non ha molto senso cercare una verifica sul DAXF in quanto nel medesimo istante i prezzi dei due futures tendono a muoversi in modo simile.
Se però la medesima anomalia viene rilevata anche su SP, DJ e/o ND, in ore in cui i futures europei sono chiusi, questo può rappresentare un buon test di validazione.
 

f4f

翠鸟科
Si, direi che esiste, tanto più il system è basato su anomalie reali, tanto più si possono monitorare queste anomalie controllando se scompaiono o meno.
Però la cosa può impegnare tempi molto lunghi, magari ti accorgi del fallimento dell’ipotesi inziale quando ormai hai perso anche la camicia :- )

Mi spiego meglio: se il system ha una logica misteriosa, ad esempio l’incrocio di tre medie mobili con particolari valori, oppure due o tre strani oscillatori di AT che s’incrociano etc., diventa difficile capire perché produce un excess return, e dunque diventa ancora più difficile capire perché smette di produrlo. Già in partenza non sai perché funziona, figuriamoci capire perché smette di funzionare.
Se invece la logica sottostante il system (oppure l’anomalia di mercato che sfrutta) è chiara, allora basta monitorare quella: se scompare ci deve essere una motivazione per il comportamento, così come c’era (la motivazione) quando era presente.

Faccio un esempio:
fino al 2007 esisteva una relazione inversa “forte” tra il rendimento mensile del prezzo del petrolio e il rendimento, nel mese successivo, dei mercati azionari: negli ultimi 25-30 anni sarebbe bastata questa indicazione per battere di molto il buy-hold, anche in Italia. La relazione era “logica”: un aumento del prezzo dei fattori produttivi fa diminuire i profitti attesi e viceversa.

Con la metà del 2007, la crisi subprime e il collasso parziale di tutte le economie del mondo, questa logica è andata a farsi benedire. Il rischio di un collasso delle economie congelò le aspettative sul prezzo futuro dell’energia e la relazione petrolio/azioni si rovesciò: fino a qualche mese fa un aumento del prezzo dell’energia indicava una ripresa delle attività produttive, cosa che allontanava dai mercati azionari la paura di una crisi tipo quella del ‘29, permettendo una ripresa dei prezzi delle azioni.
Il fenomeno sta diminuendo e, probabilmente, nel momento in cui le paure di depressione mondiale saranno del tutto fugate, riprenderà la solita relazione mensile petrolio/azioni dei gioioso periodo pre agosto 2007.

Ovviamente è facile fare questa analisi ora, molto meno facile farla nel 2007 smettendo di usare il system fino a tempi migliori :- )
Però, con tempi diversi in funzione delle diverse capacità/esperienze dei trader, prima o poi ci si arriva a capire questo fenomeno, ma nel caso avesse smesso di funzionare il system di prima, basato su incroci strani di indicatori, diventa difficile, se non impossibile, capire se il system ha avuto un calo di performance per puro effetto della volatilità, oppure se è da buttare per sempre.
Un saluto a tutti


dato l'argomento interessantissimo, mi sono permesso di riprendere qusto post per ricordar(mi) che la logica del TS è la cosa più importante in assoluto
a titolo di appunto quasi personale, cito quanto Fanton in un suo libro non fa che citare questo assioma assoluto

aggiungo: la logica si vede anche nella tipologia degli indicatori utilizzati, che devono essere
1 coerenti tra loro e
2 non correlati

sulla correlazione degli indicatori... cerco un link ...

trovato :)

http://stockcharts.com/school/doku.php?id=chart_school:trading_strategies:multicollinearity



ps
questo thread è molto utile imho... da pensare di metterlo in stiky :)
 
Ultima modifica:

gio.bar

Forumer storico
L'overfitting lo eviti se provi su mercati diversi, timeframe diversi, ecc...
Oppure hai un prodotto "fitted" come Regolo per l'SPMIB. Che va benone ma non è adattabile su altri mercati perchè è studiato per il mercato specifico.

Il problema dell'overfitting deriva da un assunto sbagliato e cioè che i pattern del passato si ripetano in modo uguale o simile nel futuro.

:ciao:
 

Users who are viewing this thread

Alto