MQL5 TUTORIAL GRUNDLAGEN – 62 SIMPLER MARGIN MONITOR

video
play-sharp-fill

In diesem Video wollen wir uns einmal einen Monitor bauen, der in der Lage ist, alle Informationen zum Thema Margin direkt auf dem Chart auszugeben. Also schauen wir uns einmal an, wie man so etwas in MQL5 programmieren kann. Um das zu tun klicken Sie im Metatrader bitte auf dieses kleine Symbol hier oben oder drücken Sie die F4-Taste. Das ruft dann hier den Metaeditor auf und hier klicken wir auf Datei, neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier einmal den Namen SimplerMarginMonitor, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen hier können wir entfernen. Um an die gewünschten Informationen zu kommen, nutzen wir AccountInfoDouble. Das ist eine Funktion, die uns kontospezifische Informationen zurückliefert. Beispielsweise in diesem Fall die AccountMargin. Um die zu ermitteln, nutzen wir AccountInfoDouble mit einem Parameter. In diesem Fall, großgeschrieben, ACCOUNT_MARGIN. Wenn man das hier einmal ausschneidet, dann sieht man, dass es hier eine proberty_id aus einer Enumeration, also aus einer Sammlung gleichartiger Eigenschaften gibt. So bald man hier anfängt zu tippen, bekommt man diese Auswahlliste gezeigt. Wiederholen wir das Ganze also, für die anderen Informationen, die uns interessieren. Und da gibt es einige. Zum Beispiel die freie AccountMargin. Soll man mit ACCOUNT_MARGIN_FREE ermitteln. Dann gibt es eine sogenannte InitialAccountMargin. Auch hier ist das Verfahren genau so wie oben, aber wenn man hierfür den Wert ermittelt, dann werden Sie vermutlich feststellen, dass Sie hier einen Nullwert zurückgeliefert bekommen. Ich habe dieses Video auch schon für MQL4 aufgenommen und da steht in der Referenz, dass diese Eigenschaft hier nicht unterstützt wird. Vielleicht ist sie aber auch kontenabhängig. In der Referenz wird es jedenfalls beschrieben als reservierte Mittel für dem Konto also die Garantie für alle ausstehenden Aufträge. Das ist eindeutig nicht die beste mögliche Übersetzung. Der nächste Wert wäre ein AccountMarginLevel-Wert. Dafür sehen wir hier auch tatsächlich eine aktuelle Berechnung. Und wenn Sie unten in der Toolbox mal nach ganz unten scrollen, dann sollte der Wert hier unten übereinstimmen mit dem was hier berechnet wird. Außerdem bietet MQL5 einen sogenannten MarginMaintenance-Wert an. Auch hier ist die Übersetzung sehr seltsam: Die reservierte Mittel auf dem Konto als ein Sicherheitsmindestbetrag für alle offenen Positionen. Auch hier ist in meinem Fall der Rückgabewert 0. Aber jetzt kommen wir zu den Werten, die wirklich interessant sind. Und zwar ist das der StopoutCall-Level. Den bekommt man über ACCOUNT_MARGIN_SO_CALL. Das ist die Schwelle, bei der man vom Broker aufgefordert würde, mehr Geld einzuzahlen. In meinem Fall liegt diese Schwelle bei 40 %. Und noch interessanter ist der finale Stopout-Level. Und das ist, wenn ihr Broker alle Ihre offenen Positionen schließt. In meinem Fall liegt der hier bei 10 %. Sollte meine Acquity unter 10 % sinken, dann würden unabhängig vom aktuellen Zustand alle meine Positionen vom Broker geschlossen. Das kann je nach Kontentyp stark variieren. Bei anderen Konten, die ich betreibe, ist dieser Lever zum Beispiel bei 40 % und der StopoutCall würde schon bei 60 % kommen. Außerdem möchte ich mir hier noch gerne den AccountProfit anzeigen lassen. Den erhalten wir ebenfalls über AccountInfoDouble. Wenn Sie AccountInfoDouble einmal markieren und F1 drücken, dann sehen Sie hier die Aufzählung aller möglichen Werte. Und da lassen sich schon eine ganze Menge Informationen ermitteln. Eine Sache ist mit dem Metatrader 5 neu dazugekommen und das ist der sogenannte Margin Modus. Den gab es in MQL4 so noch nicht. Und den können wir ermitteln mit AccountInfoInteger. Hier übergeben wir als Parameter ACCOUNT_MARGIN_MODE. Und das was uns da zurückgeliefert wird, ist eine ganze Zahl. Ich hätte das Ganze gerne in lesbarer Form. Darum erstelle ich hier zunächst einmal eine Variable mit dem Namen AccountMarginModeReadable. Die bekommt hier noch keinen Wert zugewiesen. Denn wir weisen die Werte anhand der Rückgabewerte für diese Zeile hier oben zu. Denn wenn der AccountMarginMode den Rückgabewert 0 hat, dann möchte ich gerne, dass der Wert für meine lesbare Form der Text Netting Mode ist. Falls Sie sich fragen, was das bedeutet: Der sogenannte Netting Mode war die erste ursprüngliche Form des Handels mit Metatrader 5. Im Netting Mode selbst kann man nur eine Position pro Symbol handeln. Ende 2016 wurde dann der Hedge Modus nachgerüstet. Der erlaubt es dann, dass man mehrere Positionen pro Währungspaar handeln kann. Dann gibt es hier noch einen Exchange Modus, den ich aber nie benutze. Und für alle drei Rückgabewerte möchte ich das gern jetzt in lesbarer Form haben. Die 1 steht für den Exchange Mode, die 2 für den aktuellen Hedging Mode und die 0 für den ursprünglichen Netting Mode, der nur eine Position pro Währungspaar zu lies. So was ähnliches machen wir jetzt nochmal. Diesmal für den Stopout Mode. Auch hier gibt es zwei unterschiedliche Rückgabewerte. Denn entweder wird der Stopout Mode in Prozenten oder als Geldwert angegeben. Also erstellen wir auch hier eine leere Variable für die lesbare Form. Und wenn der Rückgabewert 0 ist, dann handelt es sich um ein Konto, bei dem die Angabe in Prozent erfolgt. Bei einem Rückgabewert von 1 würden wir den Text sehen, dass der Stopout Mode als Wert zurückgegeben wird. In meinem Fall habe ich hier eine Prozentangabe. Das bedeutet sowohl der Stopout Call als auch der Stopout Level für die letztendliche Schließung der Positionen werden hier als Prozentwert angezeigt. Zum Schluss fügen wir hier noch eine Kommentarfunktion hinzu. Die wird uns alle unsere ermittelten Ergebnisse direkt auf dem Chart ausgeben. Und das war es auch schon im Großen und Ganzen. Wenn Sie nicht wissen was alle diese Codezeilen hier bewirken sollen oder wenn Ihnen das zu schnell ging, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlageserie anschauen oder vielleicht ist auch der Premiumkurs für Sie interessant. Den finden Sie auf unserer Webseite. Und dieses Video war eine Idee von einem Premiumkursmitglied. Wenn Sie also schon ein Premiummitglied sind und eine Idee für so ein Video haben, dann schicken Sie mir doch einfach ein E-Mail. Für den Moment klicken wir hier oben auf kompilieren oder drücken die F7-Taste. In meinem Fall hat das hier funktioniert. Und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses kleine Symbol klicken oder die F4-Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader wählen wir einfach ein Live-Chart aus. Wenn wir nämlich unser Programm im Strategietester laufen lassen, dann würde sich kein Wert verändern, denn wir eröffnen ja an keiner Stelle eine Position. Suchen Sie also hier links, im Navigator, nach der neu erstellten Datei mit dem Namen SimplerMarginMonitor und ziehen Sie sie einfach auf ein leeres Chart. Änderungen von Signaleinstellungen benötigen wir hier nicht. Wir klicken auf ok. Und hier tauchen die aktuellen Werte auch schon auf. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen Expert Advisor in MQL5 programmieren können, der in der Lage ist, alle Margin relevanten Informationen direkt auf Ihrem Chart auszugeben. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.