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

 
Dmitry Fedoseev:

Sie können so vorgehen: in einer DLL ein Array oder zwei Arrays, eines für den Objektnamen und das andere für den Ereignistyp.

hier!

Ich habe es noch nicht überprüft, aber wenn die Entwickler erweiterte Unterstützung für C#.Net haben, dann funktioniert vielleicht der Austausch von komplexen Datentypen zwischen MT5 und .dll, d.h. Strukturen.

Wenn der Austausch von Strukturen funktioniert, wird die Aufgabe noch einfacher und primitiver.

wir füllen die Struktur mit OrderProfit,OrderTicket,OrderStoploss.... auf dem Tick ...und senden diese Struktur an eine .dll und erhalten eine Antwortstruktur vom Benutzer ... Dann dreht das Formular die visuellen Informationen auf sich selbst, das Terminal selbst.


Tag Konow:

Und dann erstellen Sie einen TOTAL-Speicher innerhalb der .dll.

Mit zunehmender Anzahl von Formularelementen und zunehmender Komplexität des MT5-Programms wird diese Interaktion SCHWER und komplex.

Hmmm, was ist daran kompliziert? Sie trennen die Visualisierung = .dll, separat die MT-Arbeit

schwer zu erklären, haben Sie eine Ahnung, was die Geschwindigkeit des Datenaustauschs durch den Speicher? - Wir sprechen hier nicht von hunderttausend Bytes pro Sekunde, nicht einmal von Millionen, sondern von mehreren Milliarden Bytes pro Sekunde, und Sie sprechen von der Komplexität des Austauschs )))))

 
Реter Konow:

GUT.

Es ist also notwendig:

  1. Erstellen Sie eine DLL.
  2. Verbinden Sie die DLL mit einer Windows-Anwendung über ein Formular.
  3. Schreiben Sie Methoden, die Ereignisse beim Drücken von Schaltflächen und Kontrollkästchen in dll übersetzen.
  4. Schreiben Sie Methoden, um den Zustand von Schaltflächen und Kontrollkästchen in der Witwenanwendung zu ändern.
  5. Gemeinsamen Speicher in der DLL erstellen. Damit beim Zugriff von MT5 das Flag für die Zustandsänderung von Buttons und Checkboxen gesetzt wird. Dann greift die Windows-Anwendung auf den gemeinsamen Speicher zu, liest Flags aus und verwendet sie, um den Zustand des einen oder anderen zu ändernden Formularelements zu ermitteln.
  6. Schreiben eines zyklischen Verweises auf die DLL vom Timer in MT5, um Flags von Funktionsaufrufen zu lesen oder Text in Felder einzugeben.

    Was ist, wenn es Hunderte von Elementen gibt?

    Wie kann man den gemeinsamen Speicher organisieren?

    Was ist, wenn es notwendig ist, nicht nur den gedrückten/freigegebenen Zustand von Elementen in einem Formular zu ändern, sondern auch ihre Farbe (z. B. bei Schaltflächen)?

    Was ist, wenn es notwendig ist, den Text in den Eingabefeldern eines Formulars von МТ5 aus programmatisch zu ändern?


    1. Was ist das Problem? Sie wählen die Art des Projekts aus, wenn Sie es erstellen.

    2. Wie in dem von Igor gezeigten Beispiel zu sehen ist, wird die Verbindung in einer Zeile hergestellt, man braucht den Import nicht einmal zu beschreiben.

    3) Eine Methode wird einmal geschrieben, in einer Datei gespeichert und dann in allen Projekten ohne Änderungen verwendet.

    4. Wahrscheinlich ist das notwendig, aber sie sind einfach. Nicht alle von ihnen sind wahrscheinlich erforderlich sein, die Interaktion zwischen Steuerelementen in c# wird anders sein, und es kann notwendig sein, ein Ereignis zu platzieren, und es wird 100 Tasten auf dem Formular sein.

    (5) Dies hängt mit Punkt 3 zusammen.

    6. Auch eine Linie mit dem richtigen Ansatz in Punkt 3.

    7 - Sie haben die ganze Macht von C# in Ihren Händen, die Skala, von der Sie keine Ahnung zu haben scheinen, ist enorm.

     
    Реter Konow:

    Nichts für ungut, aber es tut mir leid, dass ich vom Thema abweiche.

    Sie nehmen das einfachste Beispiel und extrapolieren davon, weil Sie glauben, dass die Komplexität nicht zunehmen wird. Dies ist ein Irrtum.

    Selbst das einfachste Beispiel, das Sie angeführt haben, ist falsch. Denn zusätzlich zum erstellten Formular müssen Sie auch eine DLL erstellen. Und erstellen Sie dann einen TOTAL-Speicher innerhalb der DLL.

    Wenn die Anzahl der Formularelemente wächst und die Funktionalität des Programms auf MT5 komplexer wird, wird diese Interaktion SEHR aufwändig und kompliziert.

    Ich habe all dies in der Praxis getestet.

    Die Schlussfolgerung ist völlig falsch.

     

    Das Problem ist, dass ich das, wovon ich spreche, WIRKLICH getan habe. Und ich weiß, wie kompliziert es ist, die Interaktion zwischen einem komplexen MT-Programm und einem komplexen Drittanbieterprogramm zu organisieren.

    Und der Laie sagt in der Regel: "Das ist einfach... Wo liegt das Problem? Es ist so, es ist so...".

    Nennen Sie mir ein Beispiel für die Verbindung eines komplexen MT-Programms mit einem komplexen Windows-Formular, bei dem das Programm dies kann:

    1. Ändern Sie den Zustand von Elementen und geben Sie Text in Eingabefeldern aus.
    2. Dabei kann das Programm Text aus den Formularfeldern übernehmen und die Farben der Elemente ändern.
    3. Wo das Programm die Phänomene der Formularfenster steuern kann (einige öffnen und andere schließen).
    Ich kann ein Beispiel dafür liefern, das auf MT vollständig funktioniert.

     
    Реter Konow:

    Das Problem ist, dass ich das, wovon ich spreche, WIRKLICH getan habe. Und ich weiß, wie kompliziert es ist, die Interaktion zwischen einem komplexen MT-Programm und einem komplexen Drittanbieterprogramm zu organisieren.

    Und der Laie sagt in der Regel: "Das ist einfach... Wo liegt das Problem? Es ist so, es ist so...".

    Nennen Sie mir ein Beispiel für die Verbindung eines komplexen MT-Programms mit einem komplexen Windows-Formular, bei dem das Programm dies kann:

    1. Ändern Sie den Zustand von Elementen und geben Sie Text in Eingabefeldern aus.
    2. Dabei kann das Programm Text aus den Formularfeldern übernehmen und die Farben der Elemente ändern.
    3. Wo das Programm die Phänomene der Formularfenster steuern kann (einige öffnen und andere schließen).
    Ich kann ein Beispiel dafür liefern, das auf MT vollständig funktioniert.

    Wenn Sie das täten, würden Sie nicht solche Fragen wie heute stellen. Lernen Sie c# und machen Sie es selbst. Wie man die DLL verbindet und die Methoden aufruft, hat Igor gestern gezeigt.

     
    Dmitry Fedoseev:

    1. Was ist das Problem? Es ist die Wahl des Projekttyps, wenn Sie es erstellen.

    2. Wie in dem von Igor gezeigten Beispiel zu sehen ist, wird die Verbindung in einer Zeile hergestellt, auch wenn der Import nicht beschrieben ist.

    3) Eine Methode wird einmal geschrieben, in einer Datei gespeichert und dann in allen Projekten ohne Änderungen verwendet.

    4. Wahrscheinlich ist das notwendig, aber sie sind einfach. Nicht alle von ihnen sind wahrscheinlich erforderlich sein, die Interaktion zwischen Steuerelementen in c # wird anders sein, und es kann notwendig sein, ein Ereignis zu platzieren, und es wird 100 Tasten auf dem Formular sein.

    (5) Dies hängt mit Punkt 3 zusammen.

    6. Auch eine Linie mit dem richtigen Ansatz in Punkt 3.

    7 - In Ihren Händen ist die ganze Macht von C#, von deren Ausmaß Sie keine Ahnung zu haben scheinen, enorm.

    Dmitry, nutzen Sie die enorme Leistungsfähigkeit von C# und erstellen Sie eine nicht sehr komplexe Anwendung mit einem Formular, das mit der MT-Anwendung interagiert und diese Elemente ausführt:

    1. Ändert den Status von Elementen und gibt Text inEingabefelder aus.
    2. Übernimmt Text aus den Eingabefeldern des Formulars und ändert die Farben der Elemente.
    3. Steuert das Phänomen der Formularfenster (öffnet einige und schließt andere).
    Igor und Sie behaupten, dass es sehr einfach ist. So werden Sie es schnell schaffen. Ich werde ein Analogon vollständig in MT bereitstellen. Und wir werden die Qualität der Ausführung und die Komplexität vergleichen.
     
    Реter Konow:

    Dimitri, nutzen Sie die GROSSE Leistung von C# und erstellen Sie eine nicht sehr komplexe Anwendung mit einem Formular, das mit der MT-Anwendung interagiert und diese Elemente ausführt:

    1. Ändert den Status von Elementen und gibt Text inEingabefelder aus.
    2. Übernimmt Text aus den Eingabefeldern des Formulars und ändert die Farben der Elemente.
    3. Steuert das Phänomen der Formularfenster (öffnet einige und schließt andere).
    Igor und Sie behaupten, dass es sehr einfach ist. So werden Sie es schnell schaffen. Ich werde ein Analogon vollständig in MT bereitstellen. Und wir werden die Qualität der Ausführung und die Komplexität vergleichen.

    Ich habe eine Menge zu tun. Aber Sie können in Ihren Wahnvorstellungen fortfahren.

     

    Und oh ja, ein Wunder, das man beim Programmieren nicht sieht - um etwas zu tun, muss man eine Funktion schreiben, die es tut.

     
    Dmitry Fedoseev:

    Ich habe Dinge zu erledigen. ...

    OK, vielleicht wird Igor es dann tun...

     
    Реter Konow:

    OK, vielleicht wird Igor es dann tun...

    Igor hat schon zu viel gezeigt. Und ich habe zu viel erzählt.