Diskussion zum Artikel "Kontinuierliche Walk-Forward-Optimierung (Teil 1): Arbeiten mit Optimierungsberichten" - Seite 2

 
Der Artikel ist interessant. Alles ist klar beschrieben. Ich lerne gerade C#-Programmierung. Ist es möglich, einen Roboter in C# zu schreiben? Und wie kann man das machen, so dass er in Termenal handeln kann? Ich danke Ihnen sehr!
 
Irina Dymura:
Der Artikel ist interessant. Alles ist klar beschrieben. Ich lerne gerade C#-Programmierung. Ist es möglich, einen Roboter in C# zu schreiben? Und wie kann man das machen, so dass er in Termenal handeln kann? Ich danke Ihnen vielmals!

Alles ist möglich, aber es ist viel besser, ihn in MQL5 zu schreiben. Allerdings können Sie es entweder zu Ausbildungszwecken oder für andere Zwecke versuchen. Es gibt mehrere Möglichkeiten, die einfachste und optimalste ist, die gesamte Logik in C# in der Projekt-DLL (dynamische Bibliothek) zu schreiben. Dann deklarieren Sie eine öffentliche Klasse mit einer Reihe von öffentlichen statischen Methoden darin (sie werden als C-Funktionen in MQL5 exportiert). Ungefähr sollte die Klasse eine Methode enthalten, die den Roboter initialisiert, den Roboter zerstört und bei jedem Tick aufgerufen wird (ähnlich wie OnInit, OnDeinit, OnTick). Dann wird der Roboter in MQL5 erstellt, wo die erwähnten statischen Funktionen aus der erstellten DLL exportiert werden, und nach der Kompilierung erhält man folgendes Andocken:
1. MQL5 ruft die Initialisierungsmethode der DLL in OnInit auf. Die DLL initialisiert die Roboterklasse in einer statischen Variablen.

2 MQL5 OnTick ruft die OnTick-Methode der dll auf und erhält als Antwort ein Zeichen zum Verkaufen / Kaufen / Nichtstun. Wenn es notwendig ist, ein Geschäft einzugehen, gehen wir mit dem in MQL5 geschriebenen Code hinein.

3. MQL5 OnDeinit löscht den Roboter, wir rufen die OnDeinit-Methode aus der Dll auf und tun etwas. In C# brauchen Sie keine Klassen zu löschen, Garbige Collector tut es, alles mit Speicher ist dort praktisch automatisiert.

D.h. die Berechnungen sind auf der C#-Seite und der Handel ist auf der MQL5-Seite.

Es gibt auch einige ähnliche APIs für das Terminal, wo der Code aus C# direkt mit MQL5 über Pipes oder andere Verbindungen interagiert. Ich bin sogar auf ein solches Projekt auf github gestoßen, aber meiner Meinung nach ist es einfacher, alles über eine dll zu schreiben.

In der letzten Artikelserie über Optimierungsmanagement habe ich gezeigt, wie man eine dll verwendet, um WPF GUI mit C# zu verbinden. Sie können die gleiche Methode verwenden, um den Roboter nach C# zu übertragen. Vor meinem Artikel haben sie auch über die GUI geschrieben, aber nur WinForms und MQL5, ich habe einen Teil dieses Mechanismus übernommen, ich erinnere mich nicht an den Link zu diesem Artikel, aber er ist auch sehr nützlich. Ich glaube, ich habe irgendwo in diesem Artikel darauf hingewiesen.

Auch im 3. Artikel dieser Artikelserie wird beschrieben, wie man eine Reihe von statischen Funktionen aus einer DLL nach MQL5 exportiert.

Управление оптимизацией (Часть I): Создание графического интерфейса
Управление оптимизацией (Часть I): Создание графического интерфейса
  • www.mql5.com
Вопрос альтернативного запуска терминала MetaTrader уже поднимался в статье Владимира Карпутова, а так же на сайте MetaTrader — существует страница, описывающая порядок работы и альтернативного способа запуска терминала. Оба перечисленных источника легли в основу данной статьи, однако ни в одном из них нет описания как создать удобный и...
 
Hallo!
Bevor ich dieses Programm verwenden kann, muss ich also mit Visual Studio konvertieren?
 
Guilherme Mendonca:
Hallo!
Bevor ich dieses Programm verwenden kann, muss ich es also mit Visual Studio konvertieren?

Hallo. Dies ist der erste Artikel von 5 Teilen, die bereits veröffentlicht sind. Im 4. Teil gibt es das vollständige Programm. Und ja, Sie haben zu kompilieren einige Code es Visual Studio. Wenn sagen, über Code, die wo ateched, um den aktuellen Artikel - so ja, es muss in Visual Studio kompiliert werden.

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