Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 146

 
Vielleicht fehlen einige DLL-Bibliotheken?
 
azsxg8181:   Vielleicht fehlen Ihnen einige DLL-Bibliotheken?

Wahrscheinlich haben Sie das Terminal auf dem Systemlaufwerk und im Ordner Programme abgelegt.

Wenn ja, wählen Sie ein anderes Laufwerk. Oder zumindest in das Stammverzeichnis Ihres Systemlaufwerks. Zu Beginn der Installation gibt es eine Schaltfläche Setup

 
Dies ist eindeutig eine kindische Frage, also geht es hier lang.
Irgendwie habe ich das vorher nicht beachtet. In der Anmerkung zur Beschreibung der Funktion IndicatorDigits steht Folgendes:
Standardmäßig wird die Kursgenauigkeit des Finanzinstruments verwendet, an dessen Chart der Indikator angehängt ist.
Tatsächlich sehe ich fünf Ziffern im Datenfenster:
  • Die Standardeinstellung ist 4-stellig;
  • wenn IndicatorDigits(Digits) ausdrücklich angegeben ist - 5.
Ist es eine Störung oder was?
 
Bitte um Hilfe! Ich kann die Datei nicht lesen
int File()
{
int P=0;
int filehandle=FileOpen("C:\\Users\\Михаил\\Desktop\\qqq.csv",FILE_READ|FILE_CSV); 
if(filehandle!=INVALID_HANDLE) 
     { 
     datetime d = FileReadDatetime(filehandle);
     int I=FileReadNumber(filehandle);
     FileClose(filehandle);
     Comment(d+" "+I);
     }
     else {Comment(GetLastError());}
return P;

}
Fehler 5002- Ungültiger Dateiname

Obwohl die Datei existiert


 
Mikhail Simakov:
Bitte helfen Sie mir! Ich kann die Datei nicht lesenImits Fehler 5002 - Ungültiger Dateiname

Obwohl die Datei existiert

FileOpen

Aus Sicherheitsgründen kontrolliert die Sprache MQL5 Operationen mit Dateien streng. Die Dateien, die von den Dateioperationen der MQL5-Sprache behandelt werden, können nicht außerhalb der Datei-Sandbox" liegen.

Wenn Sie mit Verzeichnissen außerhalb der Sandbox arbeiten möchten, erstellen Sie eine Verknüpfung/einen symbolischen Link zu dem benötigten Verzeichnis mit"MQL4\\Files" darin.
 
Konstantin Nikitin:

FileOpen

Wenn Sie mit Verzeichnissen außerhalb der Sandbox arbeiten möchten, erstellen Sie eine Verknüpfung/einen symbolischen Link zu dem gewünschten Verzeichnis in"MQL4\\Files".

OK, ich habe die Datei in den Ordner "Files" kopiert und den Code erneut ausgeführt, derselbe Fehler

int File()
{
int P=0;

int filehandle=FileOpen(TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files\\"+"qqq.csv",FILE_READ|FILE_CSV); 
if(filehandle!=INVALID_HANDLE) 
     { 
     datetime d = FileReadDatetime(filehandle);
     int I=FileReadNumber(filehandle);
     FileClose(filehandle);
     Comment(d+" "+I);
     }
     else {Comment(GetLastError());}
return P;

}
 
Mikhail Simakov:

OK, ich habe die Datei nach Files kopiert und den Code erneut eingegeben, derselbe Fehler

int filehandle=FileOpen("qqq.csv",FILE_READ|FILE_CSV); 

Das ist genug. Es gibt ein ziemlich gutes Beispiel, in dem die falsche und die richtige Öffnung der Datei gezeigt wird.

 
Konstantin Nikitin:

Das ist genug. Dort gibt es ein gutes Beispiel für das falsche und das richtige Öffnen der Datei.

Wo sollte beim Testen eines EA die schreibgeschützte Datei gespeichert werden?

 
Mikhail Simakov:

Wo sollte sich beim Testen eines EA die Lesedatei befinden?

Dies stammt aus MQL5, ist aber im Wesentlichen dasselbe.

 
Konstantin Nikitin:

Dies stammt aus MQL5, ist aber im Wesentlichen dasselbe.

Ich habe das Verzeichnis gefunden, auf das das Programm zugreift, aber aus irgendeinem Grund löscht es beim Testen diese Datei qqq.csv