I risultati dell'ottimizzazione differiscono dai singoli test su di essi

 

Ottimizzo l'EA. Poi eseguo un singolo test basato sui risultati. I risultati dell'ottimizzazione e delle prove singole non sempre coincidono.

Sequenza di azioni:
1. Seleziono una coppia (per esempio AudUsd) nell'ottimizzatore e imposto il periodo 2010.08.23 - 2010.10.30. L'Expert Advisor nella lista e il timeframe H1 sono già selezionati - ora provo solo un Expert Advisor.
2. Inserisco intervalli di ottimizzazione dei parametri.
3. Apro la cronologia dei minuti di AudUsd facendo doppio clic sull'archivio delle quote. Fare clic su Download. Dopo il download, apro l'orologio e clicco di nuovo su Download. Dice: "Ricalcolerà tutti i timeframe? Io rispondo di sì.
4. Ottimizzo 4 o 5 parametri e aspetto qualche ora. Vorrei vedere i risultati dell'ottimizzazione in "AudUsd_1_optim.txt" allegato all'archivio.
5. Ho selezionato la linea adatta a me in "Risultati dell'ottimizzazione" (nel mio esempio è la numero 2183 nel file "AudUsd_1_optim.txt") e ho fatto doppio clic sui suoi parametri nel tester. Non cambio e non tocco nient'altro.
6. Inizio il singolo test. Guardo la scheda Report e vedo un profitto e un drawdown completamente diversi (201,78/-116,28), non corrispondenti ai risultati di ottimizzazione (162,36/-34,25) per questa combinazione di parametri. C'è un errore di mismatch del volume nei log, ma la mia strategia non usa i volumi in alcun modo, quindi penso che questo errore non sia critico e non può influenzare i risultati così tanto. Anche il numero di scambi e tutto il resto è diverso. La lista degli ordini di questo test è disponibile nel file "AudUsd_2_Orders.txt" e il log può essere trovato in "AudUsd_2.log".
7. Sono molto sorpreso. Anche se mi ci sto lentamente abituando.
8. Ripeto il passo 3.
9. Ricomincio il test singolo usando gli stessi parametri. Ora ottengo profitto e drawdown che coincidono con l'ottimizzazione. La lista degli ordini di questo test è contenuta in "AudUsd_1_Orders.txt" e il log è in "AudUsd_1.log".

È così da più di due mesi (ottimizzo ogni settimana). Questo glitch è periodico e non ha rivelato alcun modello chiaro. Non dipende dal tempo di inizio dell'ottimizzazione e da una coppia. A volte l'ottimizzazione e i risultati dei prossimi test separati coincidono, ma a volte no.
Francamente parlando, sono già stanco di tutto questo. Tutta la notte sta contando e ottimizzando qualcosa. E poi devo riottimizzare di nuovo perché non riesco a capire di quali risultati mi devo fidare. Inoltre, non sono sicuro che anche una coincidenza sia capitata per essere una variante corretta e non un glitch del lavoro del tester.

Voglio dirvi subito che ho cercato e letto argomenti simili sui forum. Ho cercato e letto sia sul forum Alpari che qui. E anche in Yandex. Ho cercato di trovare informazioni per alcune settimane. Ma tutto quello che ho trovato sono le parole degli sviluppatori sulla "diffusione fluttuante" da cui dipendono i risultati dei test. E consigli di testare le strategie nei fine settimana (è esattamente quello che faccio io - non funziona). Anche se, a mio avviso, non sembra altro che una scusa per non voler risolvere in qualche modo questo problema. Dopo tutto, per chiudere il tema dello "spread fluttuante" è sufficiente aggiungere il campo "Spread" nei parametri dell'ottimizzatore riempito dagli utenti a loro discrezione, e si può già effettuare un'adeguata ottimizzazione e comparazione delle strategie in base ai parametri. Non vedo alcun senso nel memorizzare l'ultimo spread di mercato per scopi di ottimizzazione.

Ho l'ultima versione di Metatrader scaricata dal sito di Alpari - 4.00.226. Esattamente lo stesso problema è stato osservato su altri due computer, con la stessa versione, ma installati in tempi diversi a pochi mesi di distanza. Le impostazioni e il punteggio sono gli stessi del primo MT.
Faccio solo test e ottimizzazione su un conto demo su Alpari. Non ho collegato nessun altro account. Il server Alpari-Demo è nelle impostazioni - Alpari NZ Limited. Neanche io ho toccato il server. Non ho cambiato le citazioni manualmente, non ho aggiunto le mie. Metatrader è sempre online (ho sempre Internet sul mio computer). Eseguo l'ottimizzazione il sabato e la domenica. Lo spread, in teoria, in quei giorni non dovrebbe cambiare e il glitch con "l'ultimo spread" probabilmente non ha nulla a che fare con esso. I registri allegati sono di sabato 30 ottobre.
Il periodo di prova è sempre dichiarato esplicitamente.

Le domande sono:
1. Come può accadere? Qual è la ragione?
2. Se questo è un problema tecnico dei tester, quando lo risolverete? E cosa devo fare per far combaciare tutto ora, in questa versione?
3. Se è colpa mia, cosa sto sbagliando e come devo fare?

Sono pronto a fornire il codice reale completo dell'Expert Advisor (comunque è solo una versione molto troncata per l'ottimizzazione) e un set di parametri di test allo sviluppatore di Metatrader nel suo messaggio personale.

File:
audusd.zip  116 kb
 

Ecco un altro esempio. Ho appena iniziato a rivedere l'ottimizzazione notturna per UsdJpy. Subito dopo l'ottimizzazione senza cambiare le virgolette e senza toccarle ho fatto doppio clic sui valori dei parametri selezionati dal risultato 2631 (profitto 117,07 e drawdown 34,86) nel tester e ho eseguito un singolo test utilizzando questi parametri. Ho ottenuto un profitto di -3925 e un drawdown di -4049.04. Differenza notevole...
Il rapporto parla di circa 51 discrepanze tra i grafici. Ci sono 51 voci nel registro su di esso. Ma tutte le voci si riferiscono solo ai volumi, e non li uso da nessuna parte, nemmeno negli indicatori (non uso indicatori).
Il periodo di ottimizzazione e di test è lo stesso del mio primo post. Sequenza di azioni - la stessa, ma con l'aggiunta del tester di controllo eseguito dopo p.3 per verificare l'assenza di errori di corrispondenza. Tutte le altre condizioni sono le stesse. L'ottimizzazione è stata eseguita di notte da sabato a domenica - il mercato, e quindi lo spread dovrebbe essere congelato.

Ero di nuovo sorpreso. Ho aperto il "Quote Archive", ho premuto Upload su questa coppia e ho permesso di ricalcolare tutti i timeframe.
Faccio di nuovo doppio clic per inserire i parametri nel tester dai risultati dell'ottimizzazione e inizio i test. I risultati sono ora gli stessi dell'ottimizzazione. Non ci sono errori di mismatch nel rapporto e nel log.

Sto aggiungendo domande (continuo a numerarle):
4. Dove sono apparse le discrepanze dopo l'ottimizzazione (e forse durante) se prima dell'ottimizzazione ho fatto appositamente una prova e mi sono assicurato che dopo aver caricato la coppia in "Quotes Archive" (tra il punto 3 e il punto 4 nel mio messaggio precedente) non ci fossero discrepanze?
5. Come posso assicurarmi che tutti i risultati dell'ottimizzazione siano ottenuti su citazioni corrette e che non ci sia stato un errore nel processo di ottimizzazione?
6. Come fanno gli errori di volume ad avere un impatto così critico sui risultati dei test che non usano volumi?

Z.I. Ho l'antivirus installato e funzionante. Ma sia l'eseguibile di Metatrader che la sua intera cartella con tutte le sottocartelle e i file sono in eccezioni. L'altro mio computer non ha alcun antivirus, ma questi inconvenienti sono presenti. Significa che escludiamo l'antivirus. Stesso problema su tre computer diversi. Escludiamo i problemi del disco e dell'hardware e la possibile influenza dei programmi circostanti. C'è qualcosa che non va in Metatrader, fa qualcosa di sbagliato con le quotazioni.

Ho visto gli stessi problemi con l'ottimizzazione in altre strategie fondamentalmente diverse. Quindi, in sostanza, non dipende dal mio Expert Advisor. È solo che prima non era così importante per me e non lo stavo testando abbastanza. Ora sto facendo decine di ottimizzazioni alla settimana, e ne farò ancora di più. E stiamo già parlando di soldi veri. Per favore, consigliatemi le azioni corrette o modificate il tester e l'ottimizzatore. Grazie!

L'archivio contiene i seguenti file:
UsdJpy_1_optim.txt - risultati dell'ottimizzazione
UsdJpy_1_Orders.txt - lista degli ordini (risultati) di una singola esecuzione coincidente con l'ottimizzazione
UsdJpy_1.log - log di questo test
UsdJpy_1.htm - rapporto su di esso
UsdJpy_2_Orders.txt - lista di ordini (risultati) di una singola esecuzione con una perdita enorme (con mismatch)
UsdJpy_2.log - registro di questo test
UsdJpy_2.htm - rapporto su di esso

File:
usdjpy.zip  179 kb
 

Ora è ancora più interessante. Questo è sul terzo computer e su una coppia diversa. Faccio tutto secondo lo schema del mio primo post. Dopo diverse ore di ottimizzazione, controllo i risultati. Incollo il set di parametri selezionato con un doppio clic (senza toccare o cambiare altro) e ottengo risultati assolutamente diversi rispetto alla stringa di ottimizzazione con gli stessi parametri. Controllo la mancata corrispondenza delle citazioni. Anche se ho scaricato e ricalcolato le citazioni in "Archivio" prima dell'ottimizzazione. Ok, penso che forse il ricalcolo delle quote aiuterà. Lancio "Ricalcola tutti i timeframe" e lo provo di nuovo. Le discrepanze sono scomparse. Ma ora ho calcolato una terza variante dei risultati che non coincide in alcun modo con le prime due. *smiley_con_great_eyes*

Qualche altro tentativo di ricalcolare le citazioni nell'Archivio e di fare dei test. Tutti i risultati ora corrispondono all'ultima, terza opzione. Urrà, abbiamo trovato la variante giusta! Ma mezza giornata di lavoro sull'ottimizzazione è stata sprecata e i risultati dell'ottimizzazione sono ovviamente errati. Cioè, devo reinstallare l'ottimizzazione di notte e avere il tempo di alzarmi presto la mattina per scegliere i parametri adatti per la prossima settimana. Inoltre, non si può essere sicuri che siano corretti.

Ho notato alcuni dettagli in più. In primo luogo, il numero di "Bars in History" differisce nei rapporti dei tester per le diverse varianti. In secondo luogo, anche con la stessa quantità di barre nella storia, i risultati possono essere diversi. In terzo luogo, il mio Expert Advisor lavora su candele orarie e apre i primi ordini della serie rigorosamente a una certa ora e 00 minuti, cioè a una candela aperta. Ma questi ordini si aprono a prezzi diversi in risultati diversi. Questo può essere visto nei rapporti che ho allegato nei miei primi post, quindi non scriverò altri log per il momento. Se avete bisogno di qualcos'altro, lo posterò.

Sono l'unico che ha questo problema con il tester?

 

E altre domande sull'"Archivio delle citazioni", visto che l'argomento della loro conversione è stato toccato. Puoi dirmi dove leggerlo in dettaglio o rispondere alle mie domande qui.

Faccio tutte le azioni il sabato-domenica, cioè l'archivio delle citazioni non dovrebbe essere cambiato.

Apro una coppia con una finestra del grafico non aperta durante l'ultima settimana, cioè capisco che le quotazioni di questa settimana non sono state scaricate nell'archivio locale. Premo Download. Il monitor del traffico installato su questo computer mostra le richieste MT al server e i blocchi di dati restituiti dal server. Tutto è corretto. Dopo il download, clicco di nuovo su Download. Ma qui ho due opzioni: o continuo a contare tutti gli intervalli di tempo (che è logico quando il download è completato completamente) o scarico di nuovo qualcosa (e il traffic monitor lo conferma) - non è chiaro perché non si è scaricato all'inizio. E se lo si preme alcune volte, il download dal server può avvenire dopo il ricalcolo, il che non è affatto logico e comprensibile. Se già scaricato, ricalcolato, cos'altro viene scaricato? Non chiudo l'archivio tra i download, non cambio la coppia.

A volte, succede che dopo aver aperto l'archivio premendo il pulsante Download alcune volte di seguito (5 o più), scarica ancora qualcosa dal server e non suggerisce di ricalcolare tutti i timeframes, non importa se l'archivio con la coppia è stato scaricato prima (all'apertura dell'archivio precedente) e se è stato ricalcolato allora. È come se non tutto fosse stato caricato la prima volta, e ora ogni volta che si clicca, la roba mancante viene tirata su a pezzi, ma non tutta in una volta. Potete vedere nel monitor che non sono solo richieste al server, ma anche blocchi di dati restituiti da esso. Perché e cosa non si è caricato la prima volta? Quante volte dobbiamo davvero premere il pulsante Upload per essere sicuri che tutte le citazioni di una coppia siano scaricate?

Se chiudo l'Archivio, lo riapro e poi clicco su Reload, non carica le quotazioni la prima o la seconda volta, ma offre il ricalcolo. La sequenza logica di lavoro viene ripristinata. E perché succede? Come lo capite? Forse dopo ogni download dovrei chiudere l'archivio, riaprirlo e poi fare il ricalcolo? Per favore, spiega.

Si può fare in modo che quando si clicca per caricare, gli archivi locali siano controllati e tutti i file necessari siano caricati in un colpo solo, e poi tutti i tempi siano ricalcolati automaticamente? E si può costruire il pulsante "Validate" nell'archivio, che mostrerà tutti i vuoti nella storia, le incongruenze e simili? E poi, alla conferma dell'utente, tutto verrebbe automaticamente estratto dal server e riparato. Vorrei usare la versione MT4, dato che la migrazione alla versione 5 andrà avanti per molto tempo, e la versione 4 è molto popolare e richiesta. E i soldi che dobbiamo fare ora, sul 4.

Ancora una volta, MT è collegato ai server demo di Alpari dall'installazione e non sono mai cambiati. Ci sono solo due cartelle nella cartella della cronologia del programma: Alpari-Demo e downloads. Le impostazioni del numero di barre nella storia e nella finestra del grafico non sono state cambiate e rimangono predefinite anche dall'installazione di MT sul computer. Ma i risultati della pressione del pulsante Download sono inaspettatamente diversi. Cosa succede realmente nell'Archivio e perché è così imprevedibile?

 
Mi dispiace, c'è qualcosa di spaventoso lì
 

C'è una discussione parallela su questo argomento sul forum di Alpari http://forum.alpari.ru/thread58122.html

Nessuno qui ha delle risposte o anche solo delle domande? E anche gli sviluppatori?

 

1. È necessario rimuovere gli errori di disallineamento del grafico. Cancellare tutta la storia delle citazioni, caricarne una nuova.
2. Se il broker ha uno spread fluttuante, allora è necessario ottimizzare e testare su uno spread. Preferibilmente su un tipico.
3. Avvia una notte o una notte su un conto demo dell'Expert Advisor e confronta i risultati della demo e del tester. Se gli ordini coincidono approssimativamente e il numero di ordini non è significativamente diverso, allora ci si può fidare del tester. Se il trade non corrisponde al tester, non si dovrebbe ottimizzare nel tester.

Sarebbe bello vedere almeno il rapporto di un tester.

 

Per dimeon:

1. Testato su tre diversi computer, tre diverse istanze di MT4. I sintomi sono gli stessi. Dopo aver caricato le citazioni nell'"Archivio" lo controllo eseguendo il tester - non ci sono discrepanze per il periodo richiesto. Poi lancio l'ottimizzazione per lo stesso periodo. E poi faccio dei test di ottimizzazione. Ecco dove potrebbero verificarsi le discrepanze. Cioè, appaiono dopo che l'intera storia è stata scaricata e ricalcolata dall'Archivio, dopo (o durante) l'ottimizzazione. Cancellare la cronologia è improbabile che faccia qualcosa in questo caso.

2. Alpari ha uno spread fluttuante. Sono d'accordo con te, devi testarlo in condizioni di mercato uguali. Ma come testarlo su uno spread selezionato, dove specificarlo? Non sono riuscito a trovarlo in MT4.

Questa è una buona idea. Probabilmente lo proverò. Solo che dovrò prendere almeno qualche giorno. Ma non risolve ancora la questione principale: perché questi problemi con le citazioni?

I rapporti dei tester sono negli archivi nei miei post sopra. Anche per due coppie diverse in giorni diversi. Negli stessi post c'è una descrizione dei file degli archivi. Date un'occhiata.

 

Scarica la cronologia, ricalcola i tempi. Disconnettiti da internet e prova.

Questo tipo di schifezza di solito indica che l'EA è estremamente affilato. Le zecche non vengono scaricate, vengono emulate. E se si apre sul mercato, il minimo cambiamento della storia porta a questa assurdità.

Un risultato simile può essere ottenuto in questo modo:

Il computer è stato collegato a Internet per molto tempo e il grafico è aperto su H1.

Spegniamo Internet e cominciamo a testare. L'Expert Advisor ci scrive che scarica la storia di M5, M1 e questo quando Internet è disconnesso. Quindi, ci sono molte insidie. Sappiamo anche che tipo di storia scarica quando è collegato a Internet.

 
Grazie, Mislaid. Questo è esattamente ciò che cercherò di fare nelle prossime ottimizzazioni. Mi è stato anche detto di questo algoritmo sul forum di Alpari oggi. Anche se, francamente, o non capisco la logica del programma o gli sviluppatori hanno qualche strano atteggiamento verso la parte più importante dell'ottimizzatore - l'archivio delle citazioni. Quindi, voglio ancora sentire i chiarimenti degli sviluppatori su questo argomento e le risposte alle domande. E quale storia MT scarica da Internet? Non ne so nulla. Spiega, per favore, o dammi un link dove leggere.
 
ReasonMan:
Grazie Mislaid. Questo è esattamente ciò che cercherò di fare con le prossime ottimizzazioni. Mi è stato anche detto di un tale algoritmo sul forum di Alpari oggi. Lo proverò... Anche se, francamente, o non capisco la logica del programma o gli sviluppatori hanno qualche strano atteggiamento verso la parte più importante dell'ottimizzatore - l'archivio delle citazioni. Quindi voglio ancora sentire il chiarimento degli sviluppatori su questo argomento e le risposte alle domande. E che tipo di storia scarica MT da Internet? Non ne so nulla. Spiega, per favore, o dammi un link dove leggere.

Non so tutto, conclusioni per esperienza personale.

Vedo che avete già impostato abbastanza esperimenti per poter formulare delle ipotesi.

Hai caricato un archivio di citazioni sui verbali. Viene scaricato dal server MQ. Se l'avete notato, manca negli ultimi giorni, o addirittura settimane. Ipotesi: l'archivio delle ultime citazioni sul server MQ potrebbe non essere ancora formato. Si scarica il resto della storia dal server attraverso "Update".

Un altro esperimento. Si uccide la storia. Si cerca di scaricare i minuti (cinque minuti) attraverso "Update". Una piccola parte della storia sarà scaricata dal server. Ipotesi: solo una parte limitata della storia più recente è memorizzata sul server DC.

Ipotesi: il tester scarica М5, М1 dall'archivio sul computer e lo completa dal server MQ. Se l'archivio sul server non è ancora stato generato, questi dati vengono emulati. Lo stesso se non c'è connessione internet. I dati emulati non saranno salvati?

Una volta alla settimana scarico la cronologia per 27 coppie di valute usando la funzione "Aggiorna". Su alcune coppie vengono scaricate più di 10000 barre, anche se le nuove barre della settimana sono circa 7000. Ipotesi: la storia è cambiata.

I risultati dei test possono non coincidere con i dati più recenti a causa delle ragioni di cui sopra.

I risultati dei test e i risultati demo (micro, reali) potrebbero non coincidere a causa di altre ragioni.

Motivazione: