Visual studio sur la plateforme MT4. - page 4

 

Vous pouvez voir à quoi ressembleront les informations techniques et les instructions relatives à la création de l'interface utilisateur du moteur graphique en suivant ce lien :

https://www.youtube.com/watch?v=ciVqJwgIIyg&feature=youtu.be#t=66.940294

 
Реter Konow:

Pour autant que je sache, il n'existe actuellement aucun moyen de transférer une interface créée dans MS Visual Studio vers un graphique de la plateforme MT.

Pourquoi pensez-vous cela ? Eh bien, il y en a, et il y en a plusieurs. Bien que l'on ne sache pas très bien pourquoi ces interfaces devraient être transférées sur des parcelles, si tel est le cas, elles n'existent probablement pas. Mais il est tout à fait réaliste de les réaliser sur le dessus de MT
 
Реter Konow:

...

Cela signifie que l'utilisateur sera complètement isolé du code et du compilateur pour tout ce qui concerne la création de l'interface graphique de son programme, et qu'il ne devra s'occuper que des outils de contrôle visuel proposés par le studio. La conception de l'interface utilisera la technologie "glisser-déposer" et les différentes fenêtres d'options, grâce auxquelles vous pourrez définir les propriétés des modèles de fenêtres et des contrôles prêts à l'emploi.

...

... Ce moteur va ...pour fusionner avec l'application du développeur et effectuer tout le travail graphique.

Mais comment s'intégrerait-elle à l'application du développeur, si ce n'est par le biais du code ? Supposons qu'un programme doive produire un tableau similaire à celui de Market Watch. Ensuite, nous devons lui envoyer l'instruction selon laquelle "EURUSD" doit être affiché dans la cellule "A1", le prix "1.238273" doit être affiché dans A2, etc. Cependant, un ensemble d'outils sera différent d'un terminal à l'autre et, de manière statique, les champs et les noms de tables ne peuvent tout simplement pas être remplis.

Microsoft Visual Studio est tout à fait clair - c'est un complément pratique à la pureEnvironnement logiciel création de l'application. Autrement dit, Visual Studio n'est pas vraiment un environnement de développement visuel, et dans le cas de votre programme, on ne sait pas très bien comment il fonctionnera.

 
Vasiliy Sokolov:

Mais comment s'intégrera-t-elle à l'application du développeur si ce n'est par le code ? Supposons que le programme doive produire un tableau similaire à celui de Market Watch. Il devrait ensuite recevoir une instruction indiquant que "EURUSD" doit être placé dans la cellule "A1", le prix "1.238273" dans A2, etc. Cependant, un ensemble d'outils sera différent d'un terminal à l'autre et, de manière statique, les champs et les noms de tables ne peuvent tout simplement pas être remplis.

Dans Microsoft Visual Studio, c'est clair : il s'agit d'un complément pratique à la version pure du logiciel.environnement logiciel créer des applications. En effet, Visual Studio n'est pas vraiment un environnement de développement visuel, et dans le cas de votre programme, on ne voit pas très bien comment il pourrait fonctionner.

Actuellement, une solution permettant de combiner le moteur graphique et les fonctionnalités de l'application utilisateur est en cours de développement.

Je ne peux que vous présenter le concept général.

Lorsqu'il écrit sa propre application, le développeur devra enregistrer les valeurs des variables renvoyées par ses fonctions personnalisées (par exemple, la valeur du cours acheteur actuel sur "EURUSD") non pas à l'intérieur de son application mais à l'extérieur.

Cela signifie qu'au lieu de leurs propres noms de variables, ils devront écrire l'index d'une cellule de tableau de mémoire partagée (située en dehors de leur programme) et y stocker la valeur renvoyée par la fonction.

Ce tableau global, je l'appelle "noyau de paramètres". Ensuite, l'utilisateur attribuera l'adresse de cette cellule au contrôle du studio. À son tour, le moteur graphique effectue une boucle périodique à travers les objets et examine les adresses des paramètres qui leur sont liés dans le noyau de paramètres. Si une valeur à cette adresse a été modifiée par une fonction utilisateur, le moteur la mettra à jour dans la fenêtre. Ou vice versa - si la valeur a été modifiée par un contrôle, la fonction utilisateur acceptera son traitement.

En substance, cette solution est une symbiose de deux programmes communiquant sur une mémoire partagée, appelée "noyau de paramètres". Les deux programmes, le moteur de l'interface graphique et le programme utilisateur, seront placés sur des graphiques différents à l'intérieur du terminal.

Le seul problème est la création de la mémoire partagée. J'essaie de le résoudre avec MQL, je ne veux pas avoir recours à une DLL, mais s'il n'y a pas d'autre solution, vous pouvez créer une mémoire partagée à cet endroit. Je l'ai déjà fait.

 
Реter Konow:

Le seul problème est de créer la mémoire partagée. J'essaie de résoudre le problème avec MQL, je ne veux pas avoir recours à une DLL, mais s'il n'y a pas d'autre solution, vous pouvez y créer une mémoire partagée. Je l'ai déjà fait.

Une fois que vous avez recours à une DLL, il ne reste plus rien de votre concept. Rien du tout - Pschick. Avec une DLL, et même sans DLL, votre problème peut être résolu sans développer quoi que ce soit. Et c'est le concept de base de la programmation moderne - ne développez rien vous-même, s'il est déjà créé.
 
Yuriy Asaulenko:
Pourquoi pensez-vous cela ? Il y en a, et même quelques-uns. Mais on ne voit pas pourquoi elles, les interfaces, devraient être transférées sur des cartes - si c'est le cas, elles n'existent probablement pas. Mais il est tout à fait réaliste de les superposer à MT.
Veuillez être plus précis.
 
Yuriy Asaulenko:
Une fois que vous avez recours à la DLL, il ne reste plus rien de votre concept. Rien du tout - Pschich. Avec une DLL, et même sans DLL, votre problème peut être résolu sans développer quoi que ce soit.
Veuillez expliquer votre opinion.
 
Реter Konow:
Soyez précis, s'il vous plaît.

Sur quoi faut-il être précis ? Créer des fenêtres dans VS au-dessus de MT ? C'est un birdie - en plus de toutes les fenêtres.

Échanger des données avec VS ? 4 façons au moins.

 
Реter Konow:
Veuillez expliquer votre opinion.
Voir le post précédent, ou soyez plus précis, s'il vous plaît. Des fenêtres de toutes sortes, sans aucun effort.
 
Реter Konow:

Le seul problème est de créer la mémoire partagée. J'essaie de le résoudre avec MQL, je ne veux pas avoir recours à une DLL, mais s'il n'y a pas d'issue, vous pouvez créer une mémoire partagée à cet endroit. Je l'ai déjà fait.

Bien sûr, vous pouvez organiser la communication via DLL, mais personne n'en aura besoin, car le marché interdit toute DLL. La seule façon d'organiser l'échange global de données entre les deux programmes, en termes de MQL standard - est l'échange par le biais de variables globales. Au fait, voici une bibliothèque très sympa pour échanger des données via des variables globales: https://www.mql5.com/ru/code/12786.

En général, il n'est pas très clair pour qui vous créez votre studio. Si pour les développeurs votre solution n'a pas d'API. Personne ne veut traîner une application séparée, avec laquelle le programme échangera des données, surtout pour les programmes placés sur le Marché.

La solution de la licence d'utilisation est aussi, à mon avis, une option très malheureuse. Voici un programmeur qui a développé un programme basé sur votre studio, a payé pour le premier mois de travail, puis au deuxième mois, son programme ne fonctionnera pas, parce que le noyau graphique de votre studio a exigé un autre frais. C'est absurde. Aucun développeur ne baserait son projet sur un paquet qui demanderait constamment des frais supplémentaires. Mais même si nous imaginons que la licence sera achetée sous la forme d'une somme forfaitaire, et que le studio lui-même fera partie de l'application, là encore, on ne sait pas très bien comment cela fonctionnera sur le marché (programme sous licence avec une autre licence à l'intérieur).

Répondez tout de même à la question principale : pour quel public cible votre projet est-il créé ? Pourquoi l'utilisateur moyen aurait-il besoin de votre studio ? Voulez-vous créer Microsoft Word dans MetaTrader 5 ? Bien sûr, c'est cool, mais POURQUOI ? Les gens paient pour des solutions toutes prêtes. Pour les programmes et les algorithmes qui font un travail spécifique. Ils n'ont pas besoin de créer des formulaires. Ils ont besoin de programmes. Et les programmeurs qui écrivent ces mêmes programmes ne peuvent pas utiliser votre studio, car le travail est organisé d'une manière très étrange.

Comprenez qu'à l'heure actuelle, l'accent doit être mis sur le marché. Si vous voulez créer un projet d'infrastructure, vous devez d'abord répondre à la question suivante : "Pourquoi les programmeurs, qui font des affaires sur le marché ou qui travaillent en freelance, commenceront-ils à utiliser mon studio ? Qu'est-ce que ça va leur apporter ?"

Raison: