Errores, fallos, preguntas - página 2484

 
Сергей Таболин:

Estimados desarrolladores, me he encontrado con un problema. Necesita su atención.

La cuestión es que TesterStop() yExpertRemove() no detienen la prueba inmediatamente. He aquí una ilustración del error. Perdón por la intemperancia de este post.

Pensé que sería más correcto introducir la constante MQL_TESTER_STOP - una señal de terminación de la prueba por TesterStop() o ExpertRemove().

En este caso podríamos seleccionar otras acciones:

Una parada inmediata del Asesor Experto significa una pérdida de memoria. La parada inmediata del Asesor Experto puede dejar bloques de memoria sin liberar. Por lo tanto, la parada inmediata del Asesor Experto se utiliza sólo en la terminación del terminal del cliente o del agente probador y sólo si el Asesor Experto no procesa la bandera de parada y continúa la ejecución.

TesterStop da la orden de terminar la prueba. Significa que después de que el manejador actual OnInit, OnTick, OnTimer, OnChartEvent haya terminado, no se manejarán más eventos del probador, ya que el ciclo de procesamiento ha terminado. Y OnTester y OnDeinit serán llamados

 
Slava:

Detener el EA inmediatamente significa que se ha corrompido la memoria. La detención inmediata del Asesor Experto puede dejar bloques de memoria sin liberar. Por lo tanto, la parada inmediata del Asesor Experto se utiliza sólo en la terminación del terminal del cliente o del agente probador y sólo si el Asesor Experto no procesa la bandera de parada y continúa la ejecución.

TesterStop da la orden de terminar la prueba. Significa que después de que el manejador actual OnInit, OnTick, OnTimer, OnChartEvent haya terminado, no se manejarán más eventos del probador, ya que el ciclo de procesamiento ha terminado. Y se llamará a OnTester y OnDeinit.

Gracias, ya me lo imaginaba. Pero no resuelve el problema. Se puede solucionar con la constanteMQL_TESTER_STOP ocambiando el retorno de void a bool.

Alexey Viktorov ha sugerido una solución inesperada. Si se utiliza return después de TesterStop(), todo parece normalizarse. Cómo y por qué sucede, personalmente no puedo entenderlo. Sin embargo...

Por lo tanto, añada este punto a la documentación o cambievoid por bool.

P.D. He encontrado este problema en la versión 2085. Antes no había ningún problema. ¿Me dice algo? )))

 

Hola,

¿Por qué en el probador a veces no se dibujan los indicadores utilizados?

Reinicio el terminal - comienzan a dibujar...

Luego se detienen de nuevo, aunque el código no ha cambiado...

 

También me gustaría hacer una segunda pregunta:

¿por qué los objetos gráficos no se actualizan en el probador a pesar de forzar ChartRedraw(0); ?

De hecho el probador los actualiza después pero con enormes retrasos y tirones...

Gracias.

EDIT: lo siento, falsa alarma, este problema está resuelto (el problema estaba en mi código glitchy)

Pero la pregunta sobre los indicadores sigue en pie.

 
P.D. versión 2085 del 13 de junio
 

@Slava dime, en la build 2007 TesterStop() pasó el control sólo en OnDeinit ? ¿No se pasó el control a OnTester?

Por eso mi código funcionó bien y el resultado de la prueba en ese caso fue 0.

 
Сергей Таболин:

@Slava dime, en la build 2007 TesterStop() pasó el control sólo en OnDeinit ? ¿No se pasó el control a OnTester?

Por eso mi código funcionaba bien y el resultado de la prueba en tal caso era 0.

Cree su bandera global, establézcala antes de llamar a TesterStop, y analícela en OnTester.

 
Andrey Khatimlianskii:

Inicie su bandera global, levántela antes de llamar a TesterStop, y analícela en OnTester.

Lo tengo )))) Resultó no ser tan sencillo. En principio, el problema está resuelto, sólo quiero que me confirmen que antes TesterStop funcionaba de forma algo diferente.

 
2085
Linux, Wine-4.0.1

El enlace que lleva a la descripción de la herramienta se atasca.

Si no hay ningún enlace en la descripción, el efecto no aparece.


Archivos adjuntos:
link.gif  5125 kb
 
Vladimir Karputov:

Es posible que tenga un sistema operativo de 32x. O puede que se esté quedando sin RAM.

ordenador. lenovo G50-45 (LAPTOR-46OAGFM3)
APU AMD A4-6210 con AMD Radeon
Gráficos R3 1,80 GHz
2,00 GB DE RAM
tipo de sistema 64bit, procesador x64