Mein Ansatz. Der Kern ist der Motor. - Seite 63

 
Es gibt nur wenige Programmierer, die in der Lage sind, zusätzliche Bibliotheken zu erstellen, und die wissen, wie man sie einsetzt.

Programmierer, die ihre eigene Bibliothek schreiben können, sind ebenfalls rar gesät.

Es gibt viele Benutzer, die eine grafische Benutzeroberfläche wünschen. Aber für sie sollte alles einfach sein. So einfach wie zwei mal zwei.
Zu diesem Zweck ist es notwendig, ein separates Projekt zu erstellen, das es Ihnen ermöglicht, als vs

Peter, tu, was du für nötig hältst. Man kann die Nachfrage erst beurteilen, wenn man die Statistiken kennt. Ich meine, wir haben versucht, einen Indikator zu erstellen, um Statistiken über das Konto zu sammeln. Ich wollte mir nur nicht die Mühe machen, weil ich mit dem Rechenteil noch nicht fertig bin.
Obwohl ich sicher bin, dass Ihre GUI einfacher zu programmieren ist als meine, die bereits fertig ist.
Ich ändere ständig etwas, und es ist einfacher für mich, meinen Code selbst zu verwalten, ich möchte nicht, dass jemand anderes das tut.


Aber es gibt nur wenige echte Nutzer, die Ihre Arbeit zu schätzen wissen. Ich kann Ihnen aus eigener Erfahrung berichten.
Ich habe eine kostenlose Bibliothek für Experten erstellt. Eine Bibliothek, die Informationen bereithält. Hier werden nur Informationen angezeigt und Sie können jeden Expert Advisor verwalten.
Es gibt Hunderte von Downloads. Man hat sich schon ein paar Mal bei mir bedankt. China, Brasilien, Thailand und Russland laden es herunter. Das war's.

Ihre Bibliothek wird für Verkäufer nützlich sein, die eine schöne Schnittstelle wünschen. Aber man muss Geschwindigkeit und Bremsen mit Pannen vergleichen. Ich bin darauf gestoßen.

Alles andere ist unbedeutend.
Machen Sie Ihr eigenes Ding. Sie brauchen nichts zu beweisen.
 
Vladislav Andruschenko:
Es gibt nur sehr wenige Programmierer, die handwerklich begabt sind und zusätzliche Bibliotheken verwenden können.

Programmierer, die ihre eigene Bibliothek schreiben können, sind ebenfalls rar gesät.

Es gibt viele Benutzer, die eine grafische Benutzeroberfläche wünschen. Aber für sie sollte alles einfach sein. So einfach wie zwei mal zwei.
Zu diesem Zweck ist es notwendig, ein separates Projekt zu erstellen, das es Ihnen ermöglicht, als vs

Peter, tu, was du für nötig hältst. Man kann die Nachfrage erst beurteilen, wenn man die Statistiken kennt. Ich meine, wir haben versucht, einen Indikator zu erstellen, um Statistiken über das Konto zu sammeln. Ich wollte mir nur nicht die Mühe machen, weil ich mit dem Rechenteil noch nicht fertig bin.
Obwohl ich sicher bin, dass Ihre GUI einfacher zu programmieren ist als meine, die bereits fertig ist.
Ich ändere ständig etwas, und es ist einfacher für mich, meinen Code selbst zu verwalten, ich möchte nicht, dass jemand anderes das tut.


Aber es gibt nur wenige echte Nutzer, die Ihre Arbeit zu schätzen wissen. Ich kann Ihnen aus eigener Erfahrung berichten.
Ich habe eine kostenlose Bibliothek für Experten erstellt. Eine Bibliothek, die Informationen bereithält. Hier werden nur Informationen angezeigt und Sie können jeden Expert Advisor verwalten.
Es gibt Hunderte von Downloads. Man hat sich schon ein paar Mal bei mir bedankt. China, Brasilien, Thailand und Russland laden es herunter. Das war's.

