Errores, fallos, preguntas - página 1938

 
Aleksey Vyazmikin:

Probó su opción - dentro del margen de error de cambio

Lo fue:
2017.07.21 17:23:20.046 Núcleo 1 Si-9.17,M1: 107509 ticks, 35385 barras generadas. Entorno sincronizado a las 0:00:00.032. Prueba superada en 0:02:52.037 (incluyendo el preprocesamiento de ticks 0:00:00.031).
2017.07.21 17:23:20.046 Núcleo 1 Si-9.17,M1: tiempo total desde el inicio de la sesión hasta el fin de la prueba 0:02:52.069 (incluyendo 0:00:00.032 para la sincronización de los datos del historial)
2017.07.21 17:23:20.046 Núcleo 1 351 Mb de memoria utilizada, incluidos 32 Mb de datos históricos y 64 Mb de datos de ticks

Se convirtió con su código
2017.07.21 17:27:37.393 Núcleo 1 Si-9.17,M1: 107509 ticks, 35385 barras generadas. Entorno sincronizado a las 0:00:00.031. Prueba superada en 0:02:58.013 (incluyendo el preprocesamiento de ticks 0:00:00.031).
2017.07.21 17:27:37.393 Núcleo 1 Si-9.17,M1: tiempo total desde el inicio de la sesión hasta el fin de la prueba 0:02:58.044 (incluyendo 0:00:00.031 para la sincronización de los datos del historial)
2017.07.21 17:27:37.393 Núcleo 1 352 Mb de memoria utilizada, incluyendo 32 Mb de datos históricos, 64 Mb de datos de ticks

MT4
2017.07.21 17:27:57.070 RUBRUR,M1: 225314 eventos de tick (35701 barras, 231783 estados de barra) procesados en 0:00:04.306 (tiempo total 0:00:11.357)

Aquí también puedes intentar eliminar la declaración del array en las funciones y hacerlo global. Es decir, hacer global el array arr[ 1 ] y eliminar la cadena doble arr[ 1 ]; de todas las funciones.
 
Andrey Khatimlianskii:

Ya le han aconsejado una solución preparada: https://www.mql5.com/ru/code/18305

A juzgar por sus requisitos:

Es el adecuado para ti.

Lo he probado y este es el resultado:

2017.07.21 18:15:16.395 Núcleo 1 Si-9.17,M1: 107509 ticks, 35385 barras generadas. Entorno sincronizado a las 0:00:00.047. Prueba superada en 0:02:37.748 (incluyendo el preprocesamiento de ticks 0:00:00.031).
2017.07.21 18:15:16.395 Núcleo 1 Si-9.17,M1: tiempo total desde el inicio de la sesión hasta el fin de la prueba 0:02:37.795 (incluyendo 0:00:00.047 para la sincronización de los datos del historial)
2017.07.21 18:15:16.395 Núcleo 1540 Mb de memoria utilizada, incluidos 32 Mb de datos históricos y 64 Mb de datos de ticks

No sirve de mucho, y por razones poco claras el resultado financiero es diferente :(

 
Alexey Kozitsyn:
También puedes intentar eliminar la declaración del array en las funciones y hacerlo global. Es decir, hacer global el array arr[ 1 ] y eliminar la cadena doble arr[ 1 ]; de todas las funciones.

Este es el resultado

2017.07.21 18:28:58.653 Núcleo 1 Si-9.17,M1: 107509 ticks, 35385 barras generadas. Entorno sincronizado a las 0:00:00.078. Prueba superada en 0:02:51.477 (incluyendo el preprocesamiento de ticks 0:00:00.031).
2017.07.21 18:28:58.653 Núcleo 1 Si-9.17,M1: tiempo total desde el inicio de la sesión hasta el fin de la prueba 0:02:51.555 (incluyendo 0:00:00.078 para la sincronización de los datos del historial)
2017.07.21 18:28:58.653 Núcleo 1 359 Mb de memoria utilizada, incluidos 32 Mb de datos históricos y 64 Mb de datos de ticks

Sí, es un poco más rápido que antes, pero no se compara con MQL4...

 
¿Y si asumo que no es el código? En este momento, mi EA se ha ralentizado terriblemente y no ha sido capaz de terminar durante unos 10 minutos - no he hecho ningún cambio en él en absoluto....
 
Aleksey Vyazmikin:
¿Y si asumo que no es el código? En este momento, mi Asesor Experto se ha ralentizado y no ha podido terminar su trabajo durante unos 10 minutos - no he hecho ningún cambio en él....

Resulta que el modo de tictac ha cambiado... mística.
 

Así que, señores, ahora estoy seriamente confundido - cortó todo el vacío OnTick(), y obtuvo un resultado impresionante

2017.07.21 21:22:08.048 Núcleo 1 Si-9.17,M1: 107509 ticks, 35385 barras generadas. Prueba superada en 0:02:32.928 (incluyendo el preprocesamiento de ticks 0:00:00.031).
2017.07.21 21:22:08.048 Núcleo 1 346 Mb de memoria utilizada, incluyendo 32 Mb de datos históricos, 64 Mb de datos de ticks

Y entonces surge una idea, tal vez los indicadores externos cuyo handal se declara y se recibe se están ralentizando, si es que ni siquiera se consultan, si es así, entonces por qué el profiling se quedó callado al respecto y me llevó un día de mi vida...

 
Aleksey Vyazmikin:

...si ese es el caso, entonces por qué la elaboración de perfiles se mantuvo en silencio y me quitó un día de vida...

Porque no estás posteando tu código, y le estás quitando un día de vida a todos aquí. Reverso del universo )

 
Andrey Khatimlianskii:

Porque no estás poniendo tu código, y quitando un día de vida a todos los presentes. Reverso del universo )

¿Es eso a lo que te refieres?

 
Vitaly Muzichenko:

¿Es esto de lo que hablas?

Parece que

 
Vitaly Muzichenko:

¿Es esto de lo que hablas?


No, no, ¡puse los resultados de los perfiles!