Gamma di ottimizzazione

 

Ciao a tutti!

Vorrei fare una domanda sull'intervallo di dati utilizzato per ottimizzare gli EA. Cioè su quali timeframes quali intervalli scegliere. Ad esempio, per H1, è sufficiente ottimizzare un EA su un mese, tre mesi o un anno di dati? Mi piacerebbe vedere questi valori per diversi orizzonti temporali e almeno una breve giustificazione della scelta. Grazie mille.

 
Questo è un problema che si presenta abbastanza spesso. L'ottimizzazione è intrinsecamente controversa - ha i suoi oppositori così come i suoi sostenitori. È una questione puramente individuale, e dipende in gran parte dalle peculiarità del sistema di trading e dal comportamento del mercato. Inoltre, dipende dalla natura dei parametri ottimizzati.
 
ITeXPert >> :


Vorrei fare una domanda sull'intervallo di dati utilizzato per ottimizzare gli EA. Cioè su quali timeframes quali intervalli scegliere. Ad esempio, per H1, è sufficiente ottimizzare l'Expert Advisor su dati mensili, triennali e annuali? Mi piacerebbe vedere questi valori per diversi periodi di tempo e almeno una breve giustificazione della scelta.

Grande libro su test e ottimizzazione
 

Non ci sono criteri chiari, ognuno ha un'opinione. Cercherò di darvi la mia opinione.

L'ottimizzazione su tutto il periodo della storia è un puro autoinganno. Ecco perché l'intervallo di ottimizzazione deve essere almeno la metà del periodo di prova. Tuttavia, più piccola è la porzione del periodo di test utilizzata per l'ottimizzazione, meglio è. Dopo aver selezionato i parametri nella sezione di ottimizzazione, esegui il test sull'intero intervallo che hai selezionato come periodo di test. Si può iniziare a "credere" ai risultati ottenuti, se il campione ammonta ad almeno 100 trade. Ma anche questo non è sufficiente per molte persone. È chiaro che una quantità maggiore di accordi dà un'idea più precisa del sistema. Per esempio, posso "credere" in un campione di almeno 200 affari. 1000 scambi è ottimale, ma non c'è limite alla perfezione...

 

Questo tema è trattato molto bene da Jezev e Shumsky. Ecco cosa si può dire riassumendo ciò che hanno fatto:

Il compito della teoria dell'apprendimento non è quello di minimizzare l'errore di apprendimento, ma di minimizzare l'errore di generalizzazione definito per tutti i possibili esempi futuri. È così che una ST ottimizzata avrà il massimo potere predittivo. E la difficoltà qui è che è e solo l'errore di apprendimento che è effettivamente osservabile. L'errore di generalizzazione può essere solo stimato, sulla base di alcune considerazioni. L'erroredelle previsioni del tester sui nuovi dati è determinato dalla lunghezza totale della descrizione del modello dei dati, insieme alla descrizione del modello stesso .

Errore di approssimazione

Poiché il numero di decisioni prese dal TC, come regola, è molto più piccolo del numero di parametri regolati in esso, in questo caso l' errore medio di approssimazione sarà espresso attraverso il numero totale di parametri di adattamento w come segue Eapprox= d/w, dove d è il numero di parametri di input che il TS analizza. Nella stragrande maggioranza dei casi d=w è soddisfatta (tutti i parametri di adattamento sono concentrati all'ingresso TC).

Il problema principale degli algoritmi di apprendimento è noto come il problema dell'over-learning o dell'adattamento alla storia.L'essenza di questo problema si spiega meglio con un esempio concreto. Supponiamo che gli esempi di allenamento siano generati da una funzione che vogliamo riprodurre. Nella teoria dell'apprendimento, questa funzione è chiamata insegnante. Dato un numero finito di esempi di formazione, è sempre possibile costruire la prova con un errore di apprendimento nullo, cioè con l'errore definito sull'insieme degli esempi di formazione. Per fare questo, bisogna prendere un TS con il numero di parametri di adattamento maggiore del numero di esempi. Infatti, per riprodurre ogni esempio abbiamo P equazioni per W incognite.E se il numero di incognite è inferiore al numero di equazioni, un tale sistema è sottodeterminato e ammette un numero infinito di soluzioni. Questo è il problema principale: non abbiamo abbastanza informazioni per scegliere l'unica soluzione corretta - la funzione insegnante. Di conseguenza, la funzione selezionata casualmente produce previsioni scadenti su nuovi esempi che non erano presenti nel campione di allenamento, anche se Tester ha riprodotto quest'ultimo sulla storia senza errori. Invece di generalizzare gli esempi conosciuti, li ha memorizzati. Questo effetto è chiamato overlearning.

Errore legato alla complessità del modello.

La descrizione di un modello si riduce fondamentalmente al passaggio dei valori dei suoi parametri sub-regolati. Per una data precisione, una tale descrizione richiederà circa W bit. Di conseguenza, l'errore specifico per esempio legato alla complessità del modello può essere stimato come segue: Ecomplex=W/P. Come vediamo, diminuisce monotonicamente con l'aumentare del numero di esempi (lunghezza della storia nell'allenamento).

Infatti, per determinare senza ambiguità i parametri di adattamento di da P esempi dati, è necessario che il sistema di P di equazioni deveessere sovradeterminato, cioè il numero di parametri W deve essere maggiore del numero di equazioni. Più grande è il grado di sovradeterminazione, meno il risultato dell'apprendimento dipende dalla scelta particolare di un sottoinsieme di esempi di allenamento. La componente di errore di generalizzazione definita sopra è precisamente legata alle variazioni di soluzione dovute alla finitezza del numero di esempi.

Quindi, abbiamo stimato entrambe le componenti dell'errore di generalizzazione del tester di strategia: E=Eapprox+ Ecomplex=d/W+W/P>SQRT(d/P).È importante notare che queste componenti dipendono in modo diverso dal numero di parametri di adattamento W, il che implica che la dimensione ottimale che minimizza l'errore complessivo può essere scelta. L'errore minimo (segno di uguaglianza) è raggiunto alla lunghezza ottimale dei dati storici che partecipano all'ottimizzazione della strategia: P=k*W^2/d=k*W, dove la costante k è circa uguale a 4.

Così, il minimo errore di previsione di un Expert Advisor nel test forward ottimizzato nel tester di strategia su dati storici sarà raggiunto se la lunghezza dei dati storici è quattro volte maggiore del numero di parametri di adattamento nel tester di strategia.

Se ottimizziamo 5 parametri nel tester (per esempio, Mach periods), allora la lunghezza ottimale della storia dovrebbe essere tale che il tester utilizzerebbe 4*5=20 transazioni su di essa. Può richiedere da 1 a ...200 giorni di storia, tutto dipende dalla strategia adottata. La riduzione di questo numero porterà ad adattare il tester alla storia, e l'aumento - al deterioramento della qualità dell'approssimazione e, di conseguenza, al deterioramento della precisione della previsione.

 
essere semplice, rivelerò un piccolo segreto da quali considerazioni scegliere la lunghezza dell'ottimizzazione del sito, che cosa è l'ottimizzazione ?????? sì è trimming, e niente di più, così faccio trimming in questo modo, prendo l'ultimo grafico annuale su H1 (se questo è il timeframe principale per il TS), poi, hanno identificato 2 sezioni di spessore, uno di loro baia, un altro-vendita, e su ciascuna di queste sezioni fare una merda fit sootv. per i baiy e le vendite - ottengo 2 set di valori di aggiustamento, e in futuro includo solo un set che è stato filtrato da qualche strumento su un timeframe superiore, in questo esempio filtro D1, modestamente-150% all'anno, ma abbastanza per la razione di pane! :-о)

 
будьте проще, открою маленький секрет

Ci sono molti modi di conoscere questo mondo.

Alcuni lo conoscono attraverso l'Amore. Alcuni attraverso la meditazione, ecc. Ho dato un modo di stimare il valore dell'interesse attraverso la logica e la matematica. Quindi il tuo segreto non è affatto un segreto, è solo un'altra sfaccettatura...

P.S. Quello di cui ho parlato sopra è solo un atto di ottimizzazione dei parametri. Per valutare le prestazioni di un EA ottimizzato, un punto non è sufficiente, è necessario raccogliere statistiche, mentre il risultato statisticamente significativo inizia con un centinaio di corse su dati indipendenti con sovraottimizzazione ad ogni passaggio ...

Quindi, la ricetta per un'ottimizzazione adeguata nel tester non sarà semplice.

 

Grazie mille a tutti, specialmente a Neutron per la descrizione dettagliata. Recentemente ho trovato un'idea molto interessante sul forum e sto lavorando per implementarla nel codice. L'ho testato sulla demo e ho ottenuto un buon risultato, circa il 150% dopo 3 giorni, ma ci sono alcune sottigliezze... Per non creare un nuovo argomento chiederò qui:

Quando definisco un punto di entrata ho bisogno di scoprire se un ordine è già aperto nella stessa direzione ad una distanza di n pip. Il seguente codice non funziona ma non riesco a capire perché:

bool buy=true;

for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderOpenPrice()<=Bid && Bid-OrderOpenPrice()<50*Point) buy=false;
}
if (buy) OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0, "MyAdvisor",0,0,Blue);

Di conseguenza, quando eseguo un EA con 10 possibili lotti aperti, li apre tutti da un punto. Voglio che apra un ordine e apra il successivo solo se la differenza tra il prezzo corrente e il prezzo dell'ordine aperto corrente è più di 50 pips

 

al neutrone

Questi due tipi di errori si applicano a qualsiasi TC o solo alle reti neurali?

 
budimir Selezionate le sezioni di tendenza per definire i parametri? Scarti il cambio di direzione e le sezioni di tendenza laterale?
 
khorosh >> :
budimir Hai scelto per la definizione dei parametri le aree di tendenza? Scegliete le linee di tendenza e le linee di tendenza laterali?

Seleziono le sezioni di tendenza più vivaci, e la sezione di raccordo risulta solo 20-30 affari, mentre il campione sulla sezione di raccordo dovrebbe essere almeno 100-1000 affari per

affidabilità materna - tutto questo è una sciocchezza, beh, diciamo che hai preso un plot di fitting, direttamente adiacente al futuro, identificato la fase del mercato - una tendenza o è una tendenza laterale o un cambiamento di direzione, e poi? Il mercato NON è fermo, e non sappiamo dove andrà in futuro!


a ITeXPert > non prendere in giro l'ordine del 150% in 3 giorni.

e nel mio TS è possibile ottenere più di una dozzina di tali lotti in 3 giorni con il 150% ! :о)