Как определить в какой папке запускается Агент МТ5?

 

Задача следующая в тестере мт5 создается папка для агента, как определить текущую папку которая используется, чтобы получить к папке Files правильный путь?

например такой полный путь

C:\Users\GamePC\AppData\Roaming\MetaQuotes\Tester\4723BC1358F24EFE019530CE040E3202\Agent-127.0.0.1-3000\

или  такого плана  

\Tester\4723BC1358F24EFE019530CE040E3202\Agent-127.0.0.1-3000\


Так как терминал создает таких несколько под каждое ядро. А требуется при инициализации загрузить данные из файла в папке Files, как определить в какую папку нужно положить файл?


Дополню еще как получить тогда файл, если при запуске тестирования папка Files очищается автоматически???


В описании FIleOpen написано следующее:

Файл открывается в папке клиентского терминала в подпапке MQL5\Files (или каталог_агента_тестирования\MQL5\Files в случае тестирования). Если среди флагов указан FILE_COMMON, то файл открывается в общей папке всех клиентских терминалов \Terminal\Common\Files.


Документация по MQL5: Файловые операции / FolderCreate
Документация по MQL5: Файловые операции / FolderCreate
  • www.mql5.com
FolderCreate - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexandr Gavrilin:

Задача следующая в тестере мт5 создается папка для агента, как определить текущую папку которая используется, чтобы получить к папке Files правильный путь?

Если в работе советника приходится обращаться к файлу, то для оптимизации нужно положить этот файл в общую папку  Common.

C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\Common\Files. 

Соответственно и в советнике указать, что файл лежит в общей папке, ну и добавить флаг для общего доступа к чтению файла.

В этом случае каждый экземпляр советника запущенный в агенте, будет обращаться к одному и тому же файлу.
 
Alexandr Gavrilin:


Так как терминал создает таких несколько под каждое ядро. А требуется при инициализации загрузить данные из файла в папке Files, как определить в какую папку нужно положить файл?


Для этого предназначена директива #tester_file (https://www.mql5.com/ru/docs/runtime/testing#data) - терминал сам отправит ваш файл на агенты, где бы они ни были, даже в облако.

Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Тестирование торговых стратегий - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Stanislav Korotky #:

Для этого предназначена директива #tester_file (https://www.mql5.com/ru/docs/runtime/testing#data) - терминал сам отправит ваш файл на агенты, где бы они ни были, даже в облако.

огромное спасибо! то что надо.