#property tester_file "test.txt"

 

Подскажите, пожалуйста, насчет св-ва  #property tester_file.

1. данное свойство нужно только для отправки файла на удаленные агенты?

2. в какой папке должен лежать файл test.txt, чтобы тестер мог скопировать его на удаленные агенты (в домашней локальной сети)

3. Нужно ли что-то еще писать помимо строчки: #property tester_file "test.txt" чтобы файл был скопирован ?

4. В какую папку он будет скопирован (используются два дополнительных ПК с установленным MetaTrader 5 Strategy Tester)

5. Советник в одиночном прогоне без оптимизации успешно открывает файл  с такими флагами:

int file_handle=FileOpen(InpFileName ,FILE_READ|FILE_SHARE_READ|FILE_ANSI|FILE_TXT|FILE_COMMON);

сможет ли MetaTrader 5 Strategy Tester его найти после копирования?


Уже разные вариации испробовал, как-то получилось добиться копирования в папку Tester/Agent xxxx/MQL5/Files, но удаленные агенты не могли найти файл,

а теперь снова не копирует.

 
Sunriser:

Подскажите, пожалуйста, насчет св-ва  #property tester_file.

1. данное свойство нужно только для отправки файла на удаленные агенты?

2. в какой папке должен лежать файл test.txt, чтобы тестер мог скопировать его на удаленные агенты (в домашней локальной сети)

3. Нужно ли что-то еще писать помимо строчки: #property tester_file "test.txt" чтобы файл был скопирован ?

4. В какую папку он будет скопирован (используются два дополнительных ПК с установленным MetaTrader 5 Strategy Tester)

5. Советник в одиночном прогоне без оптимизации успешно открывает файл  с такими флагами:

сможет ли MetaTrader 5 Strategy Tester его найти после копирования?


Уже разные вариации испробовал, как-то получилось добиться копирования в папку Tester/Agent xxxx/MQL5/Files, но удаленные агенты не могли найти файл,

а теперь снова не копирует.

Так если добились копирования в папку агента, то и искать его надо не в общей папке. Уберите флаг FILE_COMMON и проверьте ещё раз.

 
Alexey Viktorov:

Так если добились копирования в папку агента, то и искать его надо не в общей папке. Уберите флаг FILE_COMMON и проверьте ещё раз.

В этом случае для ядер основного ПК должно остаться FILE_COMMON, а для вспомогательных - нет. Странно получается как-то. 
Вот один раз добился копирования, а теперь не получается снова это повторить.
 
Sunriser:
В этом случае для ядер основного ПК должно остаться FILE_COMMON, а для вспомогательных - нет. Странно получается как-то. 
Вот один раз добился копирования, а теперь не получается снова это повторить.

Я оптимизацией не занимаюсь, но чисто логически, файл должен быть в каждом агенте отдельно. По-моему локальный агент от облачного в этом отношении ничем не отличается.

 
Sunriser:

Подскажите, пожалуйста, насчет св-ва  #property tester_file.

1. данное свойство нужно только для отправки файла на удаленные агенты?

2. в какой папке должен лежать файл test.txt, чтобы тестер мог скопировать его на удаленные агенты (в домашней локальной сети)

3. Нужно ли что-то еще писать помимо строчки: #property tester_file "test.txt" чтобы файл был скопирован ?

4. В какую папку он будет скопирован (используются два дополнительных ПК с установленным MetaTrader 5 Strategy Tester)

5. Советник в одиночном прогоне без оптимизации успешно открывает файл  с такими флагами:

сможет ли MetaTrader 5 Strategy Tester его найти после копирования?


Уже разные вариации испробовал, как-то получилось добиться копирования в папку Tester/Agent xxxx/MQL5/Files, но удаленные агенты не могли найти файл,

а теперь снова не копирует.

При использовании данной директивы указанный файл копируется автоматически из локальной папки MQL5/Files терминала в папку агентов MQL5/Files.

Смешивать данную директиву и common не имеет смысла. Common работает только на текущей машине, зато файл может быть открыт на разделяемые и чтение и запись (в коде нужно позаботиться о разрешении коллизий). Тот файл, что отправляется на агент, может редактироваться только там и обратно на машину с терминалом не возвращается.

 
Stanislav Korotky:

При использовании данной директивы указанный файл копируется автоматически из локальной папки MQL5/Files терминала в папку агентов MQL5/Files.

Смешивать данную директиву и common не имеет смысла. Common работает только на текущей машине, зато файл может быть открыт на разделяемые и чтение и запись (в коде нужно позаботиться о разрешении коллизий). Тот файл, что отправляется на агент, может редактироваться только там и обратно на машину с терминалом не возвращается.

Спасибо за помощь, стало понятнее и всё получилось!

Путаница с папками страшная, в справке не нашел ответов..

В итоге сделал так:

Директива #property tester_file "test.txt" копирует файл test.txt из каталога AppData\Roaming\MetaQuotes\Terminal\Common\Files, либо из каталога AppData\Roaming\MetaQuotes\Terminal\многознаков\MQL5\Files

затем файл открывается без флага FILE_COMMON.

Такая связка работает и при одиночном прогоне и при запуске оптимизации с подключением сетевых агентов.

Пересохранять файл в моем случае нет необходимости, пока вроде работает.

 

А без всякой директивы тестер создаёт файлы в папке агента?

m_file_handle=FileOpen(m_filename,FILE_READ|FILE_CSV|FILE_SHARE_READ,m_delimiter);

У меня при тестировании всегда ошибка 5004 вылазит.

 
mbjen:

А без всякой директивы тестер создаёт файлы в папке агента?

У меня при тестировании всегда ошибка 5004 вылазит.

FILE_WRITE забыл.

 

Мдя... Три часа пытался понять, что не так с этой самой директивой... 

Хорошо, полез в форум поискать... 

Очень плохо описан этот момент в документации. Что если файл лежит в общей папке - то директива tester_file переносит его в локальную папку агента, и искать файл надо в ней, уже без флага COMMON...

Как мне кажется, необходимо заострить внимание на этот момент в хелпе. 

Причина обращения: