Вопросы от "чайника" - страница 108

 

проблема в тестировании. у меня эксперт берет значения паттернов из файла csv. при торговле все работает а в тестере нет. куда надо положить файл csv и какую папку создать? помогите

делал так

Файл открывается в папке клиентского терминала в подпапке MQL5\files (или каталог_агента_тестирования\MQL5\files в случае тестирования).

но не получается и где расположен каталог агента тестирования?

 
openlive:
проблема в тестировании. у меня эксперт берет значения паттернов из файла csv. при торговле все работает а в тестере нет. куда надо положить файл csv и какую папку создать? помогите
Посмотрите в Справочнике описание константы tester_file
 
Yedelkin:
Посмотрите в Справочнике описание константы tester_file

посмотрел, поместил файл в Mql5\Tester\Files

но тестер просто стоит на месте 

 

вот сам файл эксперта 

Файлы:
 
openlive:

посмотрел, поместил файл в Mql5\Tester\Files

В описании функции FileOpen() сказано: "Файл открывается в папке клиентского терминала в подпапке MQL5\files (или каталог_агента_тестирования\MQL5\files в случае тестирования)". Попробуйте:

а) указать полный путь к файлу типа

string filename=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Tester\\Files\\"+"file.csv";

б) запихнуть файл в каталог агента.

Сам с таким не сталкивался. Из описания других функций работы с файлами вытекает, что в случае тестирования файл должен искаться в Mql5\Tester\Files

Дополнение. Да, у Вас там ведь несколько файлов открывается. А в tester_file указан только один.

 
Yedelkin:

В описании функции FileOpen() сказано: "Файл открывается в папке клиентского терминала в подпапке MQL5\files (или каталог_агента_тестирования\MQL5\files в случае тестирования)". Попробуйте:

а) указать полный путь к файлу типа

б) запихнуть файл в каталог агента.

Сам с таким не сталкивался. В Справочнике пока не нашёл прямого указания, где следует размещать файл для тестирования.

Дополнение. Да, у Вас там ведь несколько файлов открывается. А в tester_file указан только один.

а) сделал - не помогло

б)не пойму как это сделать . у меня только папка MQL5\Tester\Files и какая папка имеется ввиду под каталог_агента_тестирования\MQL5\files не могу врубиться 

 

Вот ещё нашел: https://www.mql5.com/ru/forum/1111/page182#comment_31599 Смотрите два сообщения. Типа работало, если файл находился в \MQL5\Files.

Ну и можно попробовать перенести в общую папку по адресу TerminalInfoString(TERMINAL_COMMONDATA_PATH). А при открытии самого файла установить флаг FILE_COMMON.

 

Yedelkin: 

Вот ещё нашел: https://www.mql5.com/ru/forum/1111/page182#comment_31599 Смотрите два сообщения. Типа работало, если файл находился в \MQL5\Files.

Ну и можно попробовать перенести в общую папку по адресу TerminalInfoString(TERMINAL_COMMONDATA_PATH). А при открытии самого файла установить флаг FILE_COMMON.

поместил файл в C:\ProgramData\MetaQuotes\Terminal\Common\Files , поставил флаг  FILE_COMMON

все равно тестер молчит.

не знаю что еще можно сделать 

 

Т.е. не помогает нахождение файла ни в Mql5\Tester\Files, ни в Mql5\Files, ни в общей папке клиентских терминалов?

Поставьте проверку FileIsExist() с выводом на печать. 

Остальные файлы, используемые программой, прописывали с помощью tester_file?

Замечание, не относящееся к основному вопросу. У Вас

int handle16=FileOpen("signal10000.csv",FILE_WRITE|FILE_CSV,";");
int handle17=FileOpen("signal10000.dat",FILE_WRITE|FILE_BIN,";"); 
int handle=FileOpen(filename,FILE_READ|FILE_CSV,";");

и т.д.

вызываются на каждом тике. Это очень громоздко. Если нет особых причин, хендл файла надо получать в функции OnInit(), проверять его на инвалидность, и далее работать с хендлом открытого файла, а не с функцией  FileOpen().

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Yedelkin:

Т.е. не помогает нахождение файла ни в Mql5\Tester\Files, ни в Mql5\Files, ни в общей папке клиентских терминалов?

Поставьте проверку FileIsExist() с выводом на печать. 

Остальные файлы, используемые программой, прописывали с помощью tester_file?

Замечание, не относящееся к основному вопросу. У Вас

и т.д.

вызываются на каждом тике. Это очень громоздко. Если нет особых причин, хендл файла надо получать в функции OnInit(), проверять его на инвалидность, и далее работать с хендлом открытого файла, а не с функцией  FileOpen().

файлы на самом деле не каждый тик вызываются... там стоит проверка на новый бар. но все равно спасибо , исправлю

щас попробую FileIsExist() 

 
openlive:

файлы на самом деле не каждый тик вызываются... там стоит проверка на новый бар. но все равно спасибо , исправлю

Да, дотошно не смотрел. Но суть Вы уловили правильно :)
Причина обращения: