Errori, bug, domande - pagina 1938

 
Aleksey Vyazmikin:

Provato la tua opzione - entro il margine di variazione dell'errore

Lo era:
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: 107509 tick, 35385 barre generate. Ambiente sincronizzato alle 0:00:00.032. Test superato in 0:02:52.037 (compresa la preelaborazione dei tic 0:00:00.031).
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: tempo totale dal login all'arresto del test 0:02:52.069 (incluso 0:00:00.032 per la sincronizzazione dei dati storici)
2017.07.21 17:23:20.046 Core 1 351 Mb di memoria utilizzata compresi 32 Mb di dati storici, 64 Mb di dati di tick

Diventato con il tuo codice
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: 107509 tick, 35385 barre generate. Ambiente sincronizzato alle 0:00:00.031. Test superato in 0:02:58.013 (incluso il preprocessing di ticks 0:00:00.031).
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: tempo totale dal login all'arresto del test 0:02:58.044 (incluso 0:00:00.031 per la sincronizzazione dei dati storici)
2017.07.21 17:27:37.393 Core 1 352 Mb di memoria utilizzata compresi 32 Mb di dati storici, 64 Mb di dati di tick

MT4
2017.07.21 17:27:57.070 RUBRUR,M1: 225314 eventi tick (35701 barre, 231783 stati delle barre) processati in 0:00:04.306 (tempo totale 0:00:11.357)

Qui potete anche provare a rimuovere la dichiarazione dell'array nelle funzioni e renderlo globale. Cioè, rendere l'array arr[ 1 ] globale e rimuovere la stringa double arr[ 1 ]; da tutte le funzioni.
 
Andrey Khatimlianskii:

Vi è già stata consigliata una soluzione già pronta -https://www.mql5.com/ru/code/18305

A giudicare dai vostri requisiti:

È quello giusto per te.

L'ho provato e questo è il risultato:

2017.07.21 18:15:16.395 Core 1 Si-9.17,M1: 107509 tick, 35385 barre generate. Ambiente sincronizzato alle 0:00:00.047. Test superato in 0:02:37.748 (compreso il preprocessing di ticks 0:00:00.031).
2017.07.21 18:15:16.395 Core 1 Si-9.17,M1: tempo totale dal login all'arresto del test 0:02:37.795 (incluso 0:00:00.047 per la sincronizzazione dei dati storici)
2017.07.21 18:15:16.395 Core 1540 Mb di memoria utilizzata inclusi 32 Mb di dati storici, 64 Mb di dati di tick

Non serve a molto, e per ragioni poco chiare il risultato finanziario è diverso :(

 
Alexey Kozitsyn:
Potete anche provare a rimuovere la dichiarazione di array nelle funzioni e renderla globale. Cioè rendere l'array arr[ 1 ] globale e rimuovere la stringa double arr[ 1 ]; da tutte le funzioni.

Ecco il risultato

2017.07.21 18:28:58.653 Core 1 Si-9.17,M1: 107509 tick, 35385 barre generate. Ambiente sincronizzato alle 0:00:00.078. Test superato in 0:02:51.477 (incluso il preprocessing di ticks 0:00:00.031).
2017.07.21 18:28:58.653 Core 1 Si-9.17,M1: tempo totale dal login all'arresto del test 0:02:51.555 (incluso 0:00:00.078 per la sincronizzazione dei dati storici)
2017.07.21 18:28:58.653 Core 1 359 Mb di memoria utilizzata compresi 32 Mb di dati storici, 64 Mb di dati di tick

Sì, è un po' più veloce di prima, ma non è paragonabile a MQL4...

 
E se suppongo che non sia il codice? In questo momento, il mio EA sta rallentando terribilmente e non è stato in grado di terminare per circa 10 minuti - non ho fatto alcuna modifica ad esso....
 
Aleksey Vyazmikin:
E se suppongo che non sia il codice? Al momento, il mio Expert Advisor sta rallentando e non è stato in grado di finire il suo lavoro per circa 10 minuti - non ho apportato alcuna modifica ad esso....

Si scopre che il modo di ticchettare è cambiato... mistico.
 

Quindi, signori, ora sono seriamente confuso - ho tagliato l'intero void OnTick(), e ho ottenuto un risultato sorprendente

2017.07.21 21:22:08.048 Core 1 Si-9.17,M1: 107509 tick, 35385 barre generate. Test superato in 0:02:32.928 (incluso il preprocessing di ticks 0:00:00.031).
2017.07.21 21:22:08.048 Core 1 346 Mb di memoria utilizzata compresi 32 Mb di dati storici, 64 Mb di dati di tick

E poi sorge un'idea, forse gli indicatori esterni il cui handal è dichiarato e ricevuto stanno rallentando, se non sono nemmeno interrogati, se è così, allora perché la profilazione è rimasta in silenzio e mi ha preso un giorno della mia vita...

 
Aleksey Vyazmikin:

...se è così, allora perché il profiling è rimasto in silenzio e mi ha tolto un giorno di vita...

Perché non stai postando il tuo codice e stai togliendo un giorno di vita a tutti quelli che sono qui. Inversione dall'universo )

 
Andrey Khatimlianskii:

Perché non stai mettendo fuori il tuo codice, e togliendo un giorno di vita a tutti i presenti. Inversione dall'universo )

È di questo che stai parlando?

 
Vitaly Muzichenko:

È di questo che stai parlando?

Sembra che

 
Vitaly Muzichenko:

È di questo che stai parlando?


No, no, ho pubblicato i risultati del profilo!