MT5 Para los que se preocupan por la velocidad.

 

Tengo una pregunta: ¿Cómo funcionanlos comandos?

Hay una claseCAccountInfo para trabajar con la cuenta,

¿Cuando accedemos a este comando, la terminal inicia una petición al servidor o esta información se recibe todo el tiempo junto con las comillas y simplemente la tomamos del buffer de la terminal o de un archivo en el disco?

En resumen, ¿cuánto tiempo tarda en ejecutarse este comando? Y si lee del disco, ¿cómo depende del tipo de unidad o SSD?

Texto completo...

En realidad, la información más importante que se necesita operativamente es la presencia de una posición abierta o la falta de ella y también un nivel de precios de una posición abierta.

Entiendo que este análisis debe hacerse en el void OnTrade() - es decir, cuando se abra la posición, esta subrutina se inicializará ?

 
Textos completos, publícalos en este foro.
 

Así que compara el tiempo de solicitud con el tiempo de recepción del valor o de ejecución de la orden. Entiendo que depende de su situación específica (línea de comunicación, por ejemplo).

 

CAccountInfo no accede al servidor comercial, se emite desde la memoria, no sube al disco.

 
zfs:

Así que compara el tiempo de consulta con el tiempo de obtención de un valor o de ejecución de un comando. Entiendo que todo depende de tu situación concreta (línea de comunicación, por ejemplo).

¿Y así probar cada comando de esta manera?

Necesito escribir un EA para una ejecución rápida y para ello necesito entender el proceso y cómo puede resultar. He visto muchas veces que el terminal se cuelga aunque utilice 1 herramienta, 1 EA y un par de gráficos... También he visto otros fallos...aunque puse un SSD rápido en vez de un disco duro hibernado....

 
Renat:

CAccountInfo no accede al servidor de comercio, sale de la memoria, no va al disco.

He especificado mal la función, me interesaPositionGet...().

La posición tiene un conjunto de propiedades disponibles para ser leídas por la funciónPositionGet...().

Gracias.

 
shelandr:

¿Y así probar cada comando de esta manera?

Necesito escribir un EA para una ejecución rápida y para ello necesito entender el proceso y cómo puede resultar. He visto muchas veces que el terminal se cuelga aunque utilice 1 herramienta, 1 EA y un par de gráficos... Además, hay otros fallos... aunque puse un SSD rápido en lugar de un disco duro hibernado...

Compara la hora local antes y después y obtén el rendimiento, depende de muchos factores y es individual para cada uno.

https://www.mql5.com/ru/docs/dateandtime/timelocal
Документация по MQL5: Дата и время / TimeLocal
Документация по MQL5: Дата и время / TimeLocal
  • www.mql5.com
Дата и время / TimeLocal - Документация по MQL5
 
zfs:

Comparar la hora local antes y después y obtener el rendimiento, depende de muchos factores y es individual para cada uno.


https://www.youtube.com/playlist?list=PLIo3S7h2bgAD8afp8iN-MSy5irsL33PfE

Para organizar los contadores y los temporizadores de alta resolución, utilice la funciónGetTickCount(), que da salida a los valores en milisegundos.

¿Sugiere medir en segundos? Incluso los milisegundos también son lentos.

mi contador de milisegundos está siempre encendido, pero si 1 de cada 1000 ciclos falla incluso en un minuto, no puedo cogerlo sin un programa especial.

Ni siquiera puedo coger 1 en un minuto sin un programa especial.

 
shelandr:

https://www.youtube.com/playlist?list=PLIo3S7h2bgAD8afp8iN-MSy5irsL33PfE

Para organizar los contadores y los temporizadores de alta resolución, utilice la funciónGetTickCount(), que da salida a los valores en milisegundos.

¿Sugiere medir en segundos? Incluso los milisegundos también son lentos.

mi contador de milisegundos está siempre encendido, pero si 1 de cada 1000 ciclos falla incluso en un minuto, no puedo cogerlo sin un programa especial.

Además, cuando el terminal se cuelga, el contador no funciona

Hasta ahí funciona, por qué medir lo que no es tangible, el hecho de que su terminal se cuelgue es más bien un bucle infinito en su algoritmo, la presencia de recursividad profunda, más que la velocidad del terminal.

 
zfs:

Hasta ahí funciona, por qué medir algo que no es tangible, el hecho de que tu terminal se cuelgue es más bien un bucle en tu algoritmo, la presencia de recursión profunda, no la velocidad del terminal.

En absoluto - el terminal se cuelga sólo cuando hay 2 eventos - una operación como la modificación de la orden y el movimiento brusco del precio en el instrumento - el servidor de intercambio cierra todas las solicitudes de los clientes y se cuelgan.

Cuando el movimiento de los precios se estabiliza, empieza a atender las peticiones de los clientes.

La razón es que el servidor en esos momentos o no tiene tiempo para procesar las peticiones o lo hace a propósito para no permitir que el cliente reciba un beneficio. Para entender esto, necesitamos un protocolo de intercambio MT%6 con el servidor de las empresas de corretaje.

Por cierto, en este momento la posición no puede ser hackeada ni siquiera desde el terminal - no está disponible...

Cuando no hay movimientos bruscos, el sistema funciona bastante rápido y consigue enviar una posición abierta en un segundo... Pero me gustaría conseguir que el tiempo entre la señal de apertura de una posición y una orden de apertura de posición sea de hasta 100 ms (aunque conozco sistemas con tiempos de 15 ms.

Para ello estoy haciendo mucho trabajo, empezando por actualizar el hardware, el sistema operativo y elegir un proveedor...

МТ5 | Секреты трейдинга
  • admin
  • shelandr.ru
Маленький экскурс. На сегодня наиболее быстрым терминалом,позволяющим строить и запускать автоматически исполняемые стратегии ( роботы или эксперты ) является терминал метатрейдер 5 или сокращённо МТ5. Почему именно так? Есть ведь терминал МТ4… Да есть..и последний год я активно его применял и писал роботов и индикаторы.. Весьма эффективно...
 
shelandr:

En absoluto - el terminal se cuelga sólo cuando hay 2 eventos - operación como la modificación de la orden y el movimiento brusco del precio en el instrumento - el servidor de intercambio cierra todas las solicitudes de los clientes y se cuelgan.

Cuando el movimiento de los precios se estabiliza, empieza a atender las peticiones de los clientes.

La razón es que el servidor en esos momentos o no tiene tiempo para procesar las peticiones o lo hace a propósito para no permitir que el cliente reciba un beneficio. Para entender esto, necesitamos un protocolo de intercambio MT%6 con el servidor de las empresas de corretaje.

Por cierto, en este momento la posición no puede ser hackeada ni siquiera desde el terminal - no está disponible...

Estáis contando historias de terror) 2 eventos no se procesan juntos sino secuencialmente, hay errores y hay que analizarlos y evitarlos) No confundas el rendimiento del servidor con el del terminal.
Razón de la queja: