Errores, fallos, preguntas - página 2742

 
fxsaber:
¿Qué banderas y trampas puede haber si de un programa MQL algo debe ser anexado al archivo (RAM-drive) todo el tiempo, y de los demás (y otro terminal) para leer de la misma leer todos estos datos anexados?

La seguridad de los datos debe estar garantizada, pero creo que hay al menos dos problemas:

- no se garantiza la sincronización durante el acceso simultáneo, es decir, es posible releer datos ya leídos y al mismo tiempo impedir que se escriban nuevos datos - colisiones

- no hay medios para detectar y controlar tal situación

como siempre - semáforos o escriba su propio gestor de escritura

ZS: parece que hay una oportunidad para poner en la memoria incrustado SQLite, al menos allí para controlar el estado de la base de datos puede

 
Alexey Kozitsyn:

En el Cinco, los indicadores funcionan de forma similar, pero todo es normal, sin congelación.

No, en el Cinco los indicadores están en el flujo de la herramienta.

 
Bug MT5 (build 2340) no hay acceso a operator= por defecto desde el objeto puntero.

class A{
public:
   char data;
   
   // uncomment to fix the bug
   //void operator=(A &a){this.data = a.data;}
};


// bypassing the bug
template<typename P1, typename P2>
void unref_assignment_operator(P1* &p1, P2* &p2){
   struct Functor{
      static void call(P1 &p1, P2 &p2){
         p1 = p2;
      }
   };
   Functor::call(p1, p2);
}

   
void OnStart(){      
   A a1;
   A a2;
   
   a2.data = 0x1;
   a1 = a2;
   printf("%d", (a1.data));               // Ok, 0x1
   
   
   A* a_ptr_1 = &a1;
   A* a_ptr_2 = &a2;
   
   a2.data = 0x2;
   a1.operator=(a2);                      //'operator=' - undeclared identifier 
   printf("%d", (a1.data));               
   
   
   a2.data = 0x3;
   unref_assignment_operator(a_ptr_1, a_ptr_2); 
   printf("%d", (a1.data));               // Ok, 0x3
}
 

Por favor, arregla el error- El terminal MT se bloquea cuando se intenta depurar una función de estructura estática.
Incluso en el ejemplo anterior, si capturas un punto de interrupción en la línea "
p1 = p2;" se bloqueará el terminal.

 
Andrey Khatimlianskii:

No, en el Cinco los indicadores están en el flujo de la herramienta.

Lo siento, estoy confundido. Estaba pensando que este es el comportamiento en Quaternary (es decir, como en Quaternary - en el flujo de la herramienta).

¿Y dónde está escrito lo del hilo de la interfaz común para los indicadores de MT4?

Añadido:

Indicador

Todos los indicadores comparten los recursos del hilo de la interfaz gráfica

Un bucle infinito en un indicador detendrá el trabajo del terminal


Gracias por el consejo, lo encontré.

Entonces el depurador no fue pensado originalmente en MT4. Tendrían prohibido llamarlo por indicadores al menos.

 

No sé exactamente dónde informar del fallo... Intentaré informar aquí. La esencia del problema en MT5: cuando se utiliza la escala del gráfico a través de los botones "+" o "-", el gráfico no vuelve a su posición normal (sangrado desde el borde derecho de la pantalla). Tengo que devolverlo manualmente todo el tiempo.

En MT4 no existe ese problema. Lo comprobé con varios corredores...

Después de pulsar el botón "+"


Muy incómodo... ¿Podemos arreglarlo?

 
Alexey Kozitsyn:

Entonces resulta que el depurador no fue diseñado originalmente en MT4. Al menos tendrían prohibido llamarlo por indicadores.

Pero no estaba ahí desde el principio. Así que no lo pensaron bien.

 
Roman Agafonkin:

No sé exactamente dónde informar del fallo... Intentaré informar aquí. La esencia del problema en MT5: cuando se utiliza la escala del gráfico a través de los botones "+" o "-", el gráfico no vuelve a su posición normal (sangrado desde el borde derecho de la pantalla). Tengo que devolverlo manualmente todo el tiempo.

En MT4 no existe ese problema. Lo comprobé con varios corredores...


Muy incómodo... ¿Podemos arreglarlo?

Cuando se utiliza la escala, la sangría vuelve a su estado normal en el siguiente tick entrante.

 
SEM:

Si se utiliza la escala, la sangría vuelve a ser normal en el siguiente tick entrante.

Esa es la cuestión, no lo hace... en mt4 está bien... en mt5 - por desgracia, es glitchy ...
Vale, grabaré un vídeo y lo añadiré a este hilo.