EA soll bei Signal eine Push-Nachricht aufs Handy versenden

Kürzlich erreichte mich die Frage, wie man in MQL4 den Versand einer Pushnachricht aufs Handy programmiert:

Wie kann man vom EA generierte Handelssignale auf seinem Smartphone erhalten, ohne immer wieder auf die Charts zu schauen? Ich benötige das, da ich Vollzeit arbeite und dadurch sehr viele Chancen verpasse. Es sollen keine Positionen eröffnet werden im EA. Ich möchte nur informiert werden, wenn ein Signal generiert wurde, z.B. per SMS “EURUSD Long Signal”.

Der Versand von SMS geht vom MetaTrader 4 (MT4) nicht direkt, dafür aber eine Push-Nachricht. Das ist meines Erachtens sogar besser!

Dazu gehören drei Schritte:

  1. Pushnachricht im Code des Expert Advisors (EA) oder Indikators veranlassen.
  2. Im Code sicherstellen, dass nur eine Pushnachricht pro Signal vom Programm versendet wird.
  3. Erlaubnis der Pushbenachrichtigung im MT4 einrichten.

Schritt 1

Der erste Schritt ist sehr einfach zu bewerkstelligen. Im Code des EA's oder Indikators wird eine Zeile eingefügt, die die in MQL4 schon eingebaute Pushnachricht-Funktion abruft:

SendNotification ( "Buy-Signal liegt vor" ) ;

In den Anführungszeichen steht der Text, den die Push-Nachricht auf dem Handy darstellen soll. Diese Nachricht können wir noch etwas informativer gestalten, indem wir zum Beispiel noch das Chart-Symbol und den Chart-Timeframe (in Minuten) hinzufügen, auf dem der EA oder Indikator gerade läuft. Diese zusätzlichen Verkettungen habe ich in Fett in die MQL4 Codezeile eingefügt:

SendNotification ( "Buy-Signal liegt vor in " + Symbol() + " M" + Period() ) ;

Jedes Mal, wenn diese Codezeile des EA's oder -Indikators durchlaufen wird, veranlasst die MT4-Instanz nun den Versand der Push-Nachricht aufs Handy.

Schritt 2

In einem EA, der keine Deals eröffnet, sondern nur Nachrichten versendet, muss dann noch sichergestellt werden, dass wirklich nur einmal pro Signal die Pushbenachrichtigung versendet wird. Nehmen wir das einfache Beispiel, dass ein Buy-Signal generiert wird bei Überschreiten des Hochs der Vorkerze:

if ( Bid > High[1] )  {
SendNotification ( "Buy-Signal liegt vor in " + Symbol() + " M" + Period() ) ;
}

Der EA würde nun bei jedem Tick über dem Vorkerzen-Hoch die Pushnachricht veranlassen. Es kann also dutzende, hunderte oder gar tausende Male pro Kerzenperiode das Handy läuten. Das würde uns aber sicher mit der Zeit nerven.

Daher müssen wir eine boolesche Variable einfügen, eine Wahr-Falsch- oder True-False-Variable also, die die Sendeerlaubnis steuert. 

Wie das im Detail geht, sehen Sie im downloadbaren .mq4-Code-File, das Sie hier per Email erhalten können:

Schritt 3

Damit die Push-Benachrichtigungen funktionieren können, müssen Sie die entsprechenden Einstellungen im MT4, auf dem Sie den EA aktivieren wollen, unter dem Menüpunkt

Extras → Optionen → Benachrichtigungen

vornehmen. Dazu setzen Sie im gerade geöffneten Fenster

  1. das Häkchen links neben „Push-Benachrichtigungen einschalten“ und geben
  2. Ihre MetaQuotes ID ein.

Im Bild rechts sind diese beiden Schritte jeweils mit einem roten Pfeil markiert.

Um die MetaQuotes ID zu erhalten, müssen Sie die Mobilversion des MetaTraders für iPhone bzw. Android auf Ihrem Smartphone installieren. Dort finden Sie sie unter Einstellungen → Benachrichtigungen, sobald Sie in den iPhone-/Android-Einstellungen "Benachrichtigungen erlauben/zulassen" o.ä. für die MT4-App eingestellt haben.

Geschafft!

Herzliche Grüße und beste Trading-Erfolge wünscht Ihnen
Cristof Ensslin von mindful FX, Ihrem EA Programmierer

PS: wenn Sie am EA-programmieren Lernen interessiert sind, schauen Sie sich doch mal unseren MQL4-Intensivkurs - EA-programmieren lernen an.