Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
CopyXXX tiene la misma velocidad que las funciones iClose/iOpen/iXXXX. Sólo iXXX devuelve un elemento a la vez y CopyXXX devuelve muchos y, por tanto, es más eficiente y rápido.
Probablemente, no consideras que MT4 copia forzosamente _todo_ el historial del gráfico local en el entorno de mercado del EA local (caché) antes de que se inicie cada tick handler. Y esto es muy caro, aunque tenemos un método para actualizar económicamente esta información. La función especial RefreshRates en MQL4 provoca un refresco forzado de las cachés y del historial del gráfico local.
Llamar a CopyXXX es mucho más eficiente, con un mecanismo muy preciso y exacto para almacenar en caché los datos solicitados previamente. Por ejemplo, no es necesario volver a solicitar el historial profundo en cada tic, sino almacenar/escribirlo localmente y acceder a él lo más rápidamente posible.
Si comparamos los antiguos métodos de acceso "directo" (en realidad no es acceso directo) Open/High/Low/Close y el trabajo con el array local double local[xxxx], este último es muchas veces más rápido. Por lo tanto, es mejor copiarse a sí mismo localmente y luego tener un acceso local rápido a los datos consultados repetidamente.
Esto no es un indicador.
¿Qué se entiende por "tick handler" - funciones personalizadas como OnTick? ¿Por qué es necesario copiar todo el historial y no sólo los datos que han aparecido?
Sí, OnTick/OnStart.
Tomo como una revelación para muchos que el acceso directo al gráfico local en MT4 no es realmente directo. Hay un doble consumo de memoria y pérdidas de sincronización.
Afortunadamente, el refresco de la caché es económico, pero sigue provocando costes en el sistema. En MT5 nos deshicimos completamente de la caché local y la sobrecarga del sistema antes de llamar a OnTick/OnStart es menor.
Sí, OnTick/OnStart.
Tomo como una revelación para muchos que el acceso directo al gráfico local en MT4 no es realmente directo. Hay un doble consumo de memoria y pérdidas de sincronización.
Afortunadamente, tenemos una actualización de la caché que no es necesaria, pero sigue dando costes del sistema. En MT5 nos deshicimos de la caché local por completo y la sobrecarga del sistema antes de la llamada OnTick/OnStart es menor.
Hace un año hablamos del rendimiento de los probadores MT4/MT5. El EA estándar "MovingAverage" en MT4 realizó una sola ejecución en un minuto en condiciones de prueba similares, mientras que en MT5 tardó 2:34. ¿Por qué la diferencia en la escala de tiempo? Lo primero que me viene a la mente es la "modularidad" de MT5 y el gran volumen del entorno de negociación que tiene que tirar MT5 durante la ejecución.
Modularidad, proceso externo y mejor modelización del entorno, adaptados a la ejecución multidivisa.