Пример для
#property tester_file
есть в статье Подготовка торгового счета к миграции на виртуальный хостинг (пункт Передача файлов).
Ну и соответственно тестовый советник в котором попробуем в свойство "#property tester_file" подставить входной параметр - имя файла:
//+------------------------------------------------------------------+ //| property_tester_file.mq5 | //| Copyright © 2017, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2017, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" //--- input string file_name="SELL_EURUSD.m PERIOD_H1 754243391.txt"; #property tester_file file_name //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+
При компиляции сразу получаем такую ошибку:
'file_name' - constant expected property_tester_file.mq5 11 23
Значит решить Засаду #1 "в лоб" не получится.
Хорошо, пойдём другим путём - жёстко пропишем в тестовом советнике имена нужных файлов...
Ну, что же, вариант с жёстким указанием имени файла в свойстве "#property tester_file" позволило скомпилировать без ошибок тестовый эксперт:
//+------------------------------------------------------------------+ //| property_tester_file.mq5 | //| Copyright © 2017, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2017, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.001" //--- #property tester_file "SELL_EURUSD.m PERIOD_H1 754243391.txt" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+
Кроме того при миграции на виртуальный хостинг во вкладке "Журнал" терминала есть отчёт о миграции указанного файла:
2017.06.18 20:52:36.048 Virtual Hosting 5882687: migrate file "Files\SELL_EURUSD.m PERIOD_H1 754243391.txt" (5 bytes)
Замечательно, теперь осталось проверить
Засада 2: при очередной синхронизации файл указанный в директиве "#property tester_file" затирается?
Засада #3: при указании 12 #property tester_file эти 12-ть файлов не мигрируют :(
А что, у директивы "#property tester_file " есть какое-то ограничение? Я указал двенадцать "#property tester_file" и в итоге ни один из этих 12-ти файлов не смигрировал.
Уточнение: если мигрировать ТОЛЬКО ОДИН СОВЕТНИК (например из поста #2) и указать в нём 12-ть текстовых файлов - то эти 12-ьб текстовых файлов смигрируют.
При попытке полноценной миграции (несколько чартов, несколько советников и среди них советник в котором указаны 12-ть #property tester_file - эти 12-ть файлов не мигрируют.
Добавлено: билд 1596
Засада #3: при указании 12 #property tester_file эти 12-ть файлов не мигрируют :(
А что, у директивы "#property tester_file " есть какое-то ограничение? Я указал двенадцать "#property tester_file" и в итоге ни один из этих 12-ти файлов не смигрировал.
Уточнение: если мигрировать ТОЛЬКО ОДИН СОВЕТНИК (например из поста #2) и указать в нём 12-ть текстовых файлов - то эти 12-ьб текстовых файлов смигрируют.
При попытке полноценной миграции (несколько чартов, несколько советников и среди них советник в котором указаны 12-ть #property tester_file - эти 12-ть файлов не мигрируют.
Добавлено: билд 1596
Вечером хостинг был остановлен и отменён. С утра попробовал заново: результат прежний - все эксперты и чарты мигрировали, а вот текстовые файлы подключённые через директиву "#property tester_file" не мигрировали.
Добавлено:
на хостинге стоит 1599 билд:
2017.06.19 04:07:07.719 Terminal MetaTrader 5 x64 build 1599 started (MetaQuotes Software Corp.)
В build 1653 заработала отправка через "#property tester_file " 12-ти файлов за раз.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Стала вот такая задача: торгуют несколько советников на MetaTrader 5 hedge счёте. Для каждого советника создаётся несколько текстовых файлов - в эти файлы советники пишут служебную информацию. Нужно перенести эти текстовые файлы на встроенный в терминал виртуальный хостинг (причём нужно именно перенести, так как в файлах уже записана информация).
Засада #1: принцип формирования имени файла
"тип позиции"+"_"+"имя символа"+" "+"период"+" "+"magic"+".txt"
Переменные "имя символа" и "magic" берутся из входных параметров - то есть имя текстового файла может быть разным в зависимости от входных параметров - следовательно директива
не поможет, так она требует заранее известное имя файла, правильно?
...