MetaTrader 5 Strategy Tester: bug, errori, suggerimenti per il miglioramento - pagina 59

 
Sergey Chalyshev:

I parametri nella linea del risultato dell'ottimizzazione sono corretti, corrispondono ai parametri nel log del tester, ma l'Expert Advisor viene eseguito per un test con parametri completamente diversi.

Ho disinserito i parametri di input dall'Expert Advisor stesso. Sono stati abbinati.

 
fxsaber:

È solo che i dati del simbolo originale corrispondono perfettamente a quello personalizzato. Ma quello personalizzato passa senza errori, mentre quello originale no.

A quanto pare, non ho capito il punto. Lo script scrive solo il csv. Come si esegue un test su di loro?

 
Andrey Khatimlianskii:

A quanto pare, non ho capito il punto. Lo script scrive solo csv. Come si svolge il test su di loro?

Lo script crea un simbolo personalizzato e il simbolo originale (importato sul lato server) da questi csv.

Cioè i due simboli hanno una storia di quotazioni identica, sia per barre che per tick.

 
fxsaber:

Lo script crea un simbolo personalizzato e il simbolo originale(importato sul lato server) da questi csv.

Cioè i due simboli hanno una storia di quotazioni identica, sia in barre che in tick.

Questo avrebbe dovuto essere menzionato.

Non conosco i meccanismi del server MT5 per lavorare con la storia.

 
Advisor in modalità frame è finito su Abnormal Termination, dopo di che il file mqd da 1GB ha rifiutato di essere letto. Quando ho chiuso il terminale, il mqd è cresciuto fino a 2GB. Cioè il terminale non ha fatto FileClose per mqd.
 

Durante la genetica, il numero di passaggio da FrameNext non corrisponde al numero di passaggio dal file opt.

Per esempio, FrameNext restituisce 10041014291 e opt restituisce 2465.

Qual è la ragione delle differenze? Come posso abbinare l'uno all'altro?

Nella tabella GUI al posto del numero di passaggio ci sono due numeri. Ma appena riapro il file opt dopo l'ottimizzazione, i numeri di passaggio diventano valori vuoti.


Si prega di chiarire per GA.


Imparato a riprodurre il mismatch tra GA e GA singolo. La GA salvata passa attraverso le statistiche dei fotogrammi. Ma non riesco a identificare su 10K passaggi quello che mi interessa. Perché Pass in FrameNext e Pass in opt sono valori diversi.

 
fxsaber:

Durante la genetica, il numero di passaggio da FrameNext non corrisponde al numero di passaggio dal file opt.

Per esempio, FrameNext restituisce 10041014291 e opt restituisce 2465.

Qual è la ragione delle differenze? Come posso abbinare l'uno all'altro?

Nella tabella GUI al posto del numero di passaggio ci sono due numeri. Ma appena riapro il file opt dopo l'ottimizzazione, i numeri di passaggio diventano valori vuoti.


Si prega di chiarire per GA.


Imparato a riprodurre il mismatch tra GA e GA singolo. La GA salvata passa attraverso le statistiche dei fotogrammi. Ma non riesco a identificare su 10K passaggi quello che mi interessa. Perché Pass in FrameNext e Pass in opt sono valori diversi.

2 numeri - numero di generazione, numero individuale.

Se vuoto, allora il risultato viene caricato dal file opt (cioè il risultato della precedente ottimizzazione genetica)

Ci sono due tipi di genetica

1. Lo spazio dei parametri è limitato a un numero di 64 bit. In questo caso il calcolo della composizione dei parametri per numero di genotipo si riduce a un insieme di semplici operazioni aritmetiche.

2. lo spazio dei parametri è limitato da un numero massimo di 64 bit dal basso, 1024 bit dall'alto. Una trasformazione più complessa del genotipo in un insieme di parametri. Sembra essere il tuo caso di mancata corrispondenza del numero, poiché i frame contengono solo i 64 bit più bassi del numero di passaggio.

Non appena si aggiunge un nuovo parametro all'ottimizzazione o si cambia lo start-stop di un parametro esistente, l'intera numerazione cambia. Quindi, non andate per il numero del passo, ma per la composizione dei parametri

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении. Могут возникнуть вычислительные проблемы при переносе вышеуказанного выражения из одной среды программирования в...
 
Slava:

2 numeri - numero di generazione, numero individuale.

Se vuoto, il risultato è caricato dal file opt (cioè il risultato della precedente ottimizzazione genetica)

Ci sono due tipi di genetica

1. Lo spazio dei parametri è limitato a un numero di 64 bit. In questo caso il calcolo della composizione dei parametri per numero di genotipo si riduce a un insieme di semplici operazioni aritmetiche.

2. lo spazio dei parametri è limitato da un numero massimo di 64 bit dal basso, 1024 bit dall'alto. Una trasformazione più complessa del genotipo in un insieme di parametri. Sembra essere il tuo caso di mancata corrispondenza dei numeri, dato che i frame contengono solo un numero massimo di 64 bit di passaggio.

Non appena si aggiunge un nuovo parametro all'ottimizzazione o si cambia lo start-stop di un parametro esistente, l'intera numerazione cambia. Quindi non andare per il numero del passo, ma per la composizione dei parametri

Grazie. Come si abbina FrameNext_Pass e opt-Pass allora?

 
fxsaber:

Imparato a riprodurre la mancata corrispondenza tra GA e singolo. Salvato il GA passa attraverso le statistiche delle cornici. Ma non riesco a identificare quello che mi interessa su 10K pass. Perché Pass in FrameNext e Pass in opt sono valori diversi.

Ho trovato la ragione della discrepanza!


Confrontato lo stack ottenuto attraverso la cornice durante l'ottimizzazione GA. E la pila di un singolo passaggio.


Nel frame-state l'esecuzione si basa su tick che non sono presenti nella storia: ho notato subito che ci sono un sacco di operazioni/ordini che vengono eseguiti esattamente in un secondo.

Per esempio, un singolo passaggio nella storia ha una voce al 2019.06.04 02:00:00.206, ma un passaggio di frame è 2019.06.04 02:00:00.000(la storia dei tick non ha tick in quel momento).


L'ottimizzazione GA va su una storia di tick diversa da quella del singolo passaggio! E questa storia non è sempre diversa. Per esempio, quando faccio GA su un intervallo più piccolo, lì va bene.


Il sospetto di ZZY di usare un timer cade. Non c'è un timer nell'EA.

 
fxsaber:

Ho trovato la ragione della discrepanza!


Confrontato le statistiche fotogramma per fotogramma durante l'ottimizzazione GA. E la pila di un singolo passaggio.


Nel frame-state l'esecuzione è basata su tick, che non sono nella storia: ho notato subito che ci sono un sacco di operazioni/ordini, che vengono eseguiti esattamente in un secondo.

Per esempio, un singolo passaggio nella storia ha una voce al 2019.06.04 02:00:00.206, ma un passaggio di frame è 2019.06.04 02:00:00.000(la storia dei tick non ha tick in quel momento).


L'ottimizzazione GA va su una storia di tick diversa da quella del singolo passaggio! E questa storia non è sempre diversa. Per esempio, quando faccio GA su un intervallo più piccolo, lì va bene.


Il sospetto di ZZY di usare un timer cade. Non c'è un timer nell'EA.

Test/ottimizzazione su zecche reali?

Gli agenti sono tuoi o vengono dal cloud?

Se i test vengono effettuati su un simbolo personalizzato, gli agenti cloud sono fuori discussione. Così gli agenti sono in-house e si possono estrarre i loro registri e vedere nei registri come la storia è stata sincronizzata

Motivazione: