MQL5 TUTORIAL GRUNDLAGEN – 94 SIMPLER SPREADSHEET FILE WRITER

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man die Preisdaten direkt vom Chart in so eine Tabellenkalkulation hier übertragen kann. Wir machen das aus einem Expert Advisor. Also lassen Sie uns einmal schauen, wie man so etwas in MQL5 programmieren kann. Um das zu tun, klicken Sie auf dieses kleine Symbol oder drücken Sie die F4 Taste. Das öffnet dann hier den Metaeditor. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerSpreadSheetWriter, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden. Und wir entfernen auch die zwei Kommentarzeilen. Wir starten damit, dass wir uns zunächst zwei statische Variablen erstellen. Statische Variablen erkennt man an dem Zusatz static. Sie behalten ihren Wert innerhalb der Funktion, solange wie der Expert Advisor läuft. Wir erstellen hier jeweils eine Variable für den letzten Höchst- und den letzten Niedrigstpreis. Außerdem benötigen wir ein Array für Preisdaten. Dafür nutzen wir hier MqlRates. MqlRates bewahrt Informationen über Preise, Volumen und Spread auf. Unter anderem aber auch den Zeitstempel für die Kerze. Unser Array wird jetzt mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und dann nutzen wir CopyRates für das aktuelle Währungspaar und die auf dem Chart eingestellte aktuelle Zeiteinheit, um von der aktuellen Kerze null für drei Kerzen die Preisdaten in unser Preisinfo Array zu kopieren. Um herauszufinden, ob wir eine neue Kerze haben und sich die Preise geändert haben, vergleichen wir jetzt die Variable LastHigh. Und wenn die ungleich ist zu dem, was der Höchstpreis für Kerze eins in unserem Preisinfo Array sagt und wenn auch die Variable LastLow ungleich ist zu dem Niedrigstpreis für Kerze eins in unserem Preisinfo Array, dann haben wir eine neue Kerze. Und für die wollen wir jetzt die Werte in eine Datei schreiben. Ich nenne meine Datei hier Spreadsheet.csv. csv steht für Comma-separated Values, soweit ich weiß. Und dieses Dateiformat wird von den meisten Tabellenkalkulationsprogrammen wie Excel oder Libreoffice automatisch erkannt. Danach nutzen wir FileOpen und versuchen diese Datei zu öffnen. Wenn die Datei nicht existiert, wird sie durch FileOpen angelegt. Hier kommen noch ein paar Angaben, wie mit der Datei umgegangen werden soll. Wir möchten sie mit FILE_READ und FILE_WRITE zum Lesen und zum Schreiben öffnen. FILE_CSV legt das Dateiformat fest. Und der letzte Parameter hier FILE_ANSI sagt aus, in welcher Zeichencodierung wir die Datei beschreiben möchten. Wenn man das einmal markiert und die F1 Taste drückt, dann sieht man, dass es neben ANSI auch UNICODE gibt. UNICODE würde man verwenden, wenn man Sonderzeichen wie Umlaute verarbeiten möchte. Und wir könnten nicht nur eine csv Datei, sondern auch eine Textdatei erstellen. Aber für dieses einfache Beispiel soll uns das hier so reichen. Der Rückgabewert hier ist ein File Handle. Und das brauchen wir jetzt, indem wir mit FileSeek für das File Handle vom ersten Eintrag der Datei nach dem Ende suchen. Das finden wir mit SEEK_END. Und wir machen das deswegen, weil wir an den bestehenden Inhalt der Datei etwas anhängen möchten und nicht den Dateiinhalt ersetzen wollen. Im Anschluss können wir mit FileWrite, auch wieder mit unserem Spreadsheet Handle Werte und Texte in unsere Datei schreiben. Die einzelnen Werte werden hier mit einem Komma getrennt. Erst kommt der Text für den Zeitstempel, gefolgt von dem Zeitwert für Kerze eins in unserem Preisinfo Array, dann kommt der Text High. Und in der nächsten Spalte folgt dann der Höchstpreis für Kerze eins in unserem Preisinfo Array. Und das Ganze wiederholen wir hier nochmal für die niedrigsten Preise der letzten Kerze. Sie können diese FileWrite Zeile auch nach eigenen Wünschen erweitern. Jedes Komma steht hier für eine neue Spalte. Nachdem Sie geschrieben haben, möchten Sie die Datei aber mit FileClose auch wieder schließen. Und im Anschluss weise ich hier den Höchstpreis für Kerze eins aus unserem Preisinfo Array noch der Variable LastHigh zu. Denn beim nächsten Aufruf wird ja der aktuelle Wert der letzte Wert sein. Das Ganze machen wir hier nochmal mit dem niedrigsten Preis für die letzte Kerze. Und damit wir auf dem Chart auch etwas sehen, erstelle ich mit Comment hier noch eine Chartausgabe. Die wird uns den Höchstpreis und den niedrigsten Preis der letzten Kerze auf dem Chart anzeigen. Hier fehlt noch eine Klammer. Und das war es soweit. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst noch einmal ein anderes Video aus der Grundlagenserie anschauen. Vielleicht ist aber auch der Premium Kurs auf unserer Webseite interessant für Sie. Jetzt für den Moment klicken wir hier mal auf Ansicht, Werkzeugleiste und klicken auf Kompilieren. Sie können auch die F7 Taste drücken. Das sollte ohne Fehler funktionieren. Und wenn das bei Ihnen auch so ist, dann klicken Sie hier oben oder drücken Sie die F4 Taste, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Bitte wählen Sie hier die neu erstellte Datei SimplerSpreadSheetWriter.ex5 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. Das sieht relativ unspektakulär aus. Wir stoppen das Ganze mal hier. Und hier ist jetzt meine neue Datei erstellt worden. Abhängig von Ihrem Betriebssystem haben Sie vermutlich hier einen anderen Dateipfad. Bei mir sind die Daten im Benutzerordner unterhalb von AppData zu finden. Man könnte hier einfach nach *.csv suchen. Ich klicke jetzt mal auf die Datei. Dann startet bei mir Libreoffice und dieser Assistent hier erkennt anhand der Dateiendung csv, dass es sich um eine Tabelle handelt. Wenn ich das hier mit Okay bestätige, dann wird die Datei hier entsprechend geöffnet. Die sieht auch so aus, wie ich das gerne hätte. Sie können bei Bedarf noch weitere Spalten hinzufügen. Denn in diesem kurzen Video haben Sie gelernt, wie Sie mit MQL5 eine Tabelle aus einem Expert Advisor erstellen können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.