Diskussion zum Artikel "Die Entwicklung von grafischen Oberflächen für Expert Advisors und Indikatoren auf Basis von .Net Framework und C#" - Seite 2

 
fxsaber:

Leider ist das alles ein dunkler Wald für Nerds wie mich. Ihr Artikel zeigt eine coole Anwendung von Github. Wahrscheinlich ist es nur 1% seiner Fähigkeiten, aber es war nützlich.

Aus den angegebenen Links habe ich nicht verstanden, wie es in MQL5 helfen kann. Wahrscheinlich ist es ein Muss für Programmierer, aber es gibt diejenigen, die weit vom Programmieren entfernt sind, wie ich selbst.

Wenn es einen Artikel zu diesem Thema für MQL5 gäbe, wäre das sehr hilfreich.

Versionskontrollsysteme (alle, nicht nur Github) sind sehr nicht-triviale Dinge. Man kann nicht in fünf Minuten erklären, was es ist und warum man es braucht. Aber die Funktion "Kopieren Sie den Link und erhalten Sie die neueste Version des Projekts" ist eine der Funktionen solcher Systeme, und in der Tat sehr cool.

 
Vasiliy Sokolov:

4) Sie können es auf verschiedene Weise anpassen. Sie müssen nur noch den Namen des Formulars und die Baugruppe, in der es sich befindet, angeben. D.h. Sie können jetzt ein, zwei oder fünf Formulare ausführen. Es gibt keine Beschränkungen.

Ein Beispiel: Wir starten zwei identische Expert Advisors, aber mit unterschiedlichen Formularen. Wird es da nicht zu Konflikten kommen?

Wenn ich Sie richtig verstehe, schlagen Sie vor, dass Sie für jeden Expert Advisor eine andere GuiMT.exe schreiben sollten. Ist das richtig?

 
Igor Makanu:

guter Artikel, aber aus irgendeinem Grund glaube ich nicht, dass er für Anfänger geeignet ist.

Ich glaube nicht, dass ich es noch besser erklären kann. Ehrlich gesagt, ich habe mein Bestes gegeben. Ich habe sogar die Installation des Studios detailliert beschrieben, wie von den Arbeitern gewünscht.

Ein unerfahrener Benutzer muss drei Dinge tun:

  1. Zeichnen Sie das Formular, das Sie benötigen (zeichnen Sie es genau in Visual Studio)
  2. Einen Code für die Ereignisbehandlung in seinem Expert Advisor erstellen (es wird davon ausgegangen, dass der Benutzer zumindest auf einer grundlegenden Ebene mit MQL vertraut ist)/
  3. Verknüpfen Sie das Formular mit dem Expert Advisor über GuiController (geben Sie die richtigen Pfade an, legen Sie Importe fest usw.).

Wenn es schwierig ist - dann haben Sie alles getan, was Sie können, wie man sagt.
 
fxsaber:

Lassen wir zum Beispiel zwei identische EAs laufen, aber mit unterschiedlichen Formen. Werden sie nicht in Konflikt geraten?

Wenn ich Sie richtig verstehe, schlagen Sie vor, dass Sie für jeden EA eine andere GuiMT.exe schreiben sollten. Ist das richtig?

Hmmm. Ich muss darüber nachdenken....

 
Igor Makanu:

HI: ein Formular mit Schaltflächen und ohne Drittanbieter dll ( GuiController.dll ) Benutzer kann ein Formular mit Schaltflächen mit VS2017 Tools buchstäblich in 2 Klicks erstellen: Projekt erstellen - Net Klassenbibliothek und dann Projekt - Windows-Form hinzufügen

Wenn er nicht vertraut mit C# ist, kann er leider nicht. Der von Ihnen zur Verfügung gestellte Code ist ziemlich "einfach", nur ein paar Zeilen: Erstellen Sie einen Thread, weisen Sie ihm einen Delegaten zu und führen Sie ihn dann aus. Und in einem anderen Teil des Programms haben Sie die notwendigen Ereignisse abonniert.... - Alles ist "einfach"...

Meine Hauptidee war, dass der Benutzer ein neues Projekt zeichnen kann, ohne einen Handler-Code hinzufügen zu müssen, was unvermeidlich wäre.

 
fxsaber:

Lassen wir zum Beispiel zwei identische EAs laufen, aber mit unterschiedlichen Formen. Werden sie nicht in Konflikt geraten?

Wenn ich Sie richtig verstehe, schlagen Sie vor, dass Sie für jeden EA eine andere GuiMT.exe schreiben sollten. Ist das richtig?

Kurz gesagt, ja, eine solche Konfiguration führt zu Konflikten. Um dies zu vermeiden, können Sie die ShowForm-Methode überladen:

ShowForm(ulong magic, string assembly, string form_name);

Die Idee ist, dass magic eine eindeutige Synchronisationsnummer enthält, die die Beziehung des Typs <form-expert> widerspiegelt. Kurz gesagt, alles ist lösbar und erweiterbar.

 
Vasiliy Sokolov:

Wenn Sie mit C# nicht vertraut sind, können Sie das leider nicht. Der von Ihnen zitierte Code ist "einfach", nur ein paar Zeilen: einen Thread erstellen, ihm einen Delegaten zuweisen und ihn dann ausführen. In einem anderen Teil des Programms haben Sie die notwendigen Ereignisse abonniert.... - Alles ist "einfach"...

Meine Hauptidee war, dass der Benutzer ein neues Projekt zeichnen kann, ohne einen Handler-Code hinzufügen zu müssen, was unvermeidlich wäre.

Sie haben wahrscheinlich Recht, es ist einfacher für den Benutzer, grafische Elemente in ein Formular in VS2017 zu skizzieren, dann zu überprüfen, indem er seine Kreation in VS ausführt und sicherstellt, dass "alles spinnt", kann er dazu übergehen, die Interaktion des Programms auf .Net und MT5 zu erstellen.

Ich hatte etwas andere Ziele - zu laufen .Net unter MT4, aber MT4 ist schwer zu erreichen korrekte marshalling auf einmal, so stellte sich heraus, dass ich eine .dll zuerst unter MT5 gemacht, und dann integriere ich es in MT4.

Ihr Weg ist wahrscheinlich praktischer, ein wenig später werde ich mich mit dem Projekt auf github vertraut machen, auf jeden Fall ein RIESEN DANKESCHÖN !

 
Igor Makanu:

Sie haben wahrscheinlich Recht, es ist einfacher für den Benutzer, grafische Elemente in ein Formular in VS2017 zu skizzieren, dann zu überprüfen, indem er in VS seine Kreation ausführt und sicherstellt, dass "alles spinnt", kann er dazu übergehen, die Interaktion des Programms auf .Net und MT5 zu erstellen.

Sie haben es richtig verstanden! Deshalb ist das System dreiteilig. Und das Prinzip des "Teile und Herrsche" in Aktion.

Igor Makanu:

Ich hatte etwas andere Ziele - ich wollte .Net unter MT4 laufen lassen, aber es ist schwer für MT4, sofort ein korrektes Marshalling zu erreichen, deshalb habe ich die .dll zuerst unter MT5 gemacht und sie in MT4 integriert.

So hat man immer noch ein professionelles Niveau. Bei MT4 ist das natürlich ein bisschen anders.

Igor Makanu:

Dein Weg ist wahrscheinlich praktischer, ich werde mich später mit dem Projekt auf github vertraut machen, auf jeden Fall ein GROSSES DANKESCHÖN !

Vielen Dank für das Feedback:))))

 
Wir alle warten auf Peter. Mal sehen, wie er meinen Lösungsvorschlag "fachmännisch" beurteilt:)
 

Ja, es ist ein guter Artikel, aber ich bin mir nicht sicher, ob die Redakteure ihn gelesen haben ;-). "Außerdem" wird zusammengeschrieben, aber überall sonst im Text ist es getrennt. Er ist mir aufgefallen, weil ich ihn mehr oder weniger aufmerksam gelesen habe, im Vergleich zu anderen Artikeln.

Einerseits scheint es tatsächlich gut zu sein. Aber auf der anderen Seite ist es etwas umständlich, all das Studio-bezogene Zeug nur für den visuellen Formular-Editor zu holen. Wenn Studio bereits installiert ist - kein Problem.

Ich würde alles in MQL machen, zusammen mit dem Designer (ich habe Ideen, aber ich kann es nicht in die Finger kriegen). Und ich denke, es gibt eine Zwischenoption - mit Studio, aber ohne DLL - Design WPF Formen, lesen XAML in MQL.