Errores, fallos, preguntas - página 1538

 

Estimados desarrolladores.

Build 1281 MT5 Windows 7 64

hoy he recibido una actualización


El proceso parece no tener fin :-)

Después de reiniciar quiere volver a reiniciar y así sucesivamente.

2016.03.30 10:33:31.903 Red '3143179': se ha habilitado el comercio - modo de red

2016.03.30 10:33:31.903 Red '3143179': terminal sincronizado con MetaQuotes Software Corp.

2016.03.30 10:33:31.829 Red '3143179': autorización anterior realizada con éxito el 2016.03.30 10:33:05

2016.03.30 10:33:31.829 Red '3143179': autorizada en MetaQuotes-Demo a través de Access Point EU Frankfurt (ping: 70.19 ms)

2016.03.30 10:33:31.759 LiveUpdate nuevo terminal build 1286 (IDE: 1286, Tester: 1286) está disponible

 
Vladislav Andruschenko:

Estimados desarrolladores.

Build 1281 MT5 Windows 7 64

hoy he recibido una actualización


El proceso parece no tener fin :-)

después de reiniciar quiere volver a reiniciar y así sucesivamente

2016.03.30 10:33:31.903 Red '3143179': se ha habilitado el comercio - modo de red

2016.03.30 10:33:31.903 Red '3143179': terminal sincronizado con MetaQuotes Software Corp.

2016.03.30 10:33:31.829 Red '3143179': autorizada en MetaQuotes-Demo a través de Access Point EU Frankfurt (ping: 70.19 ms)

2016.03.30 10:33:31.759 LiveUpdate nuevo terminal build 1286 (IDE: 1286, Tester: 1286) está disponible

Trae los registros completos.
 
2016.03.30 10:48:54.402 Network '3143179': trading has been enabled - netting mode
2016.03.30 10:48:54.402 Network '3143179': terminal synchronized with MetaQuotes Software Corp.
2016.03.30 10:48:54.301 Network '3143179': previous successful authorization performed from  on 2016.03.30 10:33:30
2016.03.30 10:48:54.301 Network '3143179': authorized on MetaQuotes-Demo through Access Point EU Frankfurt (ping: 70.19 ms)
2016.03.30 10:48:54.230 LiveUpdate      new terminal build 1286 (IDE: 1286, Tester: 1286) is available
2016.03.30 10:48:54.021 MQL5.community  activated for 'Vladon', balance: 98.50
2016.03.30 10:48:53.122 Terminal        G:\РАБОТА\expforex\!!!$$$---MQL5---!!!\ROBOFOREX MT5
2016.03.30 10:48:53.122 Terminal        Windows 7 Ultimate (x64 based PC), IE 11.00, Intel Core i7-6700  @ 3.40 GHz, RAM: 21297 / 32684 Mb, HDD: 9730 / 1498122 Mb, GMT+02:00
2016.03.30 10:48:53.115 Terminal        MetaTrader 5 - RoboForex x64 build 1281 started (ROBOFOREX LP)
 
Vladislav Andruschenko:
No son registros completos. Escribe a servicedesk.
 
comp:

¿Es cierto que cuando se elimina un indicador manualmente mientras se está ejecutando OnCalculate, OnDeinit se ejecuta inmediatamente, a veces simultáneamente con OnCalculate, que aún no ha terminado?

Ese parece ser el caso. Una clase tiene una matriz dinámica de instancias de otra clase que se libera en el destructor.

El destructor es llamado sólo en OnDeinit a través de delete.

Así, cuando lo desmarco durante OnCalculate, el array mencionado anteriormente empieza a borrarse, como si alguien llamara al destructor. Este alguien - OnDeinit.

Como resultado, obtendré NULL en lugar de instancias de la clase.

Intenté usar _StopFlag en OnCalculate, pero no ayuda.

¿Cómo hacer que OnDeinit no se ejecute durante la ejecución de OnCalculate sino después?

Si quito el delete de OnDeinit dejo de obtener NULL. Pero en el registro obtengo una memoria lógica filtrada. Así que ciertamente es OnDeinit. Intenté ponerle sueño. Pero parece que el sueño no funciona en los indicadores. Incluso lo probé así

  void MySleep( const uint Pause ) const
  {
    const uint StartTime = GetTickCount();
    
    while(GetTickCount() - StartTime < Pause)
      ;
      
    return;
  }

El indicador parece ignorar esto también.

 
comp:

Utilizo macros predefinidas cuando depuro. ¿Es posible también averiguar convenientemente quién ha llamado a la función/método sin pasarle el parámetro correspondiente?

No puedes utilizar las herramientas MQL incorporadas, tienes que hacerlo tú mismo, por ejemplo, para la versión de depuración añade el parámetro "nombre de la función llamada"
 
comp:

Este parece ser el caso. La clase tiene una matriz dinámica de instancias de otra clase, que se libera en el destructor.

El destructor se llama sólo en OnDeinit a través de delete.

Así, cuando lo desmarco durante OnCalculate, el array mencionado anteriormente empieza a borrarse, como si alguien llamara al destructor. Este alguien - OnDeinit.

Como resultado, obtendré NULL en lugar de instancias de la clase.

Intenté usar _StopFlag en OnCalculate, pero no ayuda.

¿Cómo hacer que OnDeinit no se ejecute durante la ejecución de OnCalculate sino después?

Si quito el delete de OnDeinit dejo de obtener NULL. Pero en el registro obtengo una memoria lógica filtrada. Así que ciertamente es OnDeinit. Intenté ponerle sueño. Pero parece que el sueño no funciona en los indicadores. Incluso lo probé así

El indicador parece ignorar esto también.

Por favor, abra una solicitud a servicedesk y dé el código de la función OnDeinit
 
Ilyas:
Por favor, abre una solicitud a servicedesk y dame el código de la función OnDeinit

¿Puedes recomendar cómo hacer que OnCalculate se ejecute artificialmente durante mucho tiempo? Es un fastidio con el deslizamiento.

Sólo juega en el indicador complejo (muchos cálculos). Cuando quito los cálculos - todo está bien, ya que OnCalculate se ejecuta casi instantáneamente.

 
comp:

¿Cómo puedo hacer que OnDeinit se ejecute después de OnCalculate en lugar de durante él?


OnDeinit se ejecuta siempre después de OnCalculate
 
comp:

¿Puedes recomendar cómo hacer que OnCalculate se ejecute artificialmente durante mucho tiempo? Es un fastidio con el deslizamiento.

Sólo juega en el indicador complejo (muchos cálculos). Cuando quito los cálculos - todo está bien, porque OnCalculate se ejecuta casi instantáneamente.

#import "kernel32.dll"
    void Sleep(uint);
#import



 kernel32::Sleep(10000);
Razón de la queja: