Il terminale MT5 è stato aggiornato oggi e la finestra "Ottimizzazione" non appare durante il test - pagina 5
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Perché rompere un buon vecchio algoritmo e sostituirlo con uno nuovo che è 3 volte più lento?
L'algoritmo del tester genetico non è cambiato. E le dichiarazioni su 3 volte sono assolutamente infondate.
Il metodo di lavoro di una cache di risultati precedenti è cambiato. Ed è diventato molto meglio e più completo del precedente.
Se avete bisogno di introdurre un nuovo approccio al metodo genetico, aggiungete una nuova voce alla scheda "ottimizzazione",
Crea una descrizione e delle tecniche per lavorarci.
Dai un'occhiata ai link qui sopra - tutti questi articoli sono del nostro sito. L'ottimizzatore genetico è stato immediatamente discusso per molti anni.
Cerca "tester di strategia", "ottimizzatore genetico" nella ricerca, per favore.
E prendete il mio consiglio ripetuto - l'ottimizzazione del singolo fattore di recupero nella genetica è controindicato. Hai semplicemente ingannato l'algoritmo con un rapporto"profitto/discesa massima" completamente instabile e ingannevole (per gli automatici), che genera facilmente valori enormi. Pensa a come e perché.
Correggeremo il disegno del grafico di ottimizzazione lunedì.
Ci sarà un'esecuzione parziale degli ordini limite, a seconda dei volumi che passano sul mercato?
Avete mai visto dei volumi in un bicchiere nella storia? Questo non è realistico da attuare senza un'istantanea del mercato.
Avete mai visto dei volumi in un bicchiere nella storia? È impossibile farlo senza uno stampo del vetro.
Non me lo sognerei mai. Vorrei che Buy Limit con prezzo 90 e lotto 10 si attivasse parzialmente, se, diciamo, ci fosse un tick SELL con prezzo 89 e volume 1. Ora è molto triste. L'ordine verrebbe attivato se ci fosse un tick BUY con il prezzo 90 e il lotto 1... e a tutto volume.
L'algoritmo del tester genetico non è cambiato. Le affermazioni sulle 3 volte sono assolutamente infondate.
Ciò che è stato cambiato è il modo in cui funziona la cache dei risultati precedenti. Ed è diventato radicalmente migliore e più completo del precedente.
Ho fatto alcuni test comparativi sulle nuove e vecchie build del tester.
Ecco i risultati. Registri e descrizione nel post #34.
Ecco il mio test con le condizioni suggerite:
Metatrader 5 build 1755:
dopo di che il terminale viene riavviato per evitare l'effetto diretto delle cache calde in memoria
2018.04.30 11:24:15.913 Tester Best result 3254.53 produced at generation 0. Next generation 4 2018.04.30 11:24:16.775 Tester file cache used 19 times 2018.04.30 11:24:16.775 Tester result cache used 216 times 2018.04.30 11:24:16.775 Tester genetic optimization finished on pass 1337 (of 49644595) 2018.04.30 11:24:16.775 Statistics optimization done in 0 minutes 15 seconds 2018.04.30 11:24:16.775 Statistics local 1105 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
test continua dal punto di arresto e non dall'inizio come nella build 1809, quindi da 10496 passaggi proposti sono stati presi 3487 e 66+3814 presi dalla cache (66+3814 / 10496 = 36% cache hit)
2018.04.30 11:26:27.931 Tester Best result 3363.35 produced at generation 15. Next generation 32 2018.04.30 11:26:28.104 Tester genetic calculation is over 2018.04.30 11:26:28.111 Tester 3422 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml 2018.04.30 11:26:28.539 Tester file cache used 66 times 2018.04.30 11:26:28.539 Tester result cache used 3814 times 2018.04.30 11:26:28.539 Tester genetic optimization finished on pass 8704 (of 49644595) 2018.04.30 11:26:28.550 Statistics optimization done in 0 minutes 25 seconds 2018.04.30 11:26:28.550 Statistics local 3487 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
Metatrader 5 build 1809:
dopo di che il riavvio del terminale è fatto per evitare l'influenza diretta delle cache calde in memoria.
come il test è iniziato dall'inizio, dai 10240 passaggi proposti è stato fatto pulito 5863 e 4377 sono stati presi dalla cache (4377 / 10240 = 42% cache hit)
Ora le conclusioni:
Questo può essere visto nel tempo di passaggio completo, è di 33 secondi invece di 38 secondi. E 33 secondi per un numero maggiore di passaggi.
Se ricalcoliamo il numero di passaggi al secondo, risulta:
- build 1755 dà 4780 passaggi / 38 sec = 125 passaggi al secondo
- build 1809 dà 5549 passaggi / 33 sec = 168 passaggi al secondo
Stiamo rivalutando il concetto di tester e correggendo vecchie decisioni sbagliate.
Poiché i test genetici devono essere eseguiti più volte per coprire l'area di ricerca in modo più completo, il nostro nuovo modello con la visualizzazione delle esecuzioni precedenti dalla cache permette una migliore comprensione della meccanica del flusso di lavoro della genetica.
Il nuovo modello di visualizzazione dei risultati di ottimizzazione con tutti i dati delle cache calcolate in precedenza aggiunti alla tabella permette di vedere il quadro in modo più completo. È possibile calcolare la vostra strategia in pezzi e vedere i risultati completi ogni volta, comprese le corse precedenti.
È a causa delle tabelle dei risultati fusi davvero grandi che abbiamo disabilitato la visualizzazione rieltime della lista dei risultati, e mostriamo il risultato aggregato dopo aver fuso tutti i risultati precedenti.
Il mio robot si blocca durante l'inizializzazione, sia in Runtime che in Debug. La compilazione va bene.
C'è una classe con membri statici nel codice, probabilmente a causa loro. Prima tutto funzionava bene. Ma ora riporta un errore durante l'inizializzazione globale.
Rimossi i membri statici dalla classe, funziona bene.
Il mio robot si blocca durante l'inizializzazione, sia in Runtime che in Debug. La compilazione va bene.
C'è una classe con membri statici nel codice, probabilmente a causa loro. Prima tutto funzionava bene. Ora scrive un errore durante l'inizializzazione globale.
Rimossi gli elementi statici nella classe, lanciati normalmente.
Scrivi la tua richiesta al Service Desk e allega l'Expert Advisor (può essere un file ex5), per favore.
Tutto questo è fantastico!
Tuttavia, per favore riporta la scheda "Ottimizzazione" - è impossibile lavorare senza l'analisi operativa! Le tabelle grandi sono lente - facciamo un filtro - mostra i primi 20 per ogni criterio - non è così impegnativo in termini di risorse(?), ma aiuterà a vedere il quadro. E quei miliardi di passaggi, chi li fa? Sono unità con capacità enormi - tu stesso stai parlando della ragionevolezza dell'applicazione della genetica, e lì non ci sono questi portmanteaus. Quindi più di 10k passaggi sono una rarità.
Triste.
Almeno è stato possibile costruire un quadro su dati preliminari, mentre l'ottimizzazione è in corso.
Siamo impegnati in un grande aggiornamento delle prestazioni del tester e stiamo ridisegnando le modalità di carico pesante. Sono stati fatti grandi miglioramenti e nuovi metodi di accelerazione saranno presto implementati.
La finestra dell'elenco delle corsie ha deciso di mostrarsi alla fine dell'errore di calcolo, per non sprecare risorse davvero grandi per mantenere, riordinare e visualizzare l'elenco delle corsie in continua evoluzione.
C'è stato davvero un enorme spreco di risorse e rallentamenti. Soprattutto quando si parla di centinaia di migliaia di righe, milioni e decine di milioni di passaggi. Non ha senso guardare con gli occhi un mucchio di dati preliminari.
Facciamo la nostra ottimizzazione ed eseguiamo test con 100 milioni di passaggi completi.
È chiaro che con questi numeri è fuori questione riordinare in tempo reale e visualizzare una tabella di 2-5-10-50 milioni di valori. C'è solo un'opzione: raccogliere tutto in modo rapido ed economico, ordinarlo definitivamente e fornire una visione di qualsiasi profondità.
Raccontaci e basta.