Ottimizzazione e test fuori campione.

 

Buon pomeriggio a tutti.

Dopo aver ottimizzato un EA, spesso dobbiamo nerdare fuori campione più di una dozzina di set di parametri suggeriti dall'ottimizzatore.

Ho un'idea per ottimizzare gli Expert Advisors al di fuori del campione. Supponiamo di aver "caricato" l'Expert Advisor con l'ottimizzazione per un certo numero di parametri. Per esempio, fissiamo una data dal 1° gennaio 2006 al 1° gennaio 2007. 2006 fino al 1° gennaio 2007.

Abbiamo ricevuto diverse migliaia di Expert Advisors. Dopo di che, salviamo la pagina con iRISULTATI DELL'OTTIMIZZAZIONE come un file separato. Poi, impostiamo il seguente periodo storico per l'ottimizzazione, cioè aggiungiamo un mese o due, o quanti ne abbiamo bisogno.

Nel nostro caso, abbiamo impostato per esempio dal 1 gennaio. 2007 al 1° giugno 2007. E di nuovo abilitiamo l'ottimizzazione. L'ottimizzatore non deve prendere i parametri in EXPERT'S PROPERTIES, ma riselezionarli uno per uno dal file che abbiamo salvato dopo la prima ottimizzazione. Dopo questa seconda ottimizzazione, ci rimangono solo i vArien che hanno dato profitti al di fuori del campione!

Il risultato, idealmente, è che otteniamo i "parametri ideali" con cui lavorare e testare online in seguito!

Penso che questa sarà un'utile aggiunta al tester di mt4. Probabilmente, e molto probabilmente, è già implementato da qualcuno da qualche parte. Se qualcuno lo sa, per favore condivida il link!

Io, a causa delle mie modeste conoscenze, non riesco a capire come attuare l'idea nella pratica.

 
leonid553, stai andando nella direzione giusta, dato che l'attuale "ottimizzazione" senza test su dati fuori campione è puro adattamento della curva. Ma l'algoritmo di base dovrebbe essere più complesso, come nei programmi di rete neurale. Tutte le "ottimizzazioni" dovrebbero andare su tutti i set di dati in una volta sola (questo è il desiderio degli sviluppatori). Si può, naturalmente, lavorare con solo due set di dati, ma è meglio prevederne tre - allenamento (A), convalida (B) e test (C). Beh, nelle condizioni attuali, dovrete lavorare più o meno come suggerite voi.
 
È possibile per l'esperto specificare un file con parametri, che sarà poi utilizzato nell'ottimizzazione. Oppure può essere più semplice, ottimizzare su un intervallo di tempo, poi su un altro, salvare tutto in excel e confrontare :-)
 
dimontus:
Oppure potrebbe essere più semplice, ottimizzare su un intervallo di tempo, poi su un altro, salvare tutto in excel e confrontare :-)
No, dimontus, non funziona così. Due diversi adattamenti di curve su dati diversi non servono a nulla.
 
Quindi se sono uguali, cioè gli stessi parametri su intervalli di tempo diversi danno risultati simili, non è quello che vuole l'autore del thread?
 
Che senso ha fare un curve fit sul secondo se puoi semplicemente setacciare i set di ottimizzazione promettenti sul primo attraverso il secondo?
 
Cosa vuoi dire?
 
Ho provato la seguente variante:
Provo l'Expert Advisor su tutto il periodo disponibile, seleziono il segmento con il peggior payoff atteso (dip sul grafico) e lo ottimizzo, questo peggior intervallo
Setaccio (per quanto possibile) gli estremi locali a mano
E poi il lavoro di routine consiste nell'inserire i dati di ottimizzazione dell'intervallo peggiore nell'ottimizzatore ed eseguire l'Expert Advisor con questi dati su tutto l'intervallo disponibile
da quello che ottengo, seleziono la carne...:-)
 

Alla luce di quanto sopra, vedo il seguente modo:

Per costruire un semplice Expert Advisor aggiuntivo, - e caricare tutti i set di parametri ottenuti in esso dopo la prima ottimizzazione.

Ogni set avrà il suo indice. E poi inseriamo semplicemente questo EA aggiuntivo nel tester al posto del primo e lo ottimizziamo oltre il campione, e il parametro di ottimizzazione sarà il NUMERO LOCALE di set inseriti!

Può essere un po' complicato, ma è molto meglio dell'ottimizzazione manuale out-of-sample ...

L'unica cosa di cui abbiamo bisogno è considerare la versatilità di questo add-on.

 
Ha senso, leonid553. Quando l'avete fatto, lasciatelo in Code Base o qui, se non vi dispiace. Sono sicuro che molte persone lo vogliono già... È da molto tempo che ci penso, ma non riesco a metterci le mani sopra. Solo con i parametri di ottimizzazione su out-of-sample ho bisogno di pensarci, perché devo in qualche modo tenere conto dei risultati dei test sul primo set di dati.
 
leonid553:

Alla luce di quanto sopra, vedo il seguente modo:

Per costruire un semplice Expert Advisor aggiuntivo, - e caricare tutti i set di parametri ottenuti in esso dopo la prima ottimizzazione.

Ogni set avrà il suo indice. E poi inseriamo semplicemente questo EA aggiuntivo nel tester al posto del primo e lo ottimizziamo oltre il campione, e il parametro di ottimizzazione sarà il NUMERO LOCALE di set inseriti!

Può essere un po' complicato, ma è molto meglio dell'ottimizzazione manuale out-of-sample ...

L'unica cosa di cui abbiamo bisogno è considerare la versatilità di questo add-on.

Non credo che sarà così facile, per ogni parametro ottimizzato saranno identificati diversi estremi in relazione ad altri parametri. Potrebbe essere possibile trovare una soluzione se questi estremi sono alimentati all'ingresso della rete neurale.