Mon approche. Le noyau est le moteur. - page 63

 
Les programmeurs qui s'échangent les mains et sont capables de mettre la main sur des bibliothèques supplémentaires et de savoir comment les utiliser sont rares.

Les programmeurs qui peuvent écrire leur propre bibliothèque sont également peu nombreux.

Il y a beaucoup d'utilisateurs qui veulent une interface graphique. Mais pour eux, tout doit être simple. C'est aussi simple que deux fois deux.
Pour cela, il est nécessaire de faire un projet séparé qui vous permet de travailler en tant que vs

Peter, fais ce que tu penses être nécessaire. Vous ne pouvez juger de la demande qu'une fois que vous avez établi les statistiques. Je veux dire, nous avons essayé de faire un indicateur de collecte de statistiques de compte avec vous. Je n'ai pas voulu m'embêter parce que je n'ai toujours pas fini la partie calcul.
Bien que je sois sûr que votre interface graphique est plus facile à programmer que la mienne, qui est déjà faite.
Je suis juste en train de modifier constamment et c'est plus facile pour moi de gérer mon code moi-même, je ne veux pas demander à quelqu'un d'autre de le faire.


Mais il y a peu de vrais utilisateurs qui apprécieront votre travail. Je vous le dis d'après ma propre expérience.
J'ai créé une bibliothèque gratuite pour les experts. Une bibliothèque prête à l'emploi pour l'information. qui n'affiche que des informations et vous permet de gérer n'importe quel conseiller expert.
Il y a des centaines de téléchargements. J'ai été remercié à plusieurs reprises. La Chine, le Brésil, la Thaïlande et la Russie le téléchargent. C'est tout.

Votre bibliothèque sera utile aux vendeurs qui souhaitent une interface agréable. Mais il faudra comparer la vitesse et les freins avec les pépins. Je l'ai rencontré.

Tout le reste est sans importance.
Faites votre propre truc. Pas besoin de prouver quoi que ce soit.
 
Vladislav Andruschenko:
Il y a très peu de programmeurs qui sont habiles et peuvent manipuler et utiliser des bibliothèques supplémentaires.

Les programmeurs qui peuvent écrire leur propre bibliothèque sont également peu nombreux.

Il y a beaucoup d'utilisateurs qui veulent une interface graphique. Mais pour eux, tout doit être simple. C'est aussi simple que deux fois deux.
Pour cela, il est nécessaire de faire un projet séparé qui vous permet de travailler en tant que vs

Peter, fais ce que tu penses être nécessaire. Vous ne pouvez juger de la demande qu'une fois que vous avez établi les statistiques. Je veux dire, nous avons essayé de faire un indicateur de collecte de statistiques de compte avec vous. Je n'ai pas voulu m'embêter parce que je n'ai toujours pas fini la partie calcul.
Bien que je sois sûr que votre interface graphique est plus facile à programmer que la mienne, qui est déjà faite.
Je suis juste en train de modifier constamment et c'est plus facile pour moi de gérer mon code moi-même, je ne veux pas demander à quelqu'un d'autre de le faire.


Mais il y a peu de vrais utilisateurs qui apprécieront votre travail. Je vous le dis d'après ma propre expérience.
J'ai créé une bibliothèque gratuite pour les experts. Une bibliothèque prête à l'emploi pour l'information. qui n'affiche que des informations et vous permet de gérer n'importe quel conseiller expert.
Il y a des centaines de téléchargements. J'ai été remercié à plusieurs reprises. La Chine, le Brésil, la Thaïlande et la Russie le téléchargent. C'est tout.

Votre bibliothèque sera utile aux vendeurs qui souhaitent une interface agréable. Mais il faudra comparer la vitesse et les freins avec les pépins. Je l'ai rencontré.

Tout le reste est sans importance.
Faites votre propre truc. Pas besoin de prouver quoi que ce soit.


Merci. Votre opinion, en tant que développeur et vendeur ayant une grande expérience, est très importante pour moi.

 
Реter Konow:


Merci. Votre opinion, en tant que développeur et vendeur ayant une grande expérience, est très importante pour moi.

Merci.
L'objectif principal est que la bibliothèque n'affecte pas l'algorithme principal de l'Expert Advisor.
J'ai été confronté à ce problème au début, lorsque j'ai créé ma bibliothèque.
 
Vladislav Andruschenko:
Merci.
L'objectif principal est que la bibliothèque n'affecte pas l'algorithme principal de l'EA.
J'ai été confronté à ce problème au début, lorsque j'ai créé ma bibliothèque.

Toutes mes connexions sont purement externes. Cela ne l'affecte en aucune façon.

L'interface graphique est dessinée dans le langage de balisage. Il est porté par l'indicateur "moteur".

Nous avons connecté 2 fichiers à l'EA et rempli le fichier de connexion.

Nous avons démarré le moteur avec l'interface graphique et l'Expert Advisor.

Et tout fonctionne.

 
Vladislav Andruschenko:
...

Il y a également très peu de programmeurs qui peuvent écrire leur propre bibliothèque.

...

Je ne suis pas d'accord. Tous ceux qui programment en MQL, même les non-professionnels, s'ils le font depuis longtemps, ont plutôt de nombreuses fonctions d'origine. Il est facile de les regrouper et de les convertir en un fichier sous forme de bibliothèque. Je pense que la plupart sont capables de le faire.

 
khorosh:

Je ne suis pas d'accord. Tous ceux qui programment en MQL, même les non-professionnels s'ils le font depuis longtemps, ont accumulé un grand nombre de fonctions originales. Il est facile de les rassembler et de les classer dans une bibliothèque. Je pense que la plupart des gens peuvent le faire.

Je ne parle pas d'un ensemble de fonctions. Je veux dire une bibliothèque avec une interface graphique. Fais-moi confiance. C'est compliqué à organiser. Et Peter a fait un excellent travail.
 

Je vais répéter la tâche une fois de plus :

  1. Le programme MT doit changer l'état des éléments du formulaire de la fenêtre (pressé/dépressé).
  2. Le programme MT doit changer la couleur des boutons du formulaire de la fenêtre.
  3. Le programme MT doit accepter du texte provenant deschamps de saisie du formulaire Windows.
  4. Le programme MT doit définir le texte dans les champs de saisie du formulaire de la fenêtre.
  5. Le programme MT doit ouvrir/fermer les fenêtres de l'application Windows.

C'est assez simple. Vous devez dessiner deux formulaires simples en C#. Il devrait y avoir un bouton, un champ de saisie et une case à cocher. Ajouter une DLL. Connectez-vous avec MT5.

Je vais faire mon analogue en MT. Les mêmes formes et éléments, et remplissant les mêmes fonctions. Ensuite, comparons les solutions en termes de qualité et de potentiel de développement.

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Voici ma solution :


//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Code de contrôle dans l'Expert Advisor :

void OnTimer()
  { 
   static int q,q2,q3,q4,q5;    q++; q2++; q3++; q4++; q5++;
   //-----------------------------------------------------------------
   //Реализуем изменение цвета кнопки внутри формы.
   //-----------------------------------------------------------------
   if(q == 1)E_Window_1_Button_1(M_COLOR,C'245,245,245');
   if(q == 2)E_Window_1_Button_1(M_COLOR,C'245,0,0');
   if(q == 3)q = 0;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку кнопки.
   //-----------------------------------------------------------------
   if(q2 == 1)E_Window_1_Button_2(STATE,ON);  
   if(q2 == 2)E_Window_1_Button_2(STATE,LOCKED_ON);
   if(q2 == 3)E_Window_1_Button_2(STATE,OFF);
   if(q2 == 4)E_Window_1_Button_2(STATE,LOCKED_OFF);
   if(q2 == 5)q2 = 0;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку чекбоксов.
   //-----------------------------------------------------------------
   if(q3 == 1){E_Window_1_Checkbox_1(STATE,ON);         E_Window_1_Checkbox_2(STATE,LOCKED_ON);  E_Window_1_Checkbox_3(STATE,OFF);} 
   if(q3 == 2){E_Window_1_Checkbox_1(STATE,LOCKED_ON);  E_Window_1_Checkbox_2(STATE,OFF);        E_Window_1_Checkbox_3(STATE,ON);}
   if(q3 == 3){E_Window_1_Checkbox_1(STATE,OFF);        E_Window_1_Checkbox_2(STATE,ON);         E_Window_1_Checkbox_3(STATE,LOCKED_ON);}
   if(q3 == 4)q3 = 0;
   //-----------------------------------------------------------------
   //Реализуем изменение текста в поле ввода:
   //-----------------------------------------------------------------
   E_Window_1_Edit_box_1("Current text: " + MathRand());
   //-----------------------------------------------------------------
   //Реализуем изменение цвета текста в поле ввода.
   //-----------------------------------------------------------------
   if(q4 == 1)E_Window_1_Edit_box_1(T_COLOR,C'145,245,245');
   if(q4 == 2)E_Window_1_Edit_box_1(T_COLOR,C'245,10,0');
   if(q4 == 3)E_Window_1_Edit_box_1(T_COLOR,C'245,20,50');
   if(q4 == 4)E_Window_1_Edit_box_1(T_COLOR,C'245,130,0');
   if(q4 == 5)E_Window_1_Edit_box_1(T_COLOR,C'25,40,20');
   if(q4 == 6)E_Window_1_Edit_box_1(T_COLOR,C'245,170,0');
   if(q4 == 7)E_Window_1_Edit_box_1(T_COLOR,C'245,110,110');
   if(q4 == 8)E_Window_1_Edit_box_1(T_COLOR,C'245,255,0');
   if(q4 == 9)q4 = 0;
   //-----------------------------------------------------------------
   //Реализуем поочередное закрытие/открытие окон:
   //-----------------------------------------------------------------
   if(q5 == 1)W_Window_2(close);
   if(q5 == 5)W_Window_2();
   if(q5 == 10)q5 = 0;
   //-----------------------------------------------------------------
  }
//+------------------------------------------------------------------+

Fichiers connectés ci-dessous :

1. Test du fichier EA (installer dans le dossier EAs, ouvrir, sauvegarder, compiler, mettre sur le graphique).

2. Le fichier de connexion externe (installez-le dans le dossier d'inclusion).

3. Fichier de propriétés de connexion (à installer dans le dossier inclus).

4. Fichier de l'échantillon 2 du Forum avec le code de la fenêtre (affichage uniquement).

5. Engine (installez-le dans le dossier des indicateurs et placez-le sur le graphique avec l'EA de test).

 
J'espère que mes adversaires fourniront leur solution au problème de la connexion d'un formulaire Windows via une DLL.
 
Реter Konow:
J'espère que mes adversaires fourniront leur solution au problème de la connexion du formulaire Windows via DLL.

J'ai l'impression que vous êtes le seul à participer à cette "Olympiade spéciale" :-)

 

S'il vous plaît, dans l'annexe. Lorsque vous lancez le conseiller expert, une fenêtre s'ouvre. Dans cette fenêtre, il y a deux boutons, deux zones de texte et une case à cocher. La couleur des boutons et le texte de la première zone de texte changent une fois par seconde. Si un texte est saisi dans le deuxième champ de texte, le conseiller expert ouvrira une alerte avec un message d'événement et ce texte. Le premier bouton ouvre le formulaire-2, le deuxième bouton ferme le formulaire-2. Vous pouvez également fermer le formulaire 2 avec une croix. Le formulaire principal (formulaire 1) ne peut pas être fermé par une croix, il disparaîtra lorsque l'EA sera déconnecté. La case à cocher ouvre également une alerte et deux types d'événements en découlent : 1 et 2 - décochez et cochez la case.

La plupart de mon temps a été consacré à me souvenir du C# (si j'y connaissais quelque chose :), je n'ai rien fait dans ce langage depuis plus de trois ans et aussi à développer une classe pour passer des événements, mais elle est universelle, elle peut être utilisée dans n'importe quel projet. Donc maintenant, lorsque vous créez une interface graphique, cela compte pour des minutes ;).

Si vous vous demandez combien de temps cela prend en interne, vous devez appeler une méthode de classe pour transmettre un événement à l'EA - une seule ligne. Pour pouvoir contrôler les contrôles à partir d'une EA, vous devez écrire deux méthodes, une dans la classe de formulaire et une dans la classe de transfert d'événement, une ligne de code dans chacune d'elles.

Je n'ai pas fait de contrôles de case à cocher dans leur EA - je m'en lasse, ils ont déjà défini la couleur et le texte - à la fois paramètre de texte et ints. La couleur est transmise en RGB, mais pourrait probablement être faite par une variable, je n'ai pas approfondi la question.

Et il y a une supposition que quelqu'un qui connaît mieux C# et FindowsForms peut le faire deux fois plus facilement - sans deux méthodes pour définir les propriétés, mais avec une seule, et peut-être faire quelque chose de mieux.

Eh bien, les portes du monde infini de C# et de FindowsForms sont ouvertes.


Dossiers :
Raison: