![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
CopyXXX a la même vitesse que les fonctions iClose/iOpen/iXXXX. Seul iXXX renvoie un élément à la fois, tandis que CopyXXX en renvoie plusieurs et est donc plus efficace et plus rapide.
Probablement, vous ne considérez pas que MT4 copie de force _tout_ l'historique du graphique local dans l'environnement de marché de l'EA local (cache) avant le démarrage de chaque tick handler. Et cela coûte très cher, bien que nous disposions d'une méthode de mise à jour économique de ces informations. La fonction spéciale RefreshRates de MQL4 provoque un rafraîchissement forcé des caches et de l'historique de la carte locale.
L'appel à CopyXXX est beaucoup plus efficace, avec un mécanisme très précis et exact de mise en cache des données précédemment demandées. Par exemple, vous n'avez pas besoin de redemander l'historique profond à chaque tic, mais de le stocker/écrire localement et d'y accéder aussi rapidement que possible.
Si nous comparons les anciennes méthodes d'accès "direct" (qui n'est en fait pas un accès direct) Open/High/Low/Close et le travail avec le tableau local double local[xxxx], ce dernier est plusieurs fois plus rapide. Par conséquent, il est préférable de faire une copie sur soi en local et de disposer ainsi d'un accès local rapide aux données interrogées à plusieurs reprises.
Ce n'est pas un indicateur.
Qu'entend-on par "tick handler" - des fonctions personnalisées comme OnTick ? Pourquoi est-il nécessaire de copier l'ensemble de l'historique et pas seulement les données qui sont apparues ?
Oui, OnTick/OnStart.
Je considère comme une révélation pour beaucoup que l'accès direct au graphique local dans MT4 n'est pas vraiment direct. Il y a deux fois plus de consommation de mémoire et de pertes de synchronisation.
Heureusement, le rafraîchissement du cache est économique, mais il entraîne toujours des coûts de système. Dans MT5, nous nous sommes complètement débarrassés du cache local et la surcharge du système avant l'appel de OnTick/OnStart est moindre.
Oui, OnTick/OnStart.
Je considère comme une révélation pour beaucoup que l'accès direct au graphique local dans MT4 n'est pas vraiment direct. Il y a deux fois plus de consommation de mémoire et de pertes de synchronisation.
Heureusement, nous avons une mise à jour parcimonieuse du cache, mais cela donne quand même des coûts de système. Dans MT5, nous nous sommes complètement débarrassés du cache local et la surcharge du système avant l'appel OnTick/OnStart est moindre.
Il y a un an, nous avons discuté des performances des testeurs MT4/MT5. L'EA standard "MovingAverage" dans MT4 a effectué une seule exécution en une minute dans des conditions de test similaires, tandis que dans MT5 il a fallu 2:34. Pourquoi cette différence d'échelle de temps ? La première chose qui vient à l'esprit est la "modularité" de MT5 et le grand volume d'environnement de négociation que MT5 doit tirer pendant l'exécution.
Modularité, processus externe et meilleure modélisation de l'environnement, adaptés à l'exécution multidevises.