Risposta

Ottimizzazione Walk-Forward vs. robustezza

7 risposte

kainc301

Cliente, bbp_partecipante, comunità, 54 risposte.

Visita il profilo

4 anni fa #245968

Voglio creare un thread sul WFO in generale e discutere sull'utilità o meno di questo strumento da parte di altri quants.

Sono dell'opinione che non sia affatto necessario e che non aiuti a determinare la solidità di una particolare strategia. Per come è strutturato il WFO, ogni strategia viene ripetutamente ottimizzata su più periodi di dati di mercato e poi testata su una piccola porzione di dati OOS. Il concetto generale è che si tratta di una simulazione più verosimile del trading dal vivo, che verifica le prestazioni delle strategie quando si adattano alle diverse condizioni di mercato. Tuttavia, è davvero così?

Se i parametri di una determinata strategia vengono ripetutamente ottimizzati, a mio avviso il WFO non fa altro che testare la solidità di quei parametri specifici nel momento in cui si verificano in quel periodo di tempo nei dati di mercato. In altre parole, si basa su un'ottimizzazione costante per determinare la solidità di una strategia e ritengo che l'ottimizzazione costante delle strategie sia una premessa errata. A questo punto ho testato centinaia di migliaia di strategie e la conclusione che ne ho tratto è che cambiando di molto i parametri si lavora di fatto con una strategia completamente diversa ogni volta che lo si fa. Non sto parlando di modificare i parametri di poco, perché potete verificarlo con le simulazioni Monte Carlo. Se ottimizzate costantemente una strategia per un periodo di tempo molto più limitato, i parametri possono cambiare così tanto che la strategia potrebbe essere ottimizzata per quel periodo di tempo ma fallire a lungo termine. Inoltre, poiché l'ottimizzazione avviene in un periodo di tempo limitato, non c'è modo di sapere quando una determinata ottimizzazione fallirà, perché ogni ottimizzazione può essere drasticamente diversa dalla precedente e si può finire con nuovi parametri che andavano bene per l'ultimo anno, ma che falliscono nei mercati reali perché si opera essenzialmente con una strategia diversa rispetto all'ultima ottimizzazione. E se non ottimizzate costantemente la strategia finale che supera il WFO, allora non ha senso guardare a ciò che vi dice il WFO, perché non è un'indicazione della performance di una strategia di cui non modificate i parametri.

Dico tutto questo per dire che non ha molto senso per me il motivo per cui qualcuno dovrebbe ottimizzare costantemente le strategie per le attuali condizioni di mercato. Ogni volta che lo si fa, si lavora con una strategia diversa che può aver funzionato solo nel piccolo lasso di tempo per cui è stata ottimizzata e non si sa quanto drasticamente l'ottimizzazione possa influenzare i parametri in presenza di nuovi dati di mercato. Per me è molto più sensato trovare strategie che sopravvivano ai dati OOS e ottimizzarle una volta per adattare le prestazioni all'intero set di dati. Se sopravvive all'OOS e alle simulazioni Monte Carlo, ottimizzandola una volta si trovano i parametri migliori che hanno mantenuto la massima performance sull'intero set di dati e non ci si deve preoccupare dell'overfitting perché a questo punto è già sopravvissuta all'OOS. Inoltre, non è necessario tornare costantemente sulla strategia e ri-ottimizzarla, cosa che può cambiare la natura della strategia stessa. Invece, l'ottimizzazione viene effettuata una volta sola e si possono ottenere prestazioni affidabili con i parametri finali.

Ma il mio obiettivo non è quello di essere pigro. Naturalmente, questo significa meno lavoro da fare per sviluppare le strategie. L'eliminazione di WFO dal mio flusso di lavoro ha reso il processo di elaborazione di una strategia finale che considero robusta molto più veloce e non è necessario tornare indietro per riottimizzare 10-100 strategie diverse. Ma non vorrei escludere il WFO dal mio flusso di lavoro per praticità e pigrizia. Se davvero è più vantaggioso utilizzarlo per il processo di robustezza, non mi dispiacerebbe un compromesso in termini di tempo per una strategia migliore e più affidabile. È più importante non lasciare che piccole sviste vi costino denaro sui mercati. Tuttavia, finora non ho trovato alcuna ragione o prova legittima per cui sia meglio ottimizzare costantemente una determinata strategia.

Vorrei quindi porre la domanda a tutti coloro che utilizzano la WFO. Ritenete che sia vantaggioso utilizzarlo? Se sì, in che modo ritenete che ottimizzare costantemente le strategie sia più vantaggioso che non farlo? Ho faticato a trovare una ragione per questo e vorrei un feedback da parte di altri che non sono assolutamente d'accordo con la mia posizione perché, a quanto ho capito, WFO è più che altro un test opzionale proprio per questo motivo.

0

bentra

Cliente, bbp_partecipante, comunità, sq-ultimate, 22 risposte.

Visita il profilo

4 anni fa #245977

cambiando di molto i parametri, si lavora di fatto con una strategia completamente diversa ogni volta che lo si fa.

Questo pensiero mi ha attraversato spesso la mente. Qual è il punto di confine tra l'ottimizzazione e la sperimentazione casuale di strategie completamente diverse? Nel mio EA ho parametri ottimizzabili che cambiano completamente interi aspetti della strategia e ritengo che ottimizzarli sia più simile a provare diverse strategie in modo casuale. Questo è uno dei motivi per cui ritengo che sia importante sapere esattamente cosa fa ogni variabile prima di ottimizzarla, in modo da poter valutare se sia opportuno ottimizzarla e quanto sia possibile modificarla senza che diventi una strategia diversa.

A giudicare dalla mia limitata esperienza e da tutti i libri di trading che includono un capitolo sul walk-forward, direi che è molto probabile che il WF possa avere un certo valore se lo facciamo in modo corretto, facendo attenzione a non analizzare troppo i dati e facendo attenzione a non "finire con una strategia completamente diversa", come dici tu. Tuttavia, un WF può fare più male che bene se non è fatto correttamente, soprattutto con la matrice SQX WF che a volte può far sembrare buono un WF di certi parametri quando in realtà abbiamo sovra-ottimizzato il processo WF stesso.

È piuttosto raro per me che una strategia faccia altrettanto bene o meglio nel suo OOS di un WF rispetto al suo OOS durante la fase di sviluppo della strategia, ma quando succede ho un po' più di fiducia nel WF. Naturalmente ri-ottimizzerò se necessario, come hai detto tu, non ha senso non farlo, certo è una rottura e ho fatto delle modifiche speciali al mio codice mt4 per alleviare il dolore.

Non sono sicuro che mi preoccuperei di usarlo come test di robustezza perché, come hai detto tu, il test MC può fare qualcosa di simile.

Sono d'accordo con l'intero post, è estremamente ben scritto e pone alcune grandi domande che entrambi condividiamo, ma questo è assolutamente un campanello d'allarme per me:

Per me è molto più sensato trovare strategie che sopravvivano ai dati OOS e ottimizzarle una volta sola per adattare le prestazioni all'intero set di dati.

Si corre il rischio di un over-fitting durante l'ottimizzazione finale! Non ottimizzerei dopo aver fatto tutti gli altri test. Non è diverso da un walk forward con un grande campione interno che non avete ancora testato fuori dal campione. Prima di tentare un'operazione di questo tipo, mi piacerebbe almeno ottenere un WF ancorato.

Che tutti i vostri abiti siano sciolti.


https://www.darwinex.com/darwin/SUG.4.2/

0

mabi

Cliente, bbp_partecipante, comunità, 261 risposte.

Visita il profilo

4 anni fa #245978

Il concetto deve essere quello che se una strategia può essere ottimizzata su dati non visti e, così facendo, migliorare significativamente la performance, allora si tratta di una strategia adattabile alle condizioni di mercato che molto probabilmente può essere adattata a condizioni di mercato diverse se ottimizzata di recente. Quando è stata sviluppata la Walk forward, hanno avuto bisogno di un po' di tempo per sistemare la strategia, dato che ne avevano solo una su cui hanno lavorato per 2 anni e avevano bisogno che questa funzionasse sul maggior numero possibile di mercati. Sto testando questo aspetto: ho circa 400 strategie in esecuzione sulla demo che sono state ottimizzate su dati non visti e che saranno ri-ottimizzate a dicembre e originariamente hanno tutte periodi di vincita >80% su dati non visti, il che in pratica dovrebbe significare che entro giugno dell'anno prossimo, al momento della seconda ottimizzazione, 90% dovrebbe avere almeno un periodo di profitto. Se questo è vero, probabilmente lo userò, altrimenti lo scaricherò, che è lo scenario più probabile.

Finora ho visto le migliori prestazioni dalle strategie che sono ottimizzate sui dati recenti, ma che si sono comunque comportate bene sui dati non visti e che sono molto più semplici da fare. Tuttavia, questo sembra creare un certo % di perdenti totali immediati, quindi devono prima essere incubati. Ma i rimanenti hanno avuto buone prestazioni, tutti pensati nel mio test facendo questo erano di un tipo che hanno recentemente eseguito bene in ogni modo guardando indietro di 6 mesi, quindi cose come il tipo di strategia e quel tipo di prestazioni generali sul mercato recente deve essere considerato come bene e confrontato con l'ottimizzato per deter-main l'efficacia di fare e implementare queste operazioni per le strategie utilizzate con denaro reale. Tuttavia ho scoperto che è quasi impossibile far funzionare una strategia in un periodo di perdita ottimizzandola, l'unica cosa che sembra accadere è un leggero miglioramento delle prestazioni nel corso del tempo che diventano migliori quando stanno già facendo profitti non ottimizzati.

Per quanto riguarda i test di robustezza, credo che la soluzione migliore sia quella di avere strategie che funzionano su molti strumenti e time frame e che sono facili da trovare su SQx. Come può una strategia essere curva o cattiva se funziona su dati inediti su X mercati diversi. Naturalmente funzionerà, forse non nei prossimi 6 mesi, ma in seguito lo farà di sicuro o il mercato smetterà di essere casuale, il che non accadrà.

0

kainc301

Cliente, bbp_partecipante, comunità, 54 risposte.

Visita il profilo

4 anni fa #245980

Si corre il rischio di un over-fitting durante l'ottimizzazione finale! Non ottimizzerei dopo aver fatto tutti gli altri test. Non è diverso da un walk forward con un grande campione interno che non avete ancora testato fuori dal campione. Prima di tentare un'operazione di questo tipo, mi piacerebbe almeno ottenere un WF ancorato.

Non sono d'accordo. L'ottimizzazione finale, dopo che tutto è stato testato, si limita generalmente a modificare solo leggermente alcuni parametri. Ad esempio, spostando uno stop-loss da 3,4x ATR a 2,8x ATR o spostando l'uscita dopo le barre da 25 a 40. Per me è illogico che queste modifiche rendano una strategia "overfit" all'improvviso. Le strategie overfit sono strategie che funzionano solo sui dati su cui sono state formate. L'ottimizzazione del set di dati non è la stessa cosa di una riqualificazione. La strategia è ancora sopravvissuta sui dati OOS precedenti. Modificare leggermente la strategia non significa riqualificarla su questi dati OOS, poiché dovrebbe essere ancora considerata non vista dal set di dati di allenamento originale.

Per quanto riguarda i test di robustezza, credo che la soluzione migliore sia quella di avere strategie che funzionano su molti strumenti e time frame e che sono facili da trovare su SQx. Come può una strategia essere curva o cattiva se funziona su dati inediti su X mercati diversi. Naturalmente funzionerà, forse non nei prossimi 6 mesi, ma in seguito lo farà di sicuro o il mercato smetterà di essere casuale, il che non accadrà.

Ci avevo pensato anch'io in origine. Tuttavia, la mia preoccupazione riguardava le differenze tra gli altri mercati. Per me si tratta di un'area ancora più grigia di quella del WFO e voglio ancora fare ulteriori ricerche sulle strategie che funzionano su altri mercati, per fare un vero test di robustezza. Da quanto ho capito, è necessario testare mercati simili. Per fare un esempio ovvio, non si può fare qualcosa come confrontare i risultati di una strategia su EUR/USD e USD/JPY, dato che si muovono in modo quasi opposto l'uno all'altro. Si dovrebbe fare qualcosa come confrontare una strategia su EUR/USD con GBP/USD e, se si testa USD/JPY, confrontarla con EUR/JPY e così via.

Finora ho visto le migliori prestazioni dalle strategie ottimizzate sui dati recenti, ma che si sono comunque comportate bene sui dati non visti e che sono molto più semplici da fare.

Sono curioso di fare ulteriori ricerche e di ricevere altre opinioni in merito. In passato non mi sono mai allenato su dati più recenti e non ho mai testato la strategia contro l'OOS. Farei l'opposto: mi allenerei sui dati passati e farei dei dati recenti il mio OOS per dimostrare che la strategia funziona ancora nelle condizioni di mercato attuali. Il meglio di entrambi i mondi sarebbe quello di avere più periodi IS e più OOS, ma sto aspettando che questa richiesta di funzionalità venga implementata 😉

0

bentra

Cliente, bbp_partecipante, comunità, sq-ultimate, 22 risposte.

Visita il profilo

4 anni fa #245991

Una piccola modifica della strategia non consiste nel riallenare la strategia su questi dati OOS, in quanto dovrebbero essere ancora considerati non visti dal set di dati di addestramento originale.

Qualsiasi modifica è in qualche modo una forma di adattamento, se si utilizza l'OOS per le modifiche, allora per definizione è considerata vista e per definizione non è più considerata OOS. Da quanto ho capito, è meno probabile che piccole modifiche facciano male e più probabile che aiutino, ma l'intera idea del percorso è quella di provare a verificare quanto la parte di ottimizzazione/tweaking stia aiutando o danneggiando. Potreste utilizzare un numero leggermente inferiore di dati o ottenerne di più e procedere invece con una camminata in avanti per "piccole modifiche". Nel vostro esempio di utilizzo dell'"intero campione di dati", qual è la differenza tra queste tre cose?
- "piccole modifiche" su 16 anni di dati completi
-Ottenere prima più dati e poi utilizzare 16 anni su 25 per l'IS e fare un passo avanti sul resto con "piccoli aggiustamenti".
-Utilizzando 14 anni su 16 e facendo un passo avanti con una "piccola modifica" sui restanti 2 anni OOS? (potrebbe essere meglio di niente e darvi fiducia nella vostra fase di "piccoli ritocchi").

Ad esempio, non è possibile confrontare i risultati di una strategia su EUR/USD e USD/JPY, poiché si muovono in modo opposto l'uno all'altro. Si dovrebbe fare qualcosa come confrontare una strategia su EUR/USD con GBP/USD e, se si testa USD/JPY, confrontarla con EUR/JPY e così via.

Se la vostra strategia è simmetrica, potete ovviamente confrontare i risultati di EURUSD con quelli di USDJPY. Se la strategia non è simmetrica, la tua affermazione ha senso. Credo che per contestualizzare il discorso sui test di mercato incrociati, sia utile specificare il time frame e anche se stiamo parlando di strategie simmetriche o meno. Per esempio, trovo che i time-frame più grandi (H4 / D1) siano migliori come strategie simmetriche e cross market, mentre i time-frame più piccoli sono migliori come asimmetrici e sembrano più specializzati per una singola coppia. Trovo inoltre che ORO, USDJPY, EURUSD e GBPUSD siano un solido insieme di test incrociati per le strategie simmetriche a time frame più grandi. Ma un buon set di dati per una strategia asimmetrica con un time frame più piccolo, come EURUSD, EURJPY e GBPUSD, sembra il migliore per una strategia EURUSD. (Un ulteriore xxxUSD e un ulteriore EURxxx) In realtà ho fatto una richiesta di funzionalità per poter "invertire" il cross in modo da avere un set di controlli incrociati come USDJPY, EURJPY, USDGBP come set logico di cross per una strategia asimmetrica su USDJPY. Me ne sono dimenticato fino ad ora. (https://roadmap.strategyquant.com/tasks/sq4_3319)

 

 

 

 

 

Che tutti i vostri abiti siano sciolti.


https://www.darwinex.com/darwin/SUG.4.2/

0

kainc301

Cliente, bbp_partecipante, comunità, 54 risposte.

Visita il profilo

4 anni fa #246884

 

 

0

kainc301

Cliente, bbp_partecipante, comunità, 54 risposte.

Visita il profilo

4 anni fa #246888

che differenza c'è tra queste tre cose: - "piccoli aggiustamenti" su 16 anni di tutti i vostri dati - ottenere prima più dati e poi usare 16 anni su 25 per IS e fare un walk forward sul resto con "piccoli aggiustamenti" - usare 14 anni su 16 e fare un walk forward con "piccoli aggiustamenti" sui restanti 2 anni OOS? (potrebbe essere meglio di niente e darvi fiducia nella vostra fase di "piccoli ritocchi").

Beh, WFO esegue test per ottimizzare le strategie più volte. Io non lo faccio. Quindi la differenza è che l'esecuzione di questo test non mi fornisce i dati finali che desidero quando si tratta di rendere una strategia pronta per la produzione, poiché non intendo ottimizzarla più di una volta.

Se la vostra strategia è simmetrica, potete ovviamente confrontare i risultati di EURUSD con quelli di USDJPY. Se la strategia non è simmetrica, la sua affermazione ha senso. Credo che per contestualizzare il discorso sui test cross market sia utile specificare l'orizzonte temporale e se si tratta di strategie asimmetriche o meno.

Ero solito giurare sulle strategie simmetriche finché i dati non mi hanno dimostrato il contrario. Ora utilizzo solo strategie short-only e long-only per un determinato mercato. Eseguo una formazione unilaterale per lato e per mercato. Il risultato finale è costituito da due strategie diverse che operano in una sola direzione con regole completamente diverse. Alcuni, come te, giurano sulla simmetria. A ciascuno il suo. Per quanto riguarda il TF, non ha importanza, purché non sia pari o inferiore a 5m. Se qualcuno è riuscito a far funzionare strategie di 5m o inferiori nel trading live, gli rendo omaggio.

0

bentra

Cliente, bbp_partecipante, comunità, sq-ultimate, 22 risposte.

Visita il profilo

4 anni fa #247232

finché i dati non mi hanno dimostrato il contrario. Ora utilizzo solo strategie short-only e long-only.

Non c'è da sorprendersi se si considera che la simmetria è ancora difettosa in SQX.

Da tutte le mie attività recenti, capisco che pensiate che io ami la simmetria, ma in realtà la maggior parte delle mie strategie live non lo sono.

Che tutti i vostri abiti siano sciolti.


https://www.darwinex.com/darwin/SUG.4.2/

0

Stai visualizzando 7 risposte - da 1 a 7 (di 7 totali)