Работа агентов с файлами

 
Если я правильно понимаю, когда эксперт создает при оптимизации файлы, то они сохраняются на тех компах, где крутится агент. А существует ли возможность совместной работы агентов с одним файлом данных (для записи/чтения), расположенном на каком-нибудь общедоступном (для агентов) локальном или сетевом ресурсе? Например, у меня в OnDeinit советника располагается блок сбора/анализа/отбора стат. данных прогонов и необходима работа только с одним файлом.
 

При тестировании только на своём компьютере с использованием локальных агентов все агенты имеют доступ к общей папке клиентского терминала. Другого способа коллективного чтения-записи нет.

Мы сейчас рассматриваем возможность передачи порции данных от любого агента (локального, удалённого или облачного) после очередного прохода оптимизации на сторону клиентского терминала с последующей записью этой порции в один файл. Однако, этот файл не будет доступен агентам на чтение в процессе оптимизации. Этот файл, содержащий порции данных после проходов оптимизации, можно будет обработать штатными средствами MQL5


 
stringo:



Слава , а про открытие маркета что нибудь по срокам известно ?

Спасибо 

 
stringo:

При тестировании только на своём компьютере с использованием локальных агентов все агенты имеют доступ к общей папке клиентского терминала. Другого способа коллективного чтения-записи нет.

Мы сейчас рассматриваем возможность передачи порции данных от любого агента (локального, удалённого или облачного) после очередного прохода оптимизации на сторону клиентского терминала с последующей записью этой порции в один файл. Однако, этот файл не будет доступен агентам на чтение в процессе оптимизации. Этот файл, содержащий порции данных после проходов оптимизации, можно будет обработать штатными средствами MQL5


Т.е. один агент принципиально не может узнать результата прогона другого агента?
 
Хорошо, тогда так: результаты тестирования на всех агентах попадают на терминал. Почему бы не разрешить избранному локальному агенту обращаться к этим результатам? А в тексте советника прописывать что-то типа Is_ИзбранныйАгент{обработка результатов}.
 
muallch:
Т.е. один агент принципиально не может узнать результата прогона другого агента?
Если Вы оптимизируете только на локальных агентах, то может. Я же сказал, что все локальные агенты имеют доступ к общей папке всех клиентских терминалов
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
stringo:
Если Вы оптимизируете только на локальных агентах, то может. Я же сказал, что все локальные агенты имеют доступ к общей папке всех клиентских терминалов
Да нет же! С локальными все ясно. Речь о локальных И удаленных агентах. Выше я предложил, чтобы выбранный агент (вот тут именно локальный) имел доступ к результатам прогонов всех агентов, которые так и так собираются на терминале.
 
stringo:
Если Вы оптимизируете только на локальных агентах, то может. Я же сказал, что все локальные агенты имеют доступ к общей папке всех клиентских терминалов
Я правильно понимаю, что все локальные агенты могут полноценно (чтение/запись) пользоваться одним файлом в общей папке? Как то же все-таки при работе с одним файлом доступ же должен  быть разделен? Там война за файл не получится?)
 
Figar0:
Я правильно понимаю, что все локальные агенты могут полноценно (чтение/запись) пользоваться одним файлом в общей папке? Как то же все-таки при работе с одним файлом доступ же должен  быть разделен? Там война за файл не получится?)

Как практически единственный доступный вариант синхронизации, работать с помощью отдельных .lock файлов.


 
Renat:

Как практически единственный доступный вариант синхронизации, работать с помощью отдельных .lock файлов.

Спасибо Ренат. Боялся что сильно отстал от прогресса. Мало-ли чего... Единственно, справка - ни "lock", ни ".lock" не знает. Какой-нибудь примитивный примерчик или ссылочку на оный не завалялся? И еще раз спасибо.
 
Figar0:
Спасибо Ренат. Боялся что сильно отстал от прогресса. Мало-ли чего... Единственно, справка - ни "lock", ни ".lock" не знает. Какой-нибудь примитивный примерчик или ссылочку на оный не завалялся? И еще раз спасибо.

Насколько я понял, речь о файле-семафоре.

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

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

Как-то так. 

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