Testeur soutenant les scripts et les conseillers MG4 - page 11

 
Renat:

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.

Qu'entend-on par "tick handler" - des fonctions personnalisées comme OnTick ? Pourquoi voulez-vous copier l'historique complet et pas seulement les données qui apparaissent ?
 
Vinin:
Ce n'est pas un indicateur.
J'ai donné un lien vers un indicateur OOPici.
 
C-4:
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.

 
Renat:

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 discutions 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 l'a fait en 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.
 
C-4:
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.