64 bit MT5 build 858 che si blocca...

cowil  

Salve,

Il mio broker ha rilasciato la versione a 64 bit di MT5 build 858 ieri e dopo l'aggiornamento dalla build 842 (che ha funzionato bene) a questa nuova versione, MT5 sporadicamente si blocca (cioè si blocca e non risponde). L'unico modo per chiudere MT5 dopo che questo si è verificato è ucciderlo tramite Task Manager.

Questo problema è stato evidente sia sulla mia macchina demo MT5 (windows 7) che sulla mia macchina MT5 live VPS (Windows Server 2008r2). Entrambe queste macchine hanno precedentemente eseguito MT5 build 842 senza problemi.

Nulla è cambiato per quanto riguarda la configurazione di MT5 - gli stessi esperti ecc che sono stati utilizzati sulla build 842 sono ora in esecuzione su entrambe le installazioni della build 858.

Diverse settimane fa, ho anche acceso una macchina a 32 bit per testare la build 858 (per qualche motivo, il mio produttore ha rilasciato la versione a 32 bit della build 858 un paio di settimane fa e la versione a 64 bit solo ieri), con cui non ho avuto alcun problema. Da allora ho trasferito il mio trading dal vivo alla piattaforma a 32 bit e non ho ancora avuto problemi. La versione demo a 64 bit che stavo usando è andata di nuovo in crash questo pomeriggio.

Oh, e non c'è nulla nei log che indichi che MT5 abbia avuto problemi.

Qualcun altro sta avendo questi problemi?

Alain Verleyen  
Suppongo che tu abbia segnalato questo problema al Service Desk?
cowil  
angevoyageur:
Suppongo che tu abbia segnalato questo problema al Service Desk?
Ah, no - ero di fretta e mi è passato di mente! Grazie per il promemoria - lo farò ora...
cowil  

Stato attuale di questo problema - i problemi di blocco si verificano sia con la build 858 che con la nuova versione attualmente disponibile sul sito MetaQuotes - build 868. I problemi di blocco si verificano su entrambe le piattaforme a 32 e 64 bit. Attualmente ho un rapporto sui problemi in corso sia con MetaQuotes che con il mio broker.

C'è qualcun altro là fuori che ha problemi di blocco con build più recenti della build 842? Sto eseguendo un certo numero di Experts quindi sospetto che MT5 potrebbe aver bisogno di essere ragionevolmente "caricato" per questi problemi di blocco.

Ho anche reinstallato MT5 su diverse macchine e istanze VPS (fondamentalmente per escludere qualsiasi problema di macchina). E poiché queste installazioni erano fresche, non posso vedere che ho corrotto la mia installazione di MT5 in qualche modo. Ho anche ricompilato i miei Experts con i nuovi compilatori e anche questo non ha fatto alcuna differenza.

Per la cronaca, sto eseguendo esattamente gli stessi Experts sulle stesse macchine come ho fatto nell'ultimo anno (su varie build di MT5) e non ho MAI avuto un caso in cui MT5 si sia bloccato (sono stato davvero impressionato dalla stabilità di MT5 fino ad ora). È stato solo quando ho aggiornato le mie installazioni senza problemi di MT5 build 842 a build 858, che questi problemi hanno iniziato a verificarsi.

Alain Verleyen  
cowil:

Stato attuale di questo problema - i problemi di blocco si verificano sia con la build 858 che con la nuova versione attualmente disponibile sul sito MetaQuotes - build 868. I problemi di blocco si verificano su entrambe le piattaforme a 32 e 64 bit. Attualmente ho un rapporto sui problemi in corso sia con MetaQuotes che con il mio broker.

C'è qualcun altro là fuori che ha problemi di blocco con build più recenti della build 842? Sto eseguendo un certo numero di Experts quindi sospetto che MT5 potrebbe aver bisogno di essere ragionevolmente "caricato" per questi problemi di blocco.

Ho anche reinstallato MT5 su diverse macchine e istanze VPS (fondamentalmente per escludere qualsiasi problema di macchina). E poiché queste installazioni erano fresche, non posso vedere che ho corrotto la mia installazione di MT5 in qualche modo. Ho anche ricompilato i miei Experts con i nuovi compilatori e anche questo non ha fatto alcuna differenza.

Per la cronaca, sto eseguendo esattamente gli stessi Experts sulle stesse macchine come ho fatto nell'ultimo anno (su varie build di MT5) e non ho MAI avuto un caso in cui MT5 si sia bloccato (sono stato davvero impressionato dalla stabilità di MT5 fino ad ora). È stato solo quando ho aggiornato le mie installazioni senza problemi di MT5 build 842 a build 858, che questi problemi hanno iniziato a verificarsi.

