¿Quizás la visión general del mercado debería ser manejada por la tarjeta de video?
en lugar de basarse en SysListView32, que no es rápido en sí mismo, sino que tiene su propio elemento para la representación, pero con todas las "campanas y silbatos" de la implementación de desplazamiento, clasificación, etc. Otra pregunta - ¿es tan necesario cuando se trabaja de esta forma? y entonces apagarlo durante el periodo de trabajo sería una opción para solucionar este problema (si es que es un problema)
Se ha encontrado que falta el caché de propiedades para los objetos gráficos.
#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279voidOnStart()
{
conststring Name = "ObjectName";
ObjectCreate(0, Name, OBJ_BITMAP_LABEL, 0, 0, 0);
for (int i = 0; i < 10; i++)
_B(::ObjectGetInteger(0, Name, OBJPROP_COLOR), 100); // Повторное обращение к тому же объекту должно быть быстрым, но этого не происходит.ObjectDelete(0, Name);
Print(::ObjectSetInteger(0, Name, OBJPROP_COLOR, 0)); // true для удаленного объекта!
}
Devuelve true sólo si la orden de cambiar las propiedades del objeto gráfico fue enviada con éxito al gráfico, de lo contrario devuelve false. Para obtener más información sobre el error, llame a GetLastError().
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
MT5 y Speed en acción
fxsaber, 2021.03.10 14:53
Un claro ejemplo de lo que ralentiza el Market Watch.
Fíjese en los valores de la columna Procesador (segunda por la derecha).
¿Quizá la tarjeta de vídeo debería encargarse de la visión general del mercado?
¿Quizás la visión general del mercado debería ser manejada por la tarjeta de video?
Especialmente si la MT está en una máquina virtual (no es un caso raro).
¿Quizás la visión general del mercado debería ser manejada por la tarjeta de video?
No hay límite de FPS (Fotogramas por Segundo) en el Terminal. En Market Watch puede ser de 300 fps o más.
Cualquier visualización en los terminales de negociación a fps > 50 es un desperdicio de recursos informáticos.
¿Quizás la visión general del mercado debería ser manejada por la tarjeta de video?
en lugar de basarse en SysListView32, que no es rápido en sí mismo, sino que tiene su propio elemento para la representación, pero con todas las "campanas y silbatos" de la implementación de desplazamiento, clasificación, etc. Otra pregunta - ¿es tan necesario cuando se trabaja de esta forma? y entonces apagarlo durante el periodo de trabajo sería una opción para solucionar este problema (si es que es un problema)
Resultado.
Muy caro. Y un error de la función ObjectSet también.
Cadena de búsqueda: Oshibka 026.
Y un error de la función ObjectSet también.
Cadena de búsqueda: Oshibka 026.
Manipulación de objetos de forma asíncrona
El manejo de objetos es asíncrono
Resulta que ObjectSet siempre tiene que devolver true.
Resulta que ObjectSet siempre tiene que devolver true.
Lee la ayuda:
https://www.mql5.com/ru/docs/objects/objectsetinteger
Valor devuelto
Devuelve true sólo si la orden de cambiar las propiedades del objeto gráfico fue enviada con éxito al gráfico, de lo contrario devuelve false. Para obtener más información sobre el error, llame a GetLastError().
Resulta que ObjectSet siempre tiene que devolver true.
No puedo llegar a la misma conclusión utilizando la lógica.
Anton:
false - sólo si está mal el ChartID. Con el propio ChartID (cero) siempre es cierto.
Hay que esforzarse mucho para causar falsos.