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
Stade actuel du développement de VE :
J'attends avec impatience la prochaine mise à jour du développement.
Cela a l'air génial, Peter. Je pense que lorsque vous utilisez VE pour vous construire vous-même, cela vous donnera des indications précieuses sur la façon dont fonctionne votre conception de l'interface utilisateur.
J'attends avec impatience la prochaine mise à jour.
L 'interface utilisateur est toujours 100 % purement MQL.
Tout est basé sur des vecteurs, entièrement modulable et adaptable à n'importe quel affichage.
Tous les affichages visuels fonctionnent de manière asychrone au sein d'une classe centrale qui gère et distribue tous les événements MQL aux objets, en fonction de leurs paramètres d'abonnement et de leurs priorités d'événement.
J'espère que je ne vole pas le fil très intéressant et pardonnez-moi Peter si je le fais, ce ne sera pas une discussion, j'espère juste une réponse courte pour l'intérêt théorique - voulez-vous dire que vous avez une sorte de classe statique qui connaît (garde la trace de tous les pointeurs d'objets) tous les objets de classe instanciés dans le système et chaque objet a accès à s'abonner aux événements requis sur cette classe statique de contrôle et cette classe singleton statique de contrôle délivre simplement les événements à tous les objets ? Si c'est le cas, considérez-vous que c'est correct en termes de POO ou peut-être est-ce une programmation événementielle acceptable ? Puisque vous avez écrit sur le sujet, je suppose que vous voudriez accepter des questions à ce sujet et si oui, s'il vous plaît, soyez aussi bref que possible pour ne pas détourner ce fil, bien qu'il soit lié.
J'espère que je ne vole pas le fil très intéressant et pardonnez-moi Peter si je le fais, ce ne sera pas une discussion, j'espère juste une réponse courte pour l'intérêt théorique - voulez-vous dire que vous avez une sorte de classe statique qui connaît (garde la trace de tous les pointeurs d'objets) tous les objets de classe instanciés dans le système et chaque objet a accès à s'abonner aux événements requis sur cette classe statique de contrôle et cette classe singleton de contrôle statique délivre simplement les événements à tous les objets ? Si c'est le cas, considérez-vous que c'est correct en termes de POO ou peut-être est-ce une programmation événementielle acceptable ? Puisque vous avez écrit à ce sujet, je suppose que vous voudriez accepter des questions à ce sujet et si oui, s'il vous plaît, soyez aussi bref que possible pour ne pas détourner ce fil, bien qu'il soit lié.
Oui, c'est exactement de cela qu'il s'agit.
Brève description :
Le noyau reçoit tous les événements MetaTrader et n'importe quel objet peut s'abonner au noyau. Par conséquent, la classe CObject a également dû être redessinée/modifiée, de sorte que tout objet dispose d'une fonction nommée "public : virtual void OnEACycle(CCycleParams * cpm)". Un tel cycle pourrait alors être un événement graphique, init, deinit, etc. Chaque objet peut également avoir une fonction "public : virtual void OnEATick()". L'effet secondaire est que vous obtenez une fonctionnalité supplémentaire, car vous pouvez vous abonner à la fin de n'importe quel cycle, quel qu'il soit. C'est très utile pour fermer un fichier ou terminer toute autre chose, simplement à la fin d'un cycle.
De plus, chaque objet CObject peut avoir des enfants et aussi des abonnés. Cela signifie qu'un objet peut déclencher ses propres événements, par exemple lorsque qqch. a été cliqué ou autre. Il suffit alors d'exécuter un object.SubEvent(STH_CLICKED, params). De cette façon, l'objet lui-même ne se soucie pas de savoir qui a besoin de cette information, elle est juste distribuée aux abonnés, ils reçoivent un OnSubEvent(int msg, CSubEventParams * sep) et peuvent en faire ce qu'ils veulent.
Dans l'ensemble, cette façon est plus proche de la façon de coder que nous connaissons en C#, où l'on utilise simplement .Invoke() pour déclencher des événements et ne pas se soucier de qui les reçoit.
En fait, ce n'est pas si compliqué à mettre en œuvre, mais bien sûr les détails sont le défi à la fin, puisque c'est un noyau/base pour chaque EA ou indicateur pour l'avenir qui doit fonctionner dans tous les scénarios.
Et un EA final ressemble alors à ceci :
Si j'avais eu le temps, j'aurais écrit un article et fourni les sources. Ce n'est pas un secret, il n'y a pas de magie du tout.
J'ai regardé l'interface graphique que vous avez créée. Je l'aime beaucoup. Dites-moi, l'avez-vous écrite vous-même ou avez-vous utilisé des bibliothèques MQL ?
Je vous remercie.
Non, pas de bibliothèques. Je l'ai conçue moi-même à partir de zéro. En fait, seul CCanvas des originaux a été adapté, rien d'autre.
Merci.
Non, pas de bibliothèques. Je l'ai développé moi-même à partir de zéro. En fait, seul CCanvas est adapté des originaux, rien d'autre.