Errores, fallos, preguntas - página 2611

 
RickD:

Tampoco hay carpetas en el probador para los Asesores Expertos. Pero MQLInfoString(MQL_PROGRAM_NAME) devuelve el mismo valor al probar un Asesor Experto.

Y necesito el mismo valor para asociar la versión bajo prueba con la versión en el gráfico usando canales con nombre.

Fijado por
 
Los comentarios no relacionados con este tema han sido trasladados a "Cualquier pregunta de los novatos en MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos".
 

Ejecuto el EA en modo de depuración. Necesito hacer un punto de ruptura en el momento exacto en el que descienda manualmente el EA. ¿Cómo lo hago?


El asunto es que el Terminal se cuelga permanentemente cuando quito el EA. Necesito entender dónde ocurre.

 
fxsaber:

Ejecuto el EA en modo de depuración. Necesito hacer un punto de ruptura en el momento exacto en el que descienda manualmente el EA. ¿Cómo lo hago?

He escrito el siguiente código:

int OnInit()
  {
     if(IsStopped()) DeInitEA(1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   if(IsStopped()) DeInitEA(2);

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(IsStopped()) DeInitEA(3);
  }
//+------------------------------------------------------------------+

void DeInitEA(const int callfunc)
{
   string s = "";
   switch (callfunc)
   {
      case 1: s = "OnInit"; break;
      case 2: s = "OnDeinit"; break;
      case 3: s = "OnTick"; break;
   }
   Print(s + " , остановка работы советника");
   
}

establecer punto de interrupción en la cadena s = ""; - volvió a ME sin problemas, apareció la ventana de depuración, bueno, todo es como de costumbre

 

¿Primero recortan las estadísticas y ahora las eliminan por completo?


 
Igor Makanu:

escribió el siguiente código:

establecer punto de interrupción en la cadena s = ""; - volvió a ME sin problemas, aparecieron las ventanas de depuración, bueno, todo como siempre

Con este enfoque tenemos que buscar un punto de interrupción después de cada operador. No encaja.

 
TheXpert:

¿Primero recortan las estadísticas y ahora las eliminan por completo?

está funcionando

 
fxsaber:

Con este enfoque, hay que poner un control de parada después de cada operador. No es adecuado.

No es necesario que lo hagas después de cada declaración, utiliza la comprobación de la mitad de la división - al principio, al final y en medio del código, entonces cuando encuentres la mitad correcta, repítelo de nuevo y divide el código en dos partes, creo que es rápido

 
Igor Makanu:

después de cada declaración no es necesario, poner una comprobación de la división de la mitad - al principio, al final y en el medio del código, a continuación, encontrar la mitad derecha del código de repetir la división del código en dos partes, en mi opinión es rápido

Es un gran programa. Cada vez se tarda unos 30 segundos en reproducir el cuelgue.

 
fxsaber:

Ejecuto el EA en modo de depuración. Necesito hacer un punto de ruptura en el momento exacto en el que descienda manualmente el EA. ¿Cómo lo hago?


El asunto es que el Terminal se cuelga permanentemente cuando quito el EA. Necesito entender dónde ocurre.

¿Está completamente arreglado o tarda un poco en descargarse el EA? Si es esto último, busca un bucle.