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.
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.
#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.
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.
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.
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 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.
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)?
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
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