Mon approche. Le noyau est le moteur. - page 126
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
Si c'est MT4, alors oui.
Il semble que pour alléger la charge, il faille utiliser OpenCL. Mais MT4 ne l'a pas. Ou tu peux juste le supporter.
Une autre variante consiste à permettre à l'utilisateur de régler la vitesse de redécoupage de l'animation. Dans ce cas, il pourra réduire la charge du processeur lorsque cela est nécessaire et l'augmenter à nouveau s'il le souhaite.
Il semble que vous deviez utiliser OpenCL pour alléger la charge. Mais MT4 ne l'a pas. Ou juste le supporter.
Une autre option consiste à permettre à l'utilisateur de régler la vitesse de redécoupage de l'animation. Dans ce cas, il pourra réduire la charge du processeur en cas de besoin, et l'augmenter à nouveau s'il le souhaite.
Il est intéressant de tester dans MT5 le travail de deux EAs qui sont installés sur des fenêtres différentes mais qui fonctionnent avec les ressources d'une seule fenêtre. Parce que chaque EA a son propre fil et, comme vous le savez, vous ne pouvez pas mettre plus d'un Expert Advisor dans une fenêtre.
Dans MT4, chaque EA a également son propre fil de discussion. Si je ne me trompe pas...
Le fil est différent, mais le processeur est le même pour tous...
Je pense que c'est la raison de la création d'un tableau.
Il y a une autre nuance.
Si l'animation est cyclique (comme un gif), il n'est pas nécessaire de réinitialiser le tableau de pixels en permanence. Vous pouvez passer par un cycle de dessin de l'animation et stocker chaque image dans une ressource. Ensuite, il suffit de basculer l'image. En partie, j'ai implémenté cela et grâce à cela, j'ai obtenu plusieurs vitesses d'animation (au début, la vitesse d'animation était terrible, car à chaque fois je redessinais l'image originale, puis je dessinais une nouvelle image dessus).
Dans MT4, chaque EA a également son propre fil de discussion. Si je ne me trompe pas...
Le fil est différent, mais le processeur est le même pour tous...
Je pense que c'est pour cela qu'ils ont créé une carte graphique.
Juste pour apprécier la différence entre MT4 et MT5, exécutez ce code sur les deux plateformes (le code fonctionne ici et là) et vous verrez que dans MT4 il s'exécute beaucoup plus lentement :
Juste pour apprécier la différence entre MT4 et MT5, exécutez ce code sur les deux plateformes (le code fonctionne ici et là) et vous verrez qu'il est un ordre de grandeur plus lent dans MT4 :
Oui, mettez-le là et là. La différence est d'environ un facteur 10. Exactement parce que dans MT5 les tableaux sont initialisés 10 fois ou plus rapidement. J'ai vérifié.
Cependant, même sur MT4, tout devrait être beaucoup plus rapide. Après tout, vous ne faites que redessiner l'image. C'est différent si vous le traitez de manière répétée dans un tableau.
Je ne sais pas pourquoi c'est si lent sur MT4.
Cependant, le problème est peut-être que vous réinitialisez CHAQUE pixel de l'espace kanvas entier de la taille du graphique.
Dans mon animation, seules les zones individuelles sont dessinées, et la partie principale de l'image est entièrement tirée de la ressource. Vous n'avez pas la partie principale, et l'image est entièrement créée. Par conséquent, il ralentit.
C'est la taille du dessin.
Cependant, c'est peut-être parce que vous réinitialisez CHAQUE pixel de tout l'espace du canevas de la taille du graphique.
Dans mon animation, seules les zones individuelles sont dessinées, et la partie principale de l'image est entièrement tirée de la ressource. Vous n'avez pas la partie principale, et l'image est entièrement créée. Par conséquent, il ralentit.
C'est la taille du dessin.
Quelle différence. Il s'agit d'un exemple volontairement extrême qui démontre clairement les avantages de mt5 dans la vitesse des kanvas. Et ce numéro est une archive de votre invention. C'est pourquoi je dis depuis longtemps : allez au MQL5.
Les inconvénients de MT4, sont ce qui est nécessaire dans le développement. Vous n'avez pas à les fuir. Ils vous obligent à réfléchir et à améliorer vos solutions.
Sur MT5, vous n'avez pas besoin de faire beaucoup d'efforts non plus. Tout fonctionne assez vite comme ça. Par conséquent, la migration vers MT5 est prévue pour la phase finale.
Enfin, le tableau dynamique est terminé. Je dois dire que ce n'était pas facile. Il s'avère qu'il y a beaucoup de nuances.
De plus, ce tableau est dynamique "conditionnellement". C'est-à-dire que le nombre maximal de rangées est prédéterminé. Il n'était pas encore possible de rendre "absolument" dynamique.
Ce tableau comporte 20 lignes possibles. Ainsi, il peut afficher 20 positions ouvertes. Nous pourrions en faire plus, mais c'est juste une démonstration pour le moment.
Cliquez pour voir.
Voici les fichiers de connexion (mis dans l'inclusion), le moteur (dans le dossier indicateurs), et le test.EA (dans le dossier experts) :
Peter, désolé mais votre travail n'est pas accepté car ce que vous avez envoyé est un rare travail d'amateur. Je suis désolé mais il semble que je sois le seul à avoir analysé ce que vous avez envoyé et à part moi, personne ne l'examinera.
Donc, dans l'ordre, la mission était la suivante :
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Mon approche. Core - Moteur.
Vasiliy Sokolov, 2018.12.26 13:29
Peter, voici la mission. Créez un panneau montrant les ouvertures d'ordres en cours dans MT4. Pas besoin de faire une copie complète du panneau du système, affichez le tableau le plus simple avec les propriétés de base des ordres ouverts : prix d'ouverture, direction, profit. Le reste dépend de vous. L'essentiel est que lorsqu'une commande est clôturée, son indication dans votre tableau disparaît également. Et vice versa, elle apparaîtrait dans ce tableau lorsqu'une nouvelle commande est ouverte.
Ce que je vois à la place :
Tout d'abord, les transactions ne peuvent être ouvertes dans votre panel qu'en cliquant sur le bouton acheter/vendre. Si une position est ouverte par la fenêtre standard, la transaction n'apparaît pas.
Deuxièmement, certains ordres sont affichés avec des valeurs vides. Ils sont présents dans le tableau, mais les lignes sont vides.
Troisièmement, (c'est vraiment effrayant), si nous fermons un ordre par le biais du dialogue standard, il ne disparaît pas dans le tableau. Mais le plus triste, c'est que lorsque vous rechargez le panneau, les ordres fermés sont à nouveau affichés comme prétendument ouverts ! Qu'est-ce que c'est ? Pourquoi stockez-vous des informations non pertinentes quelque part et essayez-vous ensuite de les charger ?
Quatrièmement, qu'est-ce que c'est que 20 ordres ? Je n'ai pas un mot sur cette restriction dans ma mission ! Cela a été fait exprès, pour tester votre moteur à travailler dans un environnement dynamique et inconnu jusqu'alors. Le travail n'a pas été choisi au hasard, vous avez modifié mes exigences, afin qu'il cache tous les "angles aigus" de votre moteur. Mais la tâche a été donnée afin de montrer ces angles.
Cinquièmement, vous n'avez pas besoin de le faire si vous fixez un stop loss ou un take profit. Laissez ces champs vides.
Et oui, le bouton pour fermer la position (croix) dans votre panneau ne fonctionne pas non plus.
En bref, Peter. Je suis désolé, mais votre outil est un travail de pirate total. Veuillez le réparer selon les spécifications.
Je vais clarifier la tâche une fois de plus, pour qu'il n'y ait pas de questions :
- Le tableau est dynamique et présente les mêmes ordres que dans l'onglet Commerce. S'il n'y a pas de commandes sur l'onglet, votre tableau ne les affiche pas non plus.
- Le nombre d'ordres affichés dans votre tableau doit être quelconque. Il n'y a pas de limitations venant d'en haut.
- L'ouverture d'un ordre via la fenêtre de dialogue standard devrait faire apparaître l'ordre dans votre tableau. La clôture de la commande par des moyens standards devrait entraîner la disparition de la commande dans votre table.
- Un état non cohérent n'est pas acceptable! Si votre tableau indique une chose, mais que l'onglet Commerce en indique une autre, il s'agit d'une erreur.
Jusqu'à présent, un gros non. J'attends vos raffinements. Et pas de rendu 3D avant d'avoir trouvé la solution !