Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 11.08.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard CSV-Datei anlegen, mit Werten füllen, schließen

Hallo,

ein EA soll zur Laufzeit bestimmte Werte (u.a. Spread) zwecks Dokumentation in eine Datei schreiben. Es kann ein übliches Dateiformat sein, txt, csv oder was auch immer. Aus Gründen der Einfachheit habe ich mich vorläufig für CSV entschieden.

Ich denke mal, was ich will müsste eigentlich mit ein paar einfachen Befehlen (FileOpen(), FileWrite() und FileClose()) umzusetzen sein.

Ich habe daher mal ein paar kleine Beispiele aus der MQl-Dokumentation umgesetzt und compiliert.

Hier der Code:

Code:

int OnInit()
  {
  
  
  int handle;
  handle=FileOpen("my_data.csv", FILE_CSV,';');
  if (handle<1)
      {
      Print("File my_data.dat not found, the last error is ", GetLastError());
      return(false);
      
      
  
  datetime orderOpen=OrderOpenTime();
  handle=FileOpen("my_data.csv", FILE_CSV|FILE_WRITE, ';');
  if (handle>0)
   {
   FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));
   FileClose(handle);
   }
   
   
   FileClose(handle);
      
      
      
}  


   return(INIT_SUCCEEDED);
  }

Der Code verursacht beim compilieren und zur Laufzeit keine Fehlermeldung.

Ich meinte mit dem Code eine Datei "my_data.csv" angelegt, geöffnet, mit Werten gefüllt und anschließend wieder geschlossen zu haben.

Eine Suche auf dem PC mit "*my_data.csv" führt allerdings nicht zu einem Treffer. Offenbar gibt es die Datei nicht.

Das führt mich zu der Frage, ob ich die Datei nicht erst explizit anlegen muss, bevor ich sie öffnen und mit Werten befüllen kann? Ich dachte, dass mit FileOpen() automatisch eine entsprechende Date angelegt wird, wenn es eine Datei dieses Namens noch nicht gibt. Da keine Fehlermeldung kommt, vermute ich das im Grunde weiterhin.

Wenn ich einen Fehler mache, worin liegt dieser? Wenn ich keinen Fehler mache, warum finde ich die Datei nicht?

--

Besten Dank für jeden konstruktiven Hinweis und Grüße!

LQK