Запись в файл FileWrite - страница 2

 
Вы точно ищете файл в папке "каталог данных терминала"\MQL5\Files? Сам файл (в который нужно писать) не открыт в другой программе? Никакой процесс не держит файл в который Вы хотите писать?
 
Просто я те же действия делаю и со скриптом, там выполняется и всё. 
А вот на счет советника, вы как его выполняете? Через отладку\тестирование ? 
 
Fresto:
Просто я те же действия делаю и со скриптом, там выполняется и всё. 
А вот на счет советника, вы как его выполняете? Через отладку\тестирование ? 


Тестирование торговых стратегий -> Использование общей папки всех клиентских терминалов -> 

Все тестерные агенты изолированы друг от друга и от клиентского терминала: у каждого  агента есть собственная папка, в которую записываются логи агента. Кроме того, все файловые операции при тестирования агента происходят в папке имя_агента/MQL5/Files.

Вот эти строка помогут найти спрятавшийся файл:

   if(filehandle!=INVALID_HANDLE)
     {
      Print(TerminalInfoString(TERMINAL_DATA_PATH));

      FileWrite(filehandle,"Open");
 
Так, сейчас я понял, что мой файл на самом деле не открывается. Не знаю, как это возможно. Но если я даже меняю название файла, программа всё равно заходит в блок записи в файл.
 

Запуск на графике или простая отладка ("F5"):

C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

запуск через отладку на истории ("Ctrl" + "F5"):

C:\Users\barab\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3002


Это говорит о том, что нужно внимательным быть, когда вопрос касается работы в песочнике (при работе с файлами) - в зависимости от режима запуска файл будет там где ему и положено быть, только пользователь может об этом не знать :).

 
Так вот оно в чем фишка. При тестере совсем другой путь указывается. Я этого не знал. Теперь всё работает и корректно. Спасибо огромное! 
 
Fresto:
Так вот оно в чем фишка. При тестере совсем другой путь указывается. Я этого не знал. Теперь всё работает и корректно. Спасибо огромное! 

Пожалуйста.
 
Vladimir Karputov:

Запись массива Open[] в файл csv:

Созданный файл искать в папке "каталог данных терминала"\MQL5\Files

Я конечно дико извиняюсь, но глупей чем писать массив в файл циклом придумать очень сложно. Для нормальных существует функция записи массива в файл

uint  FileWriteArray(
   int          file_handle,         // handle файла
   const void&  array[],             // массив
   int          start=0,             // начальный индекс в массиве
   int          count=WHOLE_ARRAY    // количество элементов
   );
 
Alexey Viktorov:

Я конечно дико извиняюсь, но глупей чем писать массив в файл циклом придумать очень сложно. Для нормальных существует функция записи массива в файл


Ничего страшного, со всеми бывает.

Ведь автор пишет:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Запись в файл FileWrite

Fresto, 2017.03.30 09:41

Ребят, кто знает, помогите пожалуйста. Очень нужно) Выгружать в файл значения Закрытия\Открытия баров за месяц\год где-то, для статистики. Как это возможно сделать из МТ5? Исторические данные есть в файлах hcc, но как их открыть, я не нашел. В итоге можно либо с каждым новым баром записывать значение в файл. Или же запустить скрипт, но т.к. он не проходит по всем барам. Думаю, можно загрузить в него список из несколько тысяч значений и все по очереди в цикле записать. Как лучше сделать?

И формат csv как нельзя лучше подходит для дальнейшей обработки, взять хоть Excel. А вот файл в формате bin

FileWriteArray

FileWriteArray Записывает в файл типа BIN массивы любых типов, кроме строковых (может быть массив структур, не содержащих строки и динамические массивы). uint  FileWriteArray ( int   file_handle,  // handle файла const void&   array[],  // массив int   start=0,  // начальный индекс в массиве int   count=WHOLE_ARRAY // количество элементов ); 

в Excel не обработаешь, к сожалению.