Características del lenguaje mql5, sutilezas y técnicas - página 179

 
Konstantin Nikitin:

Como opción.

No funciona.

 
fxsaber:

No funciona.

Parece que el experto en terminales se ha recargado. Cuando cambié la cuenta la borré del gráfico. Lo único que tengo que jugar con el nombre global para cada variante del Asesor Experto. Es posible añadirlo al nombre de char. No me he molestado en hacerlo.

 
Konstantin Nikitin:

Creo que sobrecargué el terminal y el experto se quedó. Cuando cambié la cuenta la borré de la carta... Lo único que tengo que jugar con el nombre global para cada variante del Asesor Experto. Puedo añadirlo al nombre de char. No me he molestado en hacerlo.

Necesita el Asesor Experto para trabajar en un gráfico que no funciona. Y ofrecemos opciones con horario de trabajo.

 
Konstantin Nikitin:

Creo que sobrecargué el terminal y el experto se quedó. Cuando cambié la cuenta la borré de la carta... Lo único que tengo que jugar con el nombre global para cada variante del Asesor Experto. Puedo añadirlo al nombre de char. No me he molestado en hacerlo.

  1. Abra la demo en ForexTimeFXTM-Demo01.
  2. Ejecute el Asesor Experto en el símbolo Brent.
  3. Cambiar a MQ-Demo.
  4. Utilice el PKM en el menú de expertos para ver si el Asesor Experto se está ejecutando o no.
 
fxsaber:

  1. Abra la demo en ForexTimeFXTM-Demo01.
  2. Ejecute el Asesor Experto en el símbolo Brent.
  3. Cambiar a MQ-Demo.
  4. Utilice el PCM en el menú de Expertos para ver si el Asesor Experto está colgado o no.


fxsaber:

En general, llamar a ExpertRemove en REASON_ACCOUNT es una cosa absolutamente sin sentido.


Comprobado, creo que es aún más triste, incluso los errores críticos no descargan mi EA

const long login = AccountInfoInteger(ACCOUNT_LOGIN);
//+------------------------------------------------------------------+
int OnInit()
{
   Print(__FUNCTION__);
   Print("_StopFlag = ",_StopFlag);
   Print("_UninitReason = ",_UninitReason);
   Print("login = ",login);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   Print(__FUNCTION__);
   Print("_StopFlag = ",_StopFlag);
   Print("_UninitReason = ",_UninitReason);
   Print("login = ",login);
   if(_StopFlag && _UninitReason == 6) {int i=1; int j = 10/--i;}
}
//+------------------------------------------------------------------+

pero el ámbito global se borra completamente cuando se cambia la cuenta

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) OnDeinit

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) _StopFlag = 1

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) _UninitReason = 6

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) login = 21796970

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) zero divide in 'tst1.mq5' (25,60)

2020.05.21 14:30:17.373 Expertos el comercio automatizado está desactivado porque la cuenta ha sido modificada

2020.05.21 14:30:17.797 tst1 (EURUSD,H1) OnInit

2020.05.21 14:30:17.797 tst1 (EURUSD,H1) _StopFlag = 0

2020.05.21 14:30:17.797 tst1 (EURUSD,H1) _UninitReason = 0

2020.05.21 14:30:17.797 tst1 (EURUSD,H1) login = 500030706

2020.05.21 14:30:24.492 Expertos el comercio automatizado está activado

 
Igor Makanu:

Comprobado, creo que es aún más triste, incluso los errores críticos no descargan mi EA

pero el ámbito global se borra completamente cuando cambio la cuenta

Allí todo funciona de forma lógica (pero incómoda en algunos puntos). Sólo hay que entender el mecanismo.

 
fxsaber:

Todo funciona lógicamente allí (pero de forma incómoda en algunas partes). Sólo hay que entender el mecanismo.

Bueno, el mecanismo está en la ayuda, pero la ayuda no tiene en cuenta todos los casos en el trabajo - esta información fue dada por el administrador, pero luego el moderador se involucró y los dos llegaron al veredicto - usted es delirantehttps://www.mql5.com/ru/forum/334269/page53#comment_16412120


dar el mecanismo, la ayuda era impotente ;)

 
Igor Makanu:

dar el mecanismo, la ayuda era impotente ;)

CuandoREASON_ACCOUNT(incluso si la cuenta no se cambia, sólo se vuelve a registrar), el EA se descarga completamente y se carga una nueva copia.

Por esta razón, ExpertRemove en OnDeinit no tiene efecto en la nueva copia, porque se refiere a la descargada.


Si el símbolo no está, la nueva copia se carga sin ninguna ejecución.

Y el problema era descargar una nueva copia que se cuelga, pero no se ejecuta.


Una copia colgante significa que si hay un cambio a otra cuenta donde hay un símbolo, el EA se iniciará.

 
fxsaber:

¿Por qué descargarlo si no funciona en absoluto?

 
Andrey Khatimlianskii:

¿Y por qué descargarlo si no funciona en absoluto?

Debería haber un control total.