Diskussion zum Artikel "Methoden zur Fernsteuerung von EAs"

 

Neuer Artikel Methoden zur Fernsteuerung von EAs :

Der Hauptvorteil der Handelsroboter liegt in der Möglichkeit, dass sie 24 Stunden am Tag auf einem entfernten VPS-Server arbeiten. Aber manchmal ist es notwendig, in ihre Arbeit einzugreifen, ohne dass es einen direkten Zugriff auf den Server gibt. Ist es möglich, EAs fernzusteuern? Der Artikel schlägt eine der Möglichkeiten vor, EAs über externe Befehle zu steuern.

Verschiedene automatisierte Systeme für den Handel an den Finanzmärkten sind in unserem digitalen Zeitalter weit verbreitet. Die Hauptvorteile elektronischer Expert Advisors (EAs) können 24 Stunden am Tag einwandfrei die Algorithmen ausführen. Das virtuelle Hosting ermöglicht den autonomen Einsatz von EAs rund um die Uhr.

Leider funktionieren nicht alle EAs in allen Marktsituationen gleichermaßen gut. In diesen Fällen müssen Händler sie oft manuell aktivieren und deaktivieren. Dies ist einfach, wenn ein Nutzer direkten Zugriff auf das Terminal hat. Aber was ist, wenn Sie keinen schnellen Zugriff auf das Terminal mit einem funktionierenden EA haben? In solchen Fällen wäre es gut, den EA-Betrieb fernsteuern zu können. Betrachten wir eine der möglichen Methoden der EA-Fernbedienung im Terminal.


Autor: Dmitriy Gizlyk

 

Vielen Dank für den Artikel. Besonderen Dank für den Link zu der Bibliothek der wechselnden Zustände des Expert Advisors. Arbeiten durch Vorlagen ist eine sehr originelle Lösung in der Tat.

Aber um ehrlich zu sein, als ich den Titel sah, dachte ich, es würde etwas über Client-Server oder Sockets sein....

Wenn Sie mehrere Konten haben, werden Sie es leid sein, überall schwebende Aufträge zu platzieren.

Irgendwo im Forum gab es eine Bibliothek für die Interaktion über Telegramm. Dort gibt es mehr Möglichkeiten, und alle Befehle können durch Drücken vorbereiteter Tasten im Bot gesetzt werden.

 
Sergey Likho:

Vielen Dank für den Artikel. Besonderen Dank für den Link zu der Bibliothek der wechselnden Zustände des Expert Advisors. Arbeiten durch Vorlagen ist eine sehr originelle Lösung in der Tat.

Aber ehrlich gesagt, nachdem ich den Titel gesehen habe, dachte ich, dass es etwas über Client-Server oder Sockets sein würde....

Wenn Sie mehrere Konten haben, werden Sie es satt haben, überall schwebende Aufträge zu platzieren.

Irgendwo im Forum gab es eine Bibliothek für die Interaktion über Telegramm. Dort gibt es mehr Möglichkeiten, und alle Befehle können durch Drücken von vorbereiteten Knöpfen im Bot gesetzt werden.

Soweit ich weiß, ist geplant, einen Artikel über die Verwaltung per Telegramm zu verfassen, und es wurde sogar schon ein Autor ernannt. Vielleicht wird der neue Artikel für Sie nützlicher sein.

 
der Einfachheit halber machen wir alle Methoden der Bibliothek öffentlich.
Wir können diesen Trick anwenden, um den ursprünglichen Quellcode nicht zu verändern
#define private public
  #include <fxsaber\Expert.mqh> // https://www.mql5.com/de/code/19003
#undef private

#define  STRING_END "\r\n"
#define  EXPERT_BEGIN ("<expert>" + STRING_END)
#define  EXPERT_END ("</expert>" + STRING_END)
#define  EXPERT_NAME "name="


Um den Expert Advisor zu aktivieren/deaktivieren, müssen wir also nur die Vorlagendatei umschreiben, das Expertmode-Flag auf den von uns benötigten Wert ändern und versteckte Objekte entfernen.

Ich wusste nichts von diesem Flag und habe auch nicht über die Feinheiten der Arbeit mit Objekten nachgedacht. Danke!


Dieser Code

      string temp=EXPERT::TemplateToString(i_chart,true);
      if(temp==NULL)
        {
         i_chart=ChartNext(i_chart);
         continue;
        }
//---
      temp=EXPERT::StringBetween(temp,EXPERT_BEGIN,EXPERT_END);
      if(temp==NULL)
        {
         i_chart=ChartNext(i_chart);
         continue;
        }

wird nicht nur EAs, sondern auch Skripte abfangen. Deshalb ist es wahrscheinlich besser, es so zu machen

      if(!EXPERT::Is(i_chart))
        {
         i_chart=ChartNext(i_chart);
         continue;
        }
      
      
      string temp=EXPERT::TemplateToString(i_chart,true);

In diesem Fall werden die Vorlagen nur dort gespeichert, wo sie benötigt werden.


ZY Ich habe FileDelete absichtlich nicht so gemacht, dass man immer die zuletzt erzeugte Vorlage sehen kann.

 
fxsaber:
Sie können eine solche Technik verwenden, um das ursprüngliche Quellmaterial nicht zu verändern

Interessante Technik, daran habe ich noch nie gedacht. Ich danke Ihnen.

 
fxsaber:

Dieser Code


wird nicht nur EAs, sondern auch Skripte abfangen. Deshalb ist es wahrscheinlich besser, es so zu machen

In diesem Fall werden die Vorlagen nur dort gespeichert, wo sie benötigt werden.

Im Code wurde TemplateToString absichtlich mit dem Flag true aufgerufen. Vielleicht haben Sie es vergessen, aber im Body der Funktion mit dem true-Flag wird das Vorhandensein des Expert Advisors im Chart durch den Aufruf der Is-Methode überprüft.

 static string TemplateToString( const long Chart_ID = 0, const bool CheckExpert = false )
  {
    short Data[];

    return(((!CheckExpert || EXPERT::Is(Chart_ID)) && ::ChartSaveTemplate((ulong)Chart_ID, PATH + FILENAME) && (::FileLoad(FILENAME, Data) > 0)) ?
           ::ShortArrayToString(Data) : NULL);
  }

Deshalb sollten beide Codes auf dieselbe Weise funktionieren.

Im Allgemeinen danke ich Ihnen für die Bibliothek und Ihre Kommentare.
Mit freundlichen Grüßen,
Dmitry.

 
Dmitriy Gizlyk:

Im Code wurde TemplateToString absichtlich mit dem true-Flag aufgerufen. Vielleicht haben Sie es vergessen, aber das Vorhandensein eines Expert Advisors auf dem Diagramm wird durch den Aufruf der Is-Methode im Körper der Funktion mit dem true-Flag überprüft.

In der Tat, das habe ich vergessen.

Im Allgemeinen danke ich Ihnen für die Bibliothek und Ihre Kommentare.

Ich bin froh, dass Sie sie verstanden und wesentlich ergänzt haben. Es würde in der Tat nicht schaden, sie unter Berücksichtigung der von Ihnen erwähnten Nuancen zu korrigieren.

 
Es ist sicherlich gut, Programmierung zu merken und so weiter, der Artikel ist sogar interessant.
Aber ich habe eine Frage im Kopf, bin ich der einzige, der so faul ist, dass das Terminal zu Hause auf dem PC läuft und ich über TimWeaver von meinem Handy aus damit arbeite? Oder hat noch niemand von einer solchen Möglichkeit gehört?
Ich sehe nur Vorteile, nämlich:
-keine Notwendigkeit für eine dedizierte IP
-Plattformübergreifende Natur dieses Programms (für Windows, Mac, Android, iOS)
-kostenlos
-bequemes Arbeiten, als ob Sie zu Hause am PC sitzen würden ...
-keine Notwendigkeit für einen Haufen von Vorlagen, Berge von Code.
Sie sehen immer alles auf dem mobilen Terminal, wenn etwas korrigiert werden muss, können Sie die Anwendung öffnen und das korrigieren, was Sie brauchen, sei es das Ausschalten eines Expert Advisors oder das Starten eines anderen, oder einfach nur die Korrektur von etwas in den Einstellungen. Sogar bis hin zum Ausschalten oder Neustart des PCs komplett....
 
sic20101:
Aber ich habe eine Frage im Kopf, bin ich der Einzige, der so faul ist, dass das Terminal zu Hause auf einem PC läuft und ich von meinem Telefon aus über TimWeaver damit arbeite? Oder hat noch niemand von dieser Möglichkeit gehört?

Es kann passieren, dass der VPS (oder Ihr PC zu Hause) mit dem Expert Advisor aus technischen Gründen für einige Zeit offline ist. Es ist nicht bekannt, wann er wieder online sein wird, aber Sie müssen z.B. nicht handeln, weil Sie wissen, dass es weitere Unterbrechungen geben kann. In diesem Fall erlaubt die vorgeschlagene Fernsteuerung viel mehr als Ihre Variante.


Es gibt auch VPS von MetaQuotes. Es ist nur so, dass dort.

 
fxsaber:
Dies wird aus einem Grund nicht passieren, es gibt kein Internet - kein Handel, und Sie haben wahrscheinlich nicht bemerkt, dass die Kontokontrolle von Ihrem Telefon oder Tablet aus sichtbar ist. Wenn das Internet ausfällt, schließen wir einfach alle Trades mit unseren Händen, und warten dann entweder auf das Internet oder sind zu Hause für weitere Aktionen am PC.
Wenn ich meine Methode analysiere, die ich seit mehr als einem Jahr anwende, ist der Zugang zum Netz der einzige Engpass. Und dieses Problem ist nur in der Wahl des Anbieters, wie der Dienst TimWeaver funktioniert nicht das erste Jahr, und selbst wenn es und fallen Sie immer verlassen können Google Chrome, die auch eine solche Funktion hat, werden sie sicherlich nicht bald sterben....
 
sic20101:
Dies wird aus einem Grund nicht passieren, es gibt kein Internet - kein Handel, und Sie haben wahrscheinlich nicht bemerkt, dass die Kontokontrolle von Ihrem Telefon oder Tablet aus sichtbar ist. Wenn das Internet aus ist, schließen wir einfach alle Trades mit unseren Händen, und dann entweder warten, bis das Internet zu erscheinen oder zu Hause für weitere Aktionen auf dem PC sein.

Terminal auf Ihrem Computer ohne Internet, Sie sind weit weg. Sie haben Zugriff auf Ihr Konto, aber nicht auf das Terminal mit dem Expert Advisor. Wie kann man den Expert Advisor dazu bringen, nicht zu handeln, wenn er mit dem Handelsserver verbunden ist (Internet funktioniert)?