Ho trovato un bug nella funzione Bars() con queste build 858/868. Questo bug rallenta notevolmente l'esecuzione del codice. Forse anche voi avete questo problema.
Documentation on MQL5: Timeseries and Indicators Access / Bars
Documentation on MQL5: Timeseries and Indicators Access / Bars
  • www.mql5.com
Timeseries and Indicators Access / Bars - Documentation on MQL5
cowil  
angevoyageur:
Ho trovato un bug nella funzione Bars() con queste build 858/868. Questo bug rallenta considerevolmente l'esecuzione del codice. Forse anche voi avete questo problema.

Ciao - grazie per il tuo contributo.

In realtà non uso la funzione Bars() nel mio codice, ma trovo un po' preoccupante che un bug così grave si sia insinuato in una funzione così comunemente usata - soprattutto perché prima non c'era... Forse una funzione correlata che uso chiama lo stesso codice sottostante che la funzione Bars() chiama?

Come siete riusciti a rilevarlo e ad isolarlo? Il tempo che Bars() impiegava per completare la sua funzione era straordinariamente lungo? Se sì, di che tipo di tempo state parlando - 100 millisecondi?

Sto cercando di convincere MetaQuotes o il mio broker a fornirmi una build 842 o una versione precedente, ma non ho ancora avuto successo...

Alain Verleyen  
cowil:

Ciao - grazie per il tuo contributo.

In realtà non uso la funzione Bars() nel mio codice, ma trovo un po' preoccupante che un bug così grave si sia insinuato in una funzione così comunemente usata - soprattutto perché prima non c'era... Forse una funzione correlata che uso chiama lo stesso codice sottostante che la funzione Bars() chiama?

Come siete riusciti a rilevarlo e ad isolarlo? Il tempo che Bars() impiegava per completare la sua funzione era straordinariamente lungo? Se sì, di che tipo di tempo state parlando - 100 millisecondi?

Sto cercando di convincere MetaQuotes o il mio broker a fornirmi una build 842 o una versione precedente, ma non ho ancora avuto successo...

Per prima cosa ho osservato che un EA non aggiorna le informazioni visualizzate sul grafico ad ogni tick. Così ho iniziato a fare il debug del codice e ho scoperto che il gestore dell'evento OnTick() non viene chiamato su ogni tick, il che significa che OnTick per un tick precedente è ancora in esecuzione.

Allora uso il profiler per analizzare cosa sta succedendo in OnTick() e trovo che è la funzione Bars() che impiega molti secondi per essere eseguita. Dopo ho controllato la funzione Bars() con un codice molto semplice per confermare che è un bug in MT5/mql5. Lo stesso codice funziona senza problemi con la build 842.

Profiler è uno strumento fantastico, così facile da usare e potente.

cowil  
angevoyageur:

Per prima cosa ho osservato che un EA non aggiorna le informazioni visualizzate sul grafico ad ogni tick. Così ho iniziato a fare il debug del codice e ho scoperto che il gestore dell'evento OnTick() non viene chiamato su ogni tick, il che significa che OnTick per un tick precedente è ancora in esecuzione.

Poi ho usato il profiler per analizzare cosa succede in OnTick() e ho trovato che è la funzione Bars() che impiega molti secondi per essere eseguita. Dopo ho controllato la funzione Bars() con un codice molto semplice per confermare che è un bug in MT5/mql5. Lo stesso codice funziona senza problemi con la build 842.

Profiler è uno strumento fantastico, così facile da usare e potente.

Innanzitutto, grazie mille per le informazioni - molto apprezzate! :)

Cavolo, SECONDI dici...? Questo è sicuramente un problema serio. Penso che potrei fare lo stesso e vedere cosa fa il mio Expert. Faccio girare lo stesso Expert su 8 grafici diversi, quindi non voglio pensare a cosa potrebbe succedere se questo tipo di ritardi si verificano in ogni Expert.

E nessuna gioia da MetaQuotes per quanto riguarda il tentativo di ottenere la build 842 o precedente. Citazione"No, non abbiamo un link alla build 842. Non memorizziamo vecchie versioni da nessuna parte". Incredibile... :( Quando dici che hai una build 842 lì, presumo che sia una versione già installata e non una versione installabile?

Alain Verleyen  
cowil:

Innanzitutto, grazie mille per le informazioni - molto apprezzate! :)

Cavolo, SECONDI dici...? Questo è sicuramente un problema serio. Penso che potrei fare lo stesso e vedere cosa sta facendo il mio Expert. Faccio girare lo stesso Expert su 8 grafici diversi, quindi non voglio pensare a cosa potrebbe succedere se questo tipo di ritardi si verificano in ogni Expert.