Ihre Bibliothek wird für Verkäufer nützlich sein, die eine schöne Schnittstelle wünschen. Aber man muss Geschwindigkeit und Bremsen mit Pannen vergleichen. Ich bin darauf gestoßen.

Alles andere ist unbedeutend.
Machen Sie Ihr eigenes Ding. Sie brauchen nichts zu beweisen.


Ich danke Ihnen. Ihre Meinung, als Entwickler und Verkäufer mit großer Erfahrung, ist mir sehr wichtig.

 
Реter Konow:


Ich danke Ihnen. Ihre Meinung, als Entwickler und Verkäufer mit großer Erfahrung, ist mir sehr wichtig.

Ich danke Ihnen.
Das Hauptziel ist, dass die Bibliothek den Hauptalgorithmus des Expert Advisors nicht beeinträchtigt.
Mit diesem Problem sah ich mich am Anfang konfrontiert, als ich meine Bibliothek aufbaute.
 
Vladislav Andruschenko:
Ich danke Ihnen.
Das Hauptziel ist, dass die Bibliothek den Hauptalgorithmus von EA nicht beeinträchtigt.
Mit diesem Problem sah ich mich am Anfang konfrontiert, als ich meine Bibliothek aufbaute.

Alle meine Verbindungen sind rein extern. Es hat keinerlei Auswirkungen auf sie.

Sie haben die grafische Benutzeroberfläche in der Auszeichnungssprache gezeichnet. Er wird vom Indikator "Motor" getragen.

Wir haben 2 Dateien mit dem EA verbunden und die Verbindungsdatei ausgefüllt.

Wir haben die Engine mit GUI und dem Expert Advisor gestartet.

Und alles funktioniert.

 
Vladislav Andruschenko:
...

Es gibt auch nur sehr wenige Programmierer, die ihre eigene Bibliothek schreiben können.

...

Da bin ich anderer Meinung. Jeder, der in MQL programmiert, auch Nicht-Profis, wenn sie es schon lange tun, hat ziemlich viele ihrer ursprünglichen Funktionen. Es ist einfach, sie zusammenzufassen und in eine Datei in Form einer Bibliothek zu konvertieren. Ich denke, dass die meisten dazu in der Lage sind.

 
khorosh:

Da bin ich anderer Meinung. Jeder, der in MQL programmiert, auch Nicht-Profis, wenn sie es schon lange tun, hat eine Menge eigener Originalfunktionen. Es ist einfach, sie zusammenzustellen und als Bibliothek abzulegen. Ich denke, die meisten Menschen können das.

Ich spreche nicht von einer Reihe von Funktionen. Ich meine eine Bibliothek mit GUI. Vertrauen Sie mir. Es ist kompliziert, das zu organisieren. Und Peter hat großartige Arbeit geleistet.
 

Ich werde die Aufgabe noch einmal wiederholen:

  1. Das MT-Programm soll den Zustand der Elemente des Fensterformulars ändern (gedrückt/ungedrückt).
  2. Das MT-Programm muss die Farbe der Schaltflächen auf dem Fensterformular ändern.
  3. Das MT-Programm muss Text aus denEingabefeldern des Windows-Formulars übernehmen.
  4. Das MT-Programm muss den Text in den Eingabefeldern des Windows-Formulars setzen.
  5. Das MT-Programm muss die Fenster der Windows-Anwendung öffnen/schließen.

Es ist ziemlich einfach. Sie müssen zwei einfache Formulare in C# zeichnen. Es sollte eine Schaltfläche, ein Eingabefeld und ein Kontrollkästchen geben. Eine DLL hinzufügen. Verbindung mit MT5.

Ich werde mein Analogon in MT erstellen. Die gleichen Formen und Elemente, die die gleichen Funktionen erfüllen. Als Nächstes vergleichen wir die Lösungen in Bezug auf Qualität und Entwicklungspotenzial.

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

Hier ist meine Lösung:


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

Kontrollcode im 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;
   //-----------------------------------------------------------------
  }
//+------------------------------------------------------------------+

Die Dateien sind unten verbunden:

1. Testen Sie die EA-Datei (in den EAs-Ordner installieren, öffnen, speichern, kompilieren, in den Chart setzen).

2. Die Datei "External Connection" (installieren Sie sie in den Ordner "Inclusion").

3. Datei mit den Verbindungseigenschaften (wird in den zugehörigen Ordner installiert).

4. Forum Beispiel 2 Datei mit Fenstercode (nur Ansicht).

5. Engine (im Indikatoren-Ordner installieren und mit dem Test-EA in den Chart einfügen).

 
Ich hoffe, dass meine Gegner ihre Lösung für das Problem der Verbindung eines Windows-Formulars über eine DLL bereitstellen werden.
 
Реter Konow:
Ich hoffe, dass meine Gegner ihre Lösung für das Problem der Verbindung von Windows-Formularen über DLL bereitstellen werden.

Ich habe das Gefühl, dass Sie der einzige sind, der an dieser "besonderen Olympiade" teilnimmt :-)

 

Bitte, im Anhang. Wenn Sie den Expert Advisor starten, öffnet sich ein Fenster, in dem sich zwei Schaltflächen, zwei Textfelder und ein Kontrollkästchen befinden. Die Farbe der Schaltflächen und der Text im ersten Textfeld ändern sich einmal pro Sekunde. Wenn im zweiten Textfeld ein Text eingegeben wird, öffnet der Expert Advisor einen Alarm mit einer Ereignismeldung und diesem Text. Durch Drücken der Tasten wird ebenfalls eine Warnmeldung ausgelöst, wobei die erste Taste das Formular 2 öffnet und die zweite Taste das Formular 2 schließt. Sie können das Formular 2 auch mit einem Kreuz schließen. Das Hauptformular (Formular 1) wird nicht durch ein Kreuz geschlossen, sondern verschwindet, wenn die Verbindung zum EA unterbrochen wird. Das Kontrollkästchen öffnet auch eine Warnmeldung, und es gibt zwei Arten von Ereignissen daraus: 1 und 2 - Häkchen entfernen und ankreuzen.

Die meiste Zeit habe ich damit verbracht, mich an C# zu erinnern (wenn ich etwas wusste:), denn ich habe seit mehr als drei Jahren nichts mehr damit gemacht, und eine Klasse für die Übergabe von Ereignissen zu entwickeln, aber sie ist universell, sie kann in jedem Projekt verwendet werden. Bei der Erstellung einer Benutzeroberfläche zählen jetzt also die Minuten ;).

Wenn Sie sich fragen, wie zeitaufwendig das intern ist, müssen Sie eine Klassenmethode aufrufen, um ein Ereignis an den EA zu übergeben - eine Zeile. Um Steuerelemente von einem EA aus steuern zu können, müssen Sie zwei Methoden schreiben, eine in der Formularklasse und eine in der Ereignisübertragungsklasse, mit jeweils einer Codezeile darin.

Ich habe keine Kontrollkästchen in ihrem EA gemacht - ich bin gelangweilt von ihnen, sie haben bereits Farbe und Text eingestellt - sowohl Textparameter als auch Ints. Die Farbe wird als RGB übertragen, aber wahrscheinlich könnte man das auch mit einer Variable machen, ich habe mich damit nicht näher beschäftigt.

Und es besteht die Vermutung, dass jemand, der sich mit C# und FindowsForms besser auskennt, es doppelt so einfach machen kann - ohne zwei Methoden zum Festlegen der Eigenschaften, sondern mit nur einer, und vielleicht sogar etwas besser.

Nun, die Tore zur unendlichen Welt von C# und FindowsForms sind geöffnet.


Dateien: