Création d'une interface graphique pour les MQL en mode graphique.

 

J'ai soulevé ce sujet il y a quelques années, lorsque différentes bibliothèques pour la création d'interfaces graphiques ont commencé à se développer rapidement. Beaucoup d'entre eux ont été créés depuis, mais le processus de création est resté au niveau d'il y a 30 ans (qui se souvient encore comment ils ont souffert avec l'interface, en la créant à la main dans Win API ?) Si je me trompe et qu'un tel outil est apparu, j'accepterai volontiers un coup de pied et le reprendrai.

-------

Voici l'exemple le plus simple de VS 2017, C# Windows Forms. À gauche se trouve une barre d'outils de contrôle qui peut être glissée et déposée sur le formulaire.

panneauformulaire

Et voici une partie du code qui est généré pour ce formulaire rudimentaire.

private void InitializeComponent()
        {
            this.btnDoSomething = new System.Windows.Forms.Button();
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            // 
            // btnDoSomething
            // 
            this.btnDoSomething.Location = new System.Drawing.Point(12, 12);
            this.btnDoSomething.Name = "btnDoSomething";
            this.btnDoSomething.Size = new System.Drawing.Size(100, 23);
            this.btnDoSomething.TabIndex = 0;
            this.btnDoSomething.Text = "Do something";
            this.btnDoSomething.UseCompatibleTextRendering = true;
            this.btnDoSomething.UseVisualStyleBackColor = true;
            // 
            // textBox1
            // 
            this.textBox1.Location = new System.Drawing.Point(12, 53);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(100, 20);
            this.textBox1.TabIndex = 1;
            this.textBox1.Text = "Hello MQL5!";
            this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6 F, 13 F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(133, 98);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.btnDoSomething);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        protected System.Windows.Forms.Button btnDoSomething;
        private System.Windows.Forms.TextBox textBox1;

Je me demande donc, qui accepterait un projet dans lequel un tel code serait analysé et un code pour les graphiques basé sur l'une des bibliothèques présentées sur ce site ?

Cela fait plus d'un an que j'écris un article dans la section "Manger et gagner en MQL5" sans le nom de l'auteur.

55Réécriture et modification automatique des codes sources MQL5 à l'aide deRegularExpressions.
Obtenir la liste des fonctions, des variables globales, des définitions, des classes, etc.

Et pourquoi personne ne le prend ? Parce que personne n'a besoin de cette analyse. Le marché dispose d'un programme brillant, Doxygen, qui est perfectionné et amélioré depuis plus de 10 ans. Et personne n'a envie d'essayer d'en créer une copie pathétique (qui sera certainement pathétique en comparaison). Et un article est récemment paru sur le sujet de la création automatique de documentation...

Donc,

  1. S'il existe déjà un tel projet.
  2. Qui serait intéressé par la création d'une telle interface graphique ?
J'ai fait exprès de créer une branche séparée, car elle se perd rapidement dans la branche "Manger et gagner dans MQL5", et peu de gens la lisent.

 

Une interface graphique pour METATRADER est une possibilité lointaine, pour le moment. Pour créer des panneaux - ok. Mais vous n'avez pas besoin de plus.

Bien que je sois d'accord avec vous, un MetaEditor "visuel" serait une bonne idée.

 
Vladislav Andruschenko:

Une interface graphique pour METATRADER est une possibilité lointaine, pour le moment. Pour créer des panneaux - ok. Mais vous n'avez pas besoin de plus.

Bien que je sois d'accord avec vous - le MetaEditor "visuel" serait parfait.

Pourquoi faut-il que vous compliquiez tout, en particulier MT-MQL ? MQL, à mon avis, est déjà trop compliqué. Vous pouvez créer vos panneaux dans VS et tout ce dont vous avez besoin, par exemple par le biais de DLL. Il n'est pas nécessaire de faire un monstre de MT-MQL)).

 
Yuriy Asaulenko:

Pourquoi rendre les choses si compliquées, MT-MQL en particulier ? MQL, à mon avis, est déjà trop compliqué. Vous avez VS, et vous pouvez y créer vos panneaux et tout ce dont vous avez besoin, par exemple via ces DLL. Il n'est pas nécessaire de faire de MT-MQL un monstre. Il n'est pas nécessaire de faire de MT-MQL un monstre)).


Je suis juste en train de rêvasser :-) (VISUAL pour les systèmes de graphiques et de trading), il est clair qu'il existe déjà de nombreux concepteurs.....

Pour être honnête, j'ai dessiné mon premier panneau dans Photoshop, et il est toujours là...

J'essaie maintenant de dessiner directement dans le terminal, mais je me rends compte que seules quelques personnes l'utilisent.

Et les panneaux personnalisés sont plus faciles à fabriquer individuellement.

Bien que j'aie beaucoup étudié les articles sur les bibliothèques de dessin. Mais j'ai décidé que l'utilisation de ces bibliothèques ne sera utile que pendant 1% du temps et j'ai abandonné...

 
Yuriy Asaulenko:

Pourquoi rendre les choses si compliquées, MT-MQL en particulier ? MQL, à mon avis, est déjà trop compliqué. Vous avez VS, et vous pouvez y créer vos panneaux et tout ce dont vous avez besoin, par exemple via ces DLL. Il n'est pas nécessaire de faire de MT-MQL un monstre. Il n'est pas nécessaire de faire de MT-MQL un monstre)).

J'avais l'habitude de le faire de cette façon. Vous trouverez ci-dessous un exemple de panneau de configuration simple pour un EA multi-stratégies (oh là là !). Mais ça coupe le marché !

Et je ne comprends pas, qu'est-ce que MT a à voir avec ça ? Je suggère juste de faire un script de parser en MQL. Vous pouvez le faire en C++/C#, mais alors ils ne le prendront même pas dans les articles.

Oups, j'ai oublié la photo, la voici, une simple photo.


 
Vladislav Andruschenko:


Je ne fais que rêver :-) (VISUAL pour les systèmes de graphiques et de trading), il est clair qu'il existe déjà de nombreux concepteurs.....

Pour être honnête, j'ai dessiné mon premier panneau dans Photoshop. Et il est toujours là...

J'essaie maintenant de dessiner directement dans le terminal, mais je me rends compte que seules quelques personnes l'utilisent.

Et les panneaux personnalisés sont plus faciles à fabriquer individuellement.

Bien que j'aie beaucoup étudié les articles sur les bibliothèques de dessin. Mais décidé que l'utilisation de ces bibliothèques ne sera utile que dans 1 % des cas, j'ai abandonné.

Vous vous passez donc de toute bibliothèque ? Je viens d'être chargé de réaliser un panneau assez complexe, et je pense qu'il sera reconfiguré de nombreuses fois.

Jusqu'à présent, j'ai décidé de faire une visualisation dans VS, puis d'utiliser mes mains pour obtenir les coordonnées et les tailles des contrôles, puis encore, d'utiliser mes mains pour les traduire dans une bibliothèque. Pour l'instant, je penche pour les bibliothèques d'Anatoly Kazrsky, il y a fait un travail monstre. Tout sera plus rapide que le code->début->corrections avec résultats enregistrés sur papier->correction du code... etc.

 
Alexey Volchanskiy:

Donc vous le faites sans aucune bibliothèque ? Juste ici, j'ai la tâche de faire un panneau assez complexe, et, je le sens, il sera reconfiguré plusieurs fois.

Jusqu'à présent, j'ai décidé de faire une visualisation dans VS, puis de récupérer les coordonnées et les dimensions des contrôles, et de les traduire à la main dans une bibliothèque. Pour l'instant, je penche pour les bibliothèques d'Anatoly Kazrsky, il y a fait un travail monstre. Tout sera plus rapide que code->début->corrections avec résultats enregistrés sur papier->correction du code... etc.

Mieux vaut utiliser la bibliothèque de Kazarsky,

