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
Il serait intéressant de comparer le même script avec d'autres plateformes de trading.
MT4 b1280.
Seulement trois glissades, et elles n'apparaissaient que très rarement. Il est probablement difficile de créer un frein car il n'y a pas de HistorySelect et de CopyTicks.
Ils sont donc tous les deux Haswell, le xeon a une fréquence de fonctionnement beaucoup plus basse, il y aura une dégradation des performances dans les tests de performance et les tests simples, seulement dans l'optimisation multi-fil sera un avantage. Le i3 des derniers modèles devrait être beaucoup plus rapide à faire fonctionner
Demandez aux développeurs l'effet du niveau de cache sur la vitesse et, en général, la vitesse du Zen2 et des derniers intel.
ajouter
Ryzen 3700x que j'ai, vous pouvez faire des tests avec Intel
par exemple avec ce script MQL5\Scripts\UnitTests\Stat\TestStatBenchmark.mq5
le faire tourner en boucle plusieurs fois avec une minuterie
Nous ne parlons pas ici de tests, mais de retards dans l'exécution des commandes. Ce délai est là et il est flottant. Et cela dérange beaucoup le TS et moi.
Seules trois choses sont apparues et elles sont apparues très rarement. Il doit être difficile de créer un frein car il n'y a pas de HistorySelect et de CopyTicks.
J'ai également attendu sur MT4.
TempsLocal en 36 millisecondes. Choisissez un symbole avec un plus grand volume de ticks.
Pour les personnes intéressées, voici les instructions de lecture.
Qui pense que ça ne sera pas touché.
J'ai choisi un symbole avec un plus grand volume.
Je ne vais même pas vérifier. Imaginez le symbole FORTS le plus populaire avec un abonnement en tic-tac. Au lieu de la logique OnTick dans OnBookEvent. Les décalages doivent être terribles.
J'ai besoin de conseils officiels sur ce qu'il faut faire pour minimiser les décalages.
Pour reproduire les freins, vous devez exécuter le script sur plusieurs graphiques à UN caractère - faire en sorte que OnTick soit appelé en même temps. Ensuite, les alertes seront envoyées à chaque tick.
Le graphique de la charge CPU montre que terminal64.exe charge jusqu'à 30 % des huit cœurs logiques. Il s'agit seulement de quatre graphiques EURUSD avec le script en cours d'exécution. Vous pouvez clairement voir combien chaque graphique est chargé à la fois.
Où vont toutes ces ressources ?
Il est facile de répondre à cette question.
Ici, vous copiez beaucoup de données :
Vous donnez en fait une commande pour prendre tout l'historique de trading disponible de la base de données du terminal dans l'environnement EA, pour une utilisation ultérieure. Vous essayez délibérément de faire échouer un éventuel algorithme de mise en cache de requêtes identiques.
Mais vous n'utilisez pas toutes ces données, vous les réinitialisez immédiatement dans la ligne suivante :
Il est évident que la base terminale est ici une ressource partagée avec un accès synchronisé. Et vous y avez délibérément créé des milliers de commandes et d'affaires.
Toutes ces actions sans signification sont répétées 10 fois à chaque tic-tac de plusieurs fils à la fois. Et vous faites délibérément en sorte que ces actions se produisent simultanément à partir de plusieurs fils.
Vous savez donc très bien ce que vous faites et pourquoi, où les ressources sont dépensées, et en même temps vous prétendez que "le retard est causé par une charge excessive du CPU de la part de MT5".
Cela dit, il est clair que vous avez un problème avec votre ordinateur. C'est-à-dire que, oui, vous déplacez activement des quantités importantes de mémoire, mais cela ne devrait pas affecter le temps d'exécution des fonctions, en particulier celles qui ne sont pas liées à HistorySelect() de quelque manière que ce soit.
Dans nos tests b2582, même avec 1000 fois par tick et 5 EA sur des graphiques à un caractère, c'est-à-dire des ordres de grandeur supérieurs à vos conditions par défaut, pas une seule alerte n'a été observée.
Notre système de test : Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Il est facile de répondre à cette question.
C'est ici que vous copiez un grand nombre de données :
Vous donnez en fait une commande pour prendre tout l'historique de trading disponible de la base de données du terminal dans l'environnement EA, pour une utilisation ultérieure. Essayer volontairement de perturber de manière aléatoire l'éventuel algorithme de mise en cache de demandes identiques.
Mais vous n'utilisez pas toutes ces données, vous les réinitialisez immédiatement dans la ligne suivante :
Il est évident que la base terminale est ici une ressource partagée avec un accès synchronisé. Et vous y avez délibérément créé des milliers de commandes et d'affaires.
Toutes ces actions sans signification sont répétées 10 fois à chaque tic-tac de plusieurs fils à la fois. Et vous faites délibérément en sorte que ces actions se produisent simultanément à partir de plusieurs fils.
Vous savez donc très bien ce que vous faites et pourquoi, où les ressources sont dépensées, et en même temps vous prétendez que "le retard est causé par une charge excessive du CPU de la part de MT5".
Cela dit, il est clair que vous avez un problème avec votre ordinateur. C'est-à-dire que, oui, vous déplacez activement des quantités importantes de mémoire, mais cela ne devrait pas affecter le temps d'exécution des fonctions, en particulier celles qui ne sont pas liées à HistorySelect() de quelque manière que ce soit.
Dans nos tests b2582, même avec 1000 fois par tick et 5 EA sur des graphiques à un caractère, c'est-à-dire des ordres de grandeur supérieurs à vos conditions par défaut, pas une seule alerte n'a été observée.
Notre système de test : Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Collègues,
il est temps pour vous de sortir du cercle de modélisation des avions.
Voici les conditions de la bataille : 4 terminaux, environ 300 Expert Advisors, environ 30 instruments. Un tiers d'entre eux sont abonnés aux gobelets. Tout ça sur les FORTS. Simulez dans ces conditions.
Collègues,
il est temps pour vous de sortir du cercle de modélisation des avions.
Voici les conditions de combat : 4 terminaux, environ 300 EAs, environ 30 instruments. Un tiers des EA sont abonnés à des tumblers. Tout cela sur les FORTS. Simulez dans ces conditions.
"Here you go" est accepté sous la forme d'un fichier zip, accompagné d'une description détaillée du problème. Sinon, c'est une conversation vide.
Ce qui est discuté ici est le code de l'EA soumis et l'efficacité de son exécution. Sur la base des problèmes identifiés, des travaux ont été effectués pour optimiser le code du terminal.
"Here you go" est accepté sous la forme d'un fichier zip, accompagné d'une description détaillée du problème. Sinon, c'est une conversation vide.
Dans ce cas, la discussion porte sur le code soumis par le conseiller expert et l'efficacité de son exécution. Le code du terminal a été optimisé pour les problèmes identifiés.
Je n'ai aucun problème, il n'y a rien à envoyer.
fxsaber a des problèmes. Il a déjà écrit 16 pages ici.
Et Mikhaïl a les mêmes problèmes depuis 2014, il a déjà écrit 149 pages : https://www.mql5.com/ru/forum/38456/page149.
Ils sont tous deux suffisamment qualifiés pour vous donner toutes les informations dont vous avez besoin.
Il est facile de répondre à cette question.
C'est ici que vous copiez un grand nombre de données :
Vous donnez en fait une commande pour prendre tout l'historique de trading disponible de la base de données du terminal dans l'environnement EA, pour une utilisation ultérieure. Une randomisation volontaire pour tenter de perturber l'algorithme de mise en cache de demandes identiques.
Vous n'avez pas suivi la chronologie du développement de ce fil, donc vous vous permettez des notes accusatrices dans vos déclarations.
J'ai enlevé la ligne MathRand. Voici un bref compte rendu.
Mais on n'utilise pas toutes ces données, on les jette à la ligne suivante :
Il est évident que la base terminale est ici une ressource partagée avec un accès synchronisé. Et vous y avez délibérément créé des milliers de commandes et d'affaires.
Je le teste sur des comptes réels où les commandes de plus de 10K sont la norme. Il ne s'agit pas de faux ordres car >70% d'entre eux ont été exécutés.
Sur la capture d'écran, d'ailleurs, 9331+576 != 12529.
Toutes ces actions absurdes sont répétées 10 fois à chaque tic-tac à partir de plusieurs fils à la fois. Et vous faites délibérément en sorte que ces actions de plusieurs fils se produisent simultanément.
J'ai des problèmes sur différents personnages. Un seul symbole est proposé pour reproduire le problème plus rapidement.
Répéter 10 fois chaque tic est une nécessité vitale. Puisqu'il est normal qu'un EA contienne une douzaine de CTs avec des majors différentes.
Vous savez donc très bien ce que vous faites et pourquoi, et où vont les ressources, et pourtant vous prétendez que "la latence est due à une charge excessive du CPU de la part de MT5".
Cela dit, il est clair que vous avez un problème avec votre ordinateur. Je veux dire, oui, vous déplacez activement des quantités importantes de mémoire, mais cela ne devrait pas affecter le temps d'exécution des fonctions, en particulier celles qui ne sont pas liées à HistorySelect() de quelque manière que ce soit.
Je ne peux pas vous accuser d'incompétence, mais ce que vous avez écrit, pour ne pas dire plus, suscite la perplexité. HistorySelect est la recherche de quatre index (début/fin pour le tableau des ordres et début/fin pour le tableau des transactions). Les tables sont triées par temps, donc il y a (devrait y avoir) une recherche binaire au pire. Pour 10K ordres, c'est instantané (calculez le logarithme binaire). Quel mouvement de volume de mémoire ! Personne ne parle ici du redoutable HistorySelectByPosition. L'élémentaire HistorySelect est affecté.
Sur nos tests b2582, même avec 1000 fois par tick et 5 EA sur des graphiques à un caractère, c'est-à-dire des ordres de grandeur supérieurs à vos conditions par défaut, pas une seule alerte n'est observée.
Notre système de test : Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Veuillez fournir ici les détails de connexion du compte de trading sur lequel les tests ont été effectués.