Errores, fallos, preguntas - página 2612

 
Vladimir Simakov:
¿Está completamente congelado, o el EA se descarga después de algún tiempo? Si es esto último, está buscando un bucle.

Más interesante. No se cuelga en modo de depuración. Pero en el modo completo, se pega.

 
Hola compañeros, ¿alguien sabe por qué el terminal MT4 en android no contabiliza algunas posiciones cerradas en beneficios, aunque sí aparecen en el historial?

¿Tal vez sea un error?
 
fxsaber:

Más interesante. No se cuelga en modo de depuración. Pero en el modo completo, está congelado.

He localizado el problema.

#include <WinAPI\WinAPI.mqh>

#define  GA_ROOT           0x00000002

void OnDeinit( const int )
{
  static const int ControlID[] = {0xE81E, 0x804E, 0x2712, 0x4196};
  
  long Handle = user32::GetAncestor(::ChartGetInteger(0, CHART_WINDOW_HANDLE), GA_ROOT);
                                                                                        
  for (int i = 0; i < sizeof(ControlID) / sizeof(int); i++)                             
    Handle = user32::GetDlgItem(Handle, ControlID[i]);

  ushort Str[6];
  user32::GetWindowTextW(Handle, Str, sizeof(Str) / sizeof(ushort)); // Freeze
}


Usted ejecuta este Asesor Experto en un gráfico y luego lo desmonta a mano. El Terminal se colgará.

La ejecución de este mismo código en cualquier otra función On no se colgará.

 
De repente hay una carpeta en la carpeta Tester para un tercer agente (puerto 3002), que nunca ha existido antes. No he cambiado nada y no he puesto en marcha el gestor. Las carpetas de los otros dos agentes (normales) también tienen archivos frescos de hoy. ¿Qué puede ser? ¿Puedo matar al que sobra?
 
Stanislav Korotky:
¿Puedo clavar el extra?

Podrías eliminar toda la carpeta de Tester, dejando sólo la caché.

 

¿Pueden decirme si esto es un error o no?

struct A { int i; };

struct B : public A { int j; };

void OnStart()
{
  B b;
  
  DebugBreak();
}

Falta el campo i.

 

Hay un problema constante con el terminal:

1- Encendemos los paneles de dibujo y calendario. Colóquelos en línea con el principal.

2 - comprimir el terminal a la mitad de la pantalla

¡3-abre el terminal a pantalla completa y el dibujo y las barras de tiempo aparecen como una "segunda línea"! Así, un gran espacio de la pantalla está ocupado por un vacío inútil.

Pero el terminal debería ser capaz de recordar sus posiciones y restaurarlas.

Además, si tomas el primero de ellos, no tomará 2 a la vez, que es lo que esperas, sino sólo uno... ¡Así que sólo tienes que arrastrarlos uno a uno hacia atrás!

Y, en general, son tan grandes que hay que reducir todo a la mitad o al triple.

Y también sería mejor hacer más delgados los marcos de las ventanas de los gráficos. Ahora son tan convencionales - todos hechos de ladrillos...

Es sólo ergonomía, es una impresión general y una comodidad general.

En nuestro país siempre hay problemas de ergonomía. Se pasa por alto constantemente. Los productos extranjeros suelen ganar en este sentido. No me refiero a los terminales de otros fabricantes, sino en general. Puedes coger la industria del automóvil o la electrónica... Cualquier cosa... Ha sido así desde los tiempos de la URSS y la economía planificada.

¡Sería bueno vencer por fin a esta cosa!

 
Михаил:

¡Y de todos modos - son tan grandes, que necesitan reducir a la mitad / triplicar todo allí!

¿No tienes que pensar en la gente que no puede ver al cien por cien? ¿Se pueden desechar ya? ¿No sería más fácil para ti llevar gafas para que los botones no parezcan tan grandes?

 
Alexey Viktorov:

¿No tienes que pensar en la gente que no puede ver al cien por cien? ¿Se pueden desechar ya? ¿No sería más fácil para ti llevar gafas para que los botones no parezcan tan grandes?

Necesitas un ajuste... Entiendo que hay diferentes tipos de vista. La pantalla puede ser grande o el portátil puede ser pequeño... ¡Por eso necesitas un ajuste! Y para que el terminal no olvide la posición de los elementos...

La gente está cambiando poco a poco los monitores por los televisores... Es muy conveniente. En un televisor, los controles grandes son un desperdicio de espacio. En un portátil, es conveniente tener controles más grandes... Necesitas opciones.

La plataforma ya no es pequeña. Se han hecho muchas cosas complicadas y serias. Y el diseño en muchos aspectos es antiguo, no ha cambiado en mucho tiempo...

 

Pregunta sobre GetMicrosecondCount()

La función GetMicrosecondCount() devuelve el número de microsegundos que han pasado desde que el programa MQL5 empezó a funcionar.

¿Entiendo correctamente que esta función se congela cuando se solicita Cerrar - Abrir - Modificar orden - Posición?


Método de comprobación

Apertura de 20 puestos

Modificación de 20 puestos

GetMicrosecondCount()

Cerrar 20 posiciones

Medida GetMicrosecondCount()


Como resultado, todas las posiciones se cierran a intervalos de 70 000 microsegundos. ¡Los 20, pero si miramos visualmente en el terminal, podemos ver que algunas posiciones están esperando a ser cerradas durante 2-5 segundos!