Errores, fallos, preguntas - página 2685

 
No he encontrado ninguna información sobre esto

Probador de estrategias en modo de optimización "Lento (enumeración completa de los parámetros" - ¿a qué valor total de pasos de optimización se pasa a la optimización genética?

ZS: Agradecería que hubiera una metodología para hacer una búsqueda completa para que no se active la optimización genética
 
De vez en cuando el terminal MT4 se cierra espontáneamente, no hay nada al respecto en el registro del terminal y nada en los eventos de las ganancias. ¿Cómo se puede determinar la causa de estos choques?
 
Igor Makanu:
ZS: Agradecería que hubiera una metodología para hacer una sobrecarga completa para que la optimización genética no entre en acción

Optimización de lotes.

 
El defecto del depurador ME (build 2370) - StepInto (F11) y los puntos de interrupción establecidos no funcionan.
El problema es que si la acción StepOver (F10) se aplica a una llamada de función al menos una vez, no hay forma de depurar esta función posteriormente.

void Increment(int &n){
   ++n;
};

void test(){
   int n = 0;
   for(int i = 0; i < 100; ++i){
      DebugBreak();
      Increment(n);
   }  
}

void OnStart(){
   test();
}

Pasos para la reproducción:
1) Ejecute el código en modo de depuración;
2) Después de activar un punto de interrupción, ejecute StepOver (F10) dos veces;

Eso es todo - ahora no hay manera de "entrar" en la función deincremento, todos los puntos de interrupción establecidos manualmente no funcionan, y en lugar de la operación StepInto (F11) se realiza realmente StepOver (F10).


 

Un defecto en el depurador ME (build 2370) - después de que se dispara un punto de interrupciónen lugar de continuar la ejecución del código pulsando (F5), el mismopunto de interrupciónse dispara de nuevosin ejecutar ningún código.

#include <Generic\ArrayList.mqh>

void OnStart(){
   CArrayList<int> arr;
   for(int i = 0; i < 5; ++i){
      arr.Add(i);
      arr.Add(2*i);
   }
}

Pasos a seguir:
1) Establezca manualmente
el punto de interrupción para ambas líneas " arr.Add()";
2) Inicie la depuración (F5);
3) Utilice PCM para abrir el archivo anidado <Generic\ArrayList.mqh> en una nueva pestaña.
4) Encuentra la línea "if(m_size==ArraySize(m_items))" en la función "bool CArrayList::Add(T item)" y estableceel punto de interrupción manualmente.
5) En la pestaña "
ArrayList.mqh", continúe ejecutando el código (F5).

Esto
activará el mismopunto de interrupción que antes sin ninguna ejecución de código real.

 
Error en MT5 (compilación 2370) - la activación de un punto de interrupción en un método de estructura estática hace que el terminal MT se cuelgue.
Como resultado, no es posible depurar el códigodel método de la estructura estática en absoluto:

struct A{
   static void test(){
      DebugBreak();
   }
};

void OnStart(){
   A::test();
}
 
Igor Makanu:
No he encontrado ninguna información sobre esto

Probador de Estrategias en el modo "Lento (optimización completa por fuerza bruta)" - ¿a qué valor total de pasos de optimización cambia a optimización genética?
 
Andrey Khatimlianskii:

Encontré esta correspondencia, y creo que la leí cuando se produjo - el resultado es la prohibición de los miembros, por eso quería encontrar la fuente original

He probado en el modo de búsqueda completa por un parámetro - los pases se numeran fuera de la secuencia, en la búsqueda completa general - funciona de acuerdo con alguna lógica de los desarrolladores, no el concepto semántico

 
Igor Makanu:

probado en el modo de búsqueda completa por un parámetro - los pases se numeran fuera de la secuencia, en la búsqueda completa general - funciona de acuerdo con cierta lógica de los desarrolladores, no el concepto semántico

Así, las tareas se reparten en paquetes a los agentes.

1-100 al primero, 101-200 al segundo, etc.

Y en los resultados aparecen a medida que van llegando (1, 101, 2, 102, etc.).

Fácil de clasificar.

 
Andrey Khatimlianskii:

Así que las tareas se reparten en paquetes a los agentes.

1-100 al primero, 101-200 al segundo, etc.

Y en los resultados aparecen a medida que van llegando (1, 101, 2, 102, etc.).

Fácil de clasificar.

OK, esa es una buena respuesta, es más o menos correcta, lástima que nunca se encontró la fuente original,

queda por saber a qué número total de pases se incluirá GA, hasta ahora parece que 100 000 000 pases, para mis tareas es suficiente