похоже, что ошибка 5004 связана с тем, что файл не закрывается!
int readFileImg (string file_name) {
int filehandle = FileOpen(file_name, FILE_READ|FILE_BIN);
if (filehandle!=INVALID_HANDLE) {
FileClose(filehandle); // this line is important, without this line you will get 5004Alert("done");
} elseAlert("Operation FileOpen failed, error ",GetLastError(), TerminalInfoString(TERMINAL_DATA_PATH));
return filehandle;
}
У меня такая же ошибка 5004, выскакивающая при тестировании советника с помощью Strategy Tester. Должно быть, это ошибка в mt4, поскольку он может открывать другие файлы в той же сессии, но внезапно он не может открыть файлы.
Я использую его для бэктестинга алгоритма машинного обучения.
Теперь мне нужна другая платформа для бэктестинга алгоритма, поскольку mt4 не работает.
Есть идеи по поводу других платформ для бэктестинга?
//+------------------------------------------------------------------+//| Get the symbols |//+------------------------------------------------------------------+void TProgram::GetSymbolsFromFile(conststring filePath, conststring fileName)
{
//--- additional variables int str_size;
string str;
int array_size;
string terminal_data_path;
//--- open the file ResetLastError();
//--- Release the symbol array
::ArrayFree(m_file_symbols);
terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
PrintFormat("File path: %s\\Files\\",terminal_data_path);
bool test1 = FileIsExist(fileName,0 );
bool test2 = FileIsExist(fileName,FILE_COMMON);
int file_handle=FileOpen(fileName,FILE_READ|FILE_TXT|FILE_ANSI);
if(file_handle!=INVALID_HANDLE)
{
PrintFormat("%s file is available for reading",filePath);
//PrintFormat("File path: %s\\Files\\",terminal_data_path);//--- read data from the file while(!FileIsEnding(file_handle))
{
//--- find out how many symbols are used for writing the time
str_size=FileReadInteger(file_handle,INT_VALUE);
//--- read the string
str=FileReadString(file_handle,str_size);
array_size=::ArraySize(m_file_symbols);
::ArrayResize(m_file_symbols,array_size+1);
m_file_symbols[array_size]=str;
//--- print the string PrintFormat(str);
}
//--- close the file FileClose(file_handle);
PrintFormat("Data is read, %s file is closed",fileName);
}
else
{
PrintFormat("Failed to open %s file, Error code = %d",fileName,GetLastError());
}
}
Я пробовал множество различных параметров и путей к файлам.
1 - Пытался использовать путь к файлу therminal и ничего из этого не работает.
int file_handle=FileOpen(fileName,FILE_READ|FILE_TXT|FILE_ANSI);
привет
похоже, что ошибка 5004 связана с тем, что файл не закрывается!
Пожалуйста, используйте кнопку </>, чтобы вставить свой код.
У меня такая же ошибка 5004, выскакивающая при тестировании советника с помощью Strategy Tester. Должно быть, это ошибка в mt4, поскольку он может открывать другие файлы в той же сессии, но внезапно он не может открыть файлы.
Я использую его для бэктестинга алгоритма машинного обучения.
Теперь мне нужна другая платформа для бэктестинга алгоритма, поскольку mt4 не работает.
Есть идеи по поводу других платформ для бэктестинга?
Предпочтительно на основе python.
Попробуйте MT5.
Я пытаюсь отладить свою программу и сталкиваюсь с той же проблемой.
Основываясь на примере в документации FileOpen, я создал эту функцию для чтения списка символов из файла.
Я включил файл в "Files Directory" редактора и вызываю функцию таким образом:
Я пробовал множество различных параметров и путей к файлам.
1 - Пытался использовать путь к файлу therminal и ничего из этого не работает.
Я получаю ошибки: 5002 e 5004
ERR_WRONG_FILENAME
5002
Неверное имя файла
ERR_CANNOT_OPEN_FILE
5004
Ошибка открытия файла