Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 12.08.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Der wird auch keine Datei schreiben, solange im Code steht:

if (handle < 1)

Aber FileOpen() wurde ja bereits vorher ausgeführt. Hätte dann nicht zumindest eine leere Datei angelegt werden müssen?

Zitat:
Denn sollte keine Datei vorhanden sein, wird handle = -1 sein und damit steigt der EA mit dem return(false) immer wieder hier aus. Und das auch, selbst wenn eine Datei existiert und handle dann 0 wäre.
D.h. sollte handle = -1 sein, dann muss erst einmal eine entsprechende Datei angelegt werden und erst wenn dann nach erneuter Abfrage handle > -1 ist, kann das Beschreiben der Datei beginnen.

traderdoc
Die Sache mit dem handle habe ich noch nicht ganz verstanden. Habe auch keinen Eintrag in der Dokumentation gefunden, wo der handle erklärt wird. Ist es so:

Wenn eine Datei angelegt wurde ist der handle 1, wenn eine Datei nicht angelegt wurde, ist der handle -1? Dann wundert es mich aber, dass handle vom Typ int ist und nicht bool.

Habe mir jetzt mal den Wert des Handels ausgeben lassen (siehe Code u.s. rot markiert). Der Wert ist -1. Demnach hat das anlegen einer Datei nicht funkioniert (denke mal, bereits mit FileOpen() müsste eine Datei angelegt worden sein). Aber aus welchem Grund hat das Anlegen der Datei nicht funktioniert?

Code:
//+------------------------------------------------------------------+
//|                                            Schreibe in Datei.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+



int OnInit()
  {
  
     testfunktion();     
     return(INIT_SUCCEEDED);
  }
  
  
     
  
  bool testfunktion()
   {
   
   
   int handle;
   handle=FileOpen("my_data.csv", FILE_CSV,';');
   if (handle<1)
         {
         Print("File my_data.dat not found, the last error is ", GetLastError());
         Print("Der Handle ist:"  + handle);
         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);
         return(true);
         }  
         
   return(true);
   
   
   
   }