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

 
Реter Konow:

Ja, ich hab's verstanden. Ich war eingeschüchtert, eingeschüchtert von Cis... :)))))

Eigentlich warst du zu Recht eingeschüchtert. Sharp ist nicht einfach genug, wenn man tief in die Materie einsteigt und versucht, etwas Gutes zu machen.

 

Zeigen Sie ein realistisches Beispiel für die Verwendung dieser Bibliothek?

 

Der Artikel ist super!

 

Dieser Artikel ist ausgezeichnet!

Jeder MQL-Programmierer kann ihn bereits verwenden, um eine GUI in einem professionellen und stabilen Editor zu machen. Und immer wieder und nicht nur in MT verwenden das Ergebnis ihrer Arbeit.

Und wenn es möglich ist, abgeleitete Klassen von Controller zu machen, wird es im Allgemeinen "Schokolade" sein - Expert Advisor wird mit Controller durch High-Level-Pakete kommunizieren ("öffnen Sie Auftrag #NN mit Optionen") Controller wird seine Nachrichten an das Formular geben ("fügen Sie eine Zeile mit Feldern in die Tabelle"). Auf diese Weise wird die Aktivität in die richtigen Teile aufgeteilt. Und der EA handelt nur, und die GUI zeigt an. Und sie können getrennt gemacht/geändert/gemacht werden, sogar von verschiedenen Projekten und sogar von verschiedenen Leuten.

Respekt an den Autor !!!


 
Maxim Kuznetsov:

Und wenn man von Controller abgeleitete Klassen erstellen kann, dann ist das im Allgemeinen "Schokolade".

Sie können einfach Ihre eigene Datenaustauschfunktion in den Quellcode einfügen und sie aufrufen ;)

 
Igor Makanu:

Sie können einfach Ihre eigene Datenaustauschfunktion in den Quellcode einfügen und sie aufrufen ;)

natürlich kann man das...aber diese unkomplizierte Art, es zu tun, führt zu Code-Nudeln und einem Haufen verwelkter Projekte:-) OOP ist genau dafür gemacht, solche Dinge zu verhindern.

Die "Physik" der Kommunikation mit EA und Form sollte im ursprünglichen Controller konzentriert sein. Und Wege, Ableitungen zu machen.

Übrigens, wie wird sich dieses ganze Bündel verhalten, wenn das Formular ersetzt wird?

Meiner Meinung nach besteht der Clou der Technologie darin, dass der Expert Advisor so weiterarbeitet wie bisher (ohne Neukompilierung und vorzugsweise ohne Anhalten), und dass das Formular geändert werden kann.

Die wichtigste Voraussetzung ist, dass der EA handelt. Er ist mit Geld verbunden und sollte so wenig wie möglich berührt werden.

 
Maxim Kuznetsov:

Natürlich kann man das...aber diese unkomplizierte Art, es zu tun, führt zu Code-Nudeln und einem Haufen verwelkter Projekte :-) OOP ist darauf ausgelegt, solche Dinge zu verhindern.

Aus der Sicht eines Perfektionisten hast du zu 100 Prozent recht, aber leider gibt es Fälle, in denen man bei dem Versuch, den Code in allem durchgängig zu machen, nur ein sehr langsames Ergebnis erhält, aber alle möglichen Situationen und Ausnahmen werden berücksichtigt.

SUS: Ich habe gerade datagridview von VS2017 aufgegeben, um es so zu tunen, dass es nicht langsamer wird, wenn ich mit großen Daten arbeite und mindestens einmal in 1 Sekunde aktualisiere... es ist immer noch langweilig, aber wie viele Klassen es in sich gesammelt hat und ein Beispiel für die perfekte Einhaltung der Prinzipien von OOP ist ;)

PS: datagridview source, nur 7000 Zeilen, wieviel mehr an zusätzlichem Code zu sich zieht, will ich gar nicht zählen.

https:// referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/DataGridView.cs


)))

 
Igor Makanu:

Aus der Sicht eines Perfektionisten haben Sie zu 100 Prozent Recht, aber leider gibt es Fälle, in denen wir bei dem Versuch, einen universellen Code in allem zu erreichen, ein perfektes langsames Ergebnis erhalten, aber alle möglichen Situationen und Ausnahmen werden berücksichtigt.

SUS: Ich habe gerade aufgegeben, datagridview von VS2017 einzurichten, so dass es nicht verlangsamen würde, wenn mit großen Daten arbeiten und mindestens einmal alle 1 sec aktualisieren... es immer noch verlangsamt, aber wie viele Klassen es in sich selbst gesammelt hat und ist ein Beispiel für perfekte Einhaltung der OOP-Prinzipien ;)

PS: datagridview Quelle, nur 7000 Zeilen, wie viel mehr zieht bis zu sich zusätzlichen Code, ich will nicht einmal zu zählen.

https:// referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/DataGridView.cs


)))

hier kann man nicht streiten - Microsoft ist ein Meister darin, Software vor den Möglichkeiten der Hardware zu entwickeln :-))

---

Um vom Thema abzulenken - hier fragten Kinder "Wir wollen selbst ein Spielzeug machen" und mussten nach etwas Visuellem suchen. Mit der Maus zeichnen, einfache Regeln aufstellen, ohne auf Python/Lisp/Sharp zurückgreifen zu müssen - und gleichzeitig arbeiten.

Bei all der Fülle der Auswahl kam nur Kodu von microsoft in Frage. Es ist cool, schön, klar, einfach das Ideal von "wie visuelle Programmierung aussehen sollte". Aber es zieht so viele Dinge von Sharp ab und verlangsamt so sehr...ich werde mir einen neuen Computer kaufen müssen :-)

 

Hallo, toller Artikel!

Im Zusammenhang mit dem obigen Artikel haben sich einige Fragen ergeben:

1) Ich habe aus dem Text des Artikels den Eindruck gewonnen, dass nicht nur grafische Schnittstellen auf die gleiche Weise organisiert werden können, sondern auch die Implementierung von fast jeder API, die nicht in MQL5 "passt".

2) Soweit ich weiß, kann man mit der .Net-Plattform Programme in verschiedenen Sprachen schreiben, nicht nur in C#. Vor allem in C++. Ich bin aus verschiedenen Gründen viel näher an dieser Sprache.
Meine Frage ist, ob es möglich ist, eine .Net-Bibliothek in C++ zu schreiben (ich verstehe C++/CLR), so dass MQL5 seinen .Net-Code auf die gleiche Weise wie in Ihrer GuiController-Engine verstehen könnte? Ich meine, dass #include "...dll" und ohne Deklaration von importierten Funktionen?


Das praktische Beispiel, an dem ich interessiert bin, ist folgendes. Heutzutage gibt es Möglichkeiten, Opsensor-Bibliotheken für maschinelles Lernen in VS2017 zu integrieren, und zum Beispiel bietet TensorFlow eine API in C++ mit Unterstützung für GPU-Computing. Ihr Artikel bietet eine großartige Möglichkeit, die C++-Implementierung von TensorFloW (oder einer anderen Bibliothek für maschinelles Lernen) direkt in MQL5 zu integrieren, was mir sehr praktisch erscheint. Das Problem ist, dass ich aus irgendeinem Grund nicht einmal eine Test-C++ dll in MQL5 mit der hier erwähnten Methode importieren kann.


 
AikAcrobatt: Das Problem ist, dass ich aus irgendeinem Grund nicht einmal eine Test-C++ dll in MQL5 mit der hier angegebenen Methode importieren kann.

der Artikel zeigt eine völlig andere Art der MT5 Interaktion mit der "Außenwelt", müssen Sie Signaturen von C++-Funktionen in MT5-Code zu beschreiben und rufen Sie sie als eine reguläre dll, hier ist ein funktionierendes Beispiel, ich habe es vor einem Monat überprüft.

https://www.mql5.com/de/articles/18

HI: tensorflow c# ist perfekt googlebar, hier sind fertige Lösungen für C# https://nugetmusthaves.com/Tag/tensorflow

Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
  • www.mql5.com
Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...