E nessuna gioia da MetaQuotes per quanto riguarda il tentativo di ottenere la build 842 o precedente. Citazione"No, non abbiamo un link alla build 842. Non memorizziamo vecchie versioni da nessuna parte". Incredibile... :( Quando dici che hai una build 842 lì, presumo che sia una versione già installata e non una versione installabile?

Sì, già installata da un broker (vedi il tuo PM).
cowil  

Beh, neanche il mio broker poteva fornirmi una versione precedente. Quindi, per quanto incredibile possa sembrare, né il mio (grande) broker, né la grande società di software che sviluppa effettivamente il software (cioè MetaQuotes) potevano fornirmi una sola build precedente di MT5. Incredibile!

QUINDI, PER CHIUNQUE ALTRO STIA LEGGENDO QUESTO POST, L'AGGIORNAMENTO È FONDAMENTALMENTE UNA STRADA A SENSO UNICO! PER QUANTO INCREDIBILE POSSA SEMBRARE, NON CI SONO BUILD PRECEDENTI A CUI TORNARE IN CASO DI UNA RELEASE DI MT5 PROBLEMATICA!!!! quindi assicuratevi maledettamente di testare tutto prima di impegnarvi in una nuova release, soprattutto in un ambiente live (cioè con soldi veri)!!!

Se siete diventati negligenti come me questa volta (cioè NON testando tutto accuratamente prima di impegnarvi in una nuova release), state avendo gli stessi o simili problemi come me e avete esaurito tutte le altre opzioni, ecco l'hack che ho usato e che ha funzionato per me. Questo non significa che funzionerà per voi e consiglierei a chiunque di farlo solo quando siete (a) completamente fregati (come lo ero io) e (b) conoscete un bel po' di computer:

1. Trovate qualcuno che abbia ancora un'installazione funzionante della build 842.

2. Chiedere loro di fare una copia dell'intera struttura della directory di installazione di MT5 e metterla in una directory temporanea sul loro computer.

3. Chiedere loro di passare attraverso le directory ../bases/xxx/history/<SymbolPair> (dell'installazione MT5 copiata nella loro directory temporanea) e cancellare l'intero contenuto di ogni directory (questo passaggio rimuove fondamentalmente i dati storici di quel particolare broker)

4. Una volta che i dati della cronologia sono stati rimossi, chiedete loro di comprimere l'intera struttura della directory di installazione nella loro directory temporanea e di inviarvela (ho usato dropbox per questo).

5. Sul vostro computer, installate la build 858/868 (questo assicura che le impostazioni di registro appropriate siano impostate).

6. Decomprimere l'intera installazione MT5 ricevuta, in una directory temporanea sul vostro computer e rinominare la directory di installazione dell'installazione MT5 ricevuta (nella vostra directory temporanea), con il nome della directory di installazione che avete usato nell'installazione 858/868 di cui sopra.

7. Cancellare la struttura della directory di installazione di MT5 build 858/868 e sostituirla con quella che attualmente si trova nella directory temporanea.

8. È probabile che i file nella directory MT5 sostituita siano tutti contrassegnati come di sola lettura. Contrassegnateli in Lettura/Scrittura.

8. 8. Accendete MT5. Ora dovreste avere una versione funzionante di 842. Naturalmente, ora è necessario configurare il nome del server del vostro broker (se l'installazione 842 ricevuta è stata configurata per utilizzare un altro broker diverso dal vostro), il login e la password in "Strumenti" -> "Opzioni" -> scheda "Server".

Di nuovo, voglio sottolineare che questa è un'ultima risorsa che non è approvata da me e sicuramente non sarà approvata né da MQ né dal vostro broker. Tuttavia, tempi disperati a volte richiedono misure disperate. Se avete bisogno di un'installazione della build 842, fatemelo sapere.

cowil  
angevoyageur:
Sì, già installato da un broker (vedi il tuo PM).

Ciao,

Ho provato vari broker per una build 842 ma quelli in cui mi sono imbattuto avevano già fatto l'aggiornamento. Alla fine, l'hack di cui sopra mi ha fatto tornare in funzione - da allora (incrociando le dita) la mia installazione MT5 non si è più bloccata.

Una cosa che ho notato immediatamente è che la build 842 sembrava funzionare in modo molto più efficiente rispetto alle due build più recenti (cioè meno utilizzo del processore), quindi sospetto che una variazione del problema che stavi riscontrando con la funzione Bars() possa verificarsi con un'altra funzione che mi capita di utilizzare all'interno dei miei Esperti. Penso sia ora di tirare fuori il Profiler e iniziare a fare i miei test. E se scopro qual è il problema, MetaQuotes può benissimo pagarmi i 300 euro che ho perso (a causa di questa build problematica) per questa conoscenza! :)

Comunque, grazie ancora per tutto il tuo aiuto - molto apprezzato!

Motivazione: