MQL5 TUTORIAL GRUNDLAGEN – 33 SO FUNKTIONIERT EINE TEILSCHLIESSUNG FUER SELL TRADES

video

In diesem Video wollen wir uns einmal anschauen, wie man für eine Sell Position die Positionsgröße verringern kann. Derzeit haben wir hier eine Positionsgröße von neun Mikrolot. Und sobald sich der Preis hier unterhalb dieser grünen Linie bewegt, wird unsere Positionsgröße reduziert. Jetzt haben wir nur noch sieben Mikrolot, jetzt sechs und jetzt zwei. Wir wollen uns jetzt einmal anschauen, wie man so etwas in MQL5 programmieren kann. Dazu klicken wir im Metatrader auf dieses kleine Symbol hier oben oder drücken 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 SimplerSellPositionModifier, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit einem include Befehl für die Datei Trade.mqh. Und erstellen uns danach eine Instanz von der Klasse CTrade, der wir den Namen trade geben. In der OnTick Funktion müssen wir zunächst einmal den Bid Preis ermitteln. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_BID, alles in Großbuchstaben, und mit NormalizeDouble und _Digits sorge ich hier dafür, dass automatisch auch die richtige Anzahl der Nachkommastellen berechnet wird. Mit der Funktion PositionsTotal prüfen wir ab, ob wir keine Positionen geöffnet haben. Das ist der Fall, wenn der Rückgabewert null ist. Und wenn das zutrifft, dann nutzen trade.Sell, um eine Testpositionen mit einer Positionsgröße von zehn Mikrolot zu eröffnen. Und zum Schluss rufen wir hier die noch nichtexistierende Funktion ChangePositionSize auf und übergeben ihr den Bid Preis. Die müssen wir jetzt noch programmieren. Wir nutzen hier void, da wir keinen Rückgabetyp benötigen. Der Name soll ChangePositionSize sein. Und hier übernehmen wir den Parameter, den wir hier oben an die Funktion überbeben haben. Danach ermitteln wir hier mit AccountInfoDouble und dem Parameter ACCOUNT_BALANCE das Bruttoguthaben. Das Ganze wiederholen wir hier noch mal für die Equity. Das ist das Nettoguthaben. Und der passende Parameter ist ACCOUNT_EQUITY. Auch das Nettoguthaben ermitteln wir mit AccountInfoDouble. Aber diesmal nutzen wir ACCOUNT_EQUITY als Parameter. Mit einer Vorschleife gehen wir jetzt alles Positionen durch. Die Gesamtanzahl der Positionen wird uns mit PositionsTotal angezeigt. Und solange noch Positionen gefunden werden, zählen wir hier runter. Mittels PositionsGetSymbol holen wir uns für den aktuellen Schleifenzählerwert das Positionssymbol, also das Währungspaar. Denn wir möchten nur dann weitermachen, wenn das aktuelle Währungspaar auf dem Chart und das Positionssymbol übereinstimmen. Wenn das so ist, dann ermitteln wir mit PositionGetInteger POSITION_TICKET die Nummer für das Positionsticket. Denn die brauchen wir gleich für die Teilschließung. Mit der gleichen Funktion und dem Parameter POSITION_TYPE möchten wir noch die Positionsrichtung ermitteln. Denn, wir wollen ja explizit nur die Positionsgröße verändern, wenn es sich um eine Sell Position handelt. Also prüfen wir ab, ob die PositionDirection, also die Positionsrichtung übereinstimmt mit dem Wert POSITION_TYPE_SELL. Und sobald unsere Equity jetzt mindestens zehn Punkte über unserer Balance liegt, nutzen wir trade.PositionClosePartial für unser PositionTicket, das wir hier oben ermittelt haben, um die Positionsgröße um jeweils ein Mikrolot zu verringern. Dieser letzte Wert hier stellt einen Toleranzwert dar. Da nutzen wir minus eins. Zum Schluss müssen wir noch ein paar Schleifen schließen und die Funktion beenden. Und das war es. Falls Ihnen das hier zu schnell ging, oder Sie nicht wissen, was der ganze Code bewirken soll, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlagenserie einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie. Für jetzt drücken wir hier oben auf diesen Button Kompilieren oder drücken die F7 Taste. Das sollte dann hier ohne Fehler funktionieren. Und wenn das bei Ihnen auch der Fall ist, dann klicken Sie bitte hier oder drücken Sie die F4 Taste, um in dem Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Hier wählen wir jetzt die neuerstellte Datei aus, markieren die Option für die Visualisierung und starten einen Test. Hier läuft der Expert Advisor auch schon los. Jetzt müsste er gleich irgendwann die Positionsgröße reduzieren. Und jetzt kann man sehen, dass sich die Positionsgröße hier verändert hat und unser Expert Advisor so funktioniert, wie wir ihn programmiert haben. Und Sie haben in diesem kurzen Video gelernt, wie man das mit MQL5 selbst programmieren kann. Und sie haben das selbst getan, mit diesen paar Zeilen hier im Metaeditor.