Mais oui, j'ai des bibliothèques pour le dessin. Elles sont standard. (pas la même que celle de Kazarsky, bien sûr :-))

Je n'utilise que très rarement le dessin, il est donc inutile de perdre du temps à ce sujet.


J'avais l'habitude de dessiner dans photoshope, puis j'ai dessiné dans Delphi et ensuite organisé selon les coordonnées :-)

Je ne le ferais pas maintenant, mais j'ai dessiné mon premier panneau en MQL à cette époque (auparavant, il était en Delphi).

J'ai encore peur d'y toucher :-) Je le mets à jour, bien sûr, et j'ai déjà optimisé le code 10 fois. Mais je pense dessiner le même panneau avec les boutons habituels.......

mais il y a des avantages et des inconvénients : les boutons ordinaires ne sont pas beaux : Kanvas ne fonctionne pas dans le testeur ................

 
Alexey Volchanskiy:

C'est ce que j'ai fait avant. Vous trouverez ci-dessous un exemple de panneau de configuration simple pour un EA multi-stratégie (oh bang !). Mais cela coupe le marché !

Et je ne comprends pas ce que MT a à voir avec ça ? Je suggère juste de faire un script de parser en MQL. Vous pouvez le faire en C++/C#, mais alors ils ne le prendront même pas dans les articles.

Oups, j'ai oublié la photo, la voici, une simple photo.

Si vous voulez l'utiliser dans Market, vous devrez faire avec. Seulement MQL. ((

Tu n'en as pas besoin pour toi, tu n'en auras pas besoin avec VS.

 
Yuriy Asaulenko:

Si c'est pour le marché, ouais, bada bada. Seulement MQL. ((

Et pour vous, vous n'en avez pas besoin, et avec VS tout est simple.

C'est très simple et rapide avec VS. J'ai même réalisé ce panneau avec un accès partagé aux fichiers, et cela a bien fonctionné et rapidement.

Je ne sais même pas, peut-être devrais-je en créer rapidement un en utilisant VS et le traduire en MQL après avoir éliminé les maladies infantiles ?

Mais comme je ne pourrai pas créer une branche pour mon panneau en C# sur ce forum. Alors, je peux recommencer à travailler sur le forum rouge et m'impliquer dans ces bêtises ? Qu'en pensez-vous, chers modérateurs ? Puis-je afficher le panneau en C# comme une partie du projet?

Bien sûr, je peux poster la partie MQL5 dans une branche et le panneau C# dans le blog. Mais c'est un peu humiliant, comme si j'en étais privé et que je devais me cacher dans le blog.

 
Alexey Volchanskiy:

C'est très simple et rapide avec VS, j'ai même fait ce panneau avec un accès via des fichiers partagés et cela a bien fonctionné et rapidement.

Je ne sais même pas, peut-être devrais-je créer rapidement une variante VS et la traduire en MQL après avoir éliminé les maladies infantiles ?

Mais comme je ne pourrai pas créer une branche pour mon panneau en C# sur ce forum. Donc, je vais devoir travailler en rouge à nouveau, et je vais devoir m'engager dans ces bêtises ? Qu'en pensez-vous, chers modérateurs ? Puis-je afficher le panneau en C# comme une partie du projet ?

Bien sûr, je peux poster la partie MQL5 dans une branche et le panneau C# dans le blog. Mais c'est un peu humiliant, comme si j'en étais privé et que je devais me cacher dans le blog.

J'aime beaucoup le partage de fichiers - tout est simple, rapide et facile à utiliser. Avec RAM-Disk, je n'ai pas besoin de DLL ou de gadgets du tout, c'est >1,5 GBytes/seconde. Assez pour tout, et même pour les restes)).

Et toutes sortes de DLL peuvent être créées ultérieurement, à votre guise, si nécessaire.

 
Alexei, est-il possible de travailler avec votre panneau en C# de manière à ce qu'il soit affiché dans la fenêtre du graphique ?