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.