Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
"Во время оптимизации" - понятие растяжимое. Как и что именно предполагается "во время оптимизации" передавать, учитывая параллельность выполняемых действий?
В MT5, вроде, нельзя прервать оптимизацию через MQL5. Поэтому пример простой - нужно "прервать" (сделать ExpertRemove в OnInit) оптимизацию, если один из пришедших OnTester достиг какого-то значения.
Понятно, что если передавать значения, то через очередной пакет заданий, который будет отправлен на один из удаленных агентов. Но как в этот пакет заданий прописать условие - не ясно.
Для передачи информации с агентов в терминал используйте фреймы. Не нужно файлов. Хотя и файл можно во фрейм запихнуть.
Что за фреймы, расскажите кратко плз
В MT5, вроде, нельзя прервать оптимизацию через MQL5. Поэтому пример простой - нужно "прервать" (сделать ExpertRemove в OnInit) оптимизацию, если один из пришедших OnTester достиг какого-то значения.
Понятно, что если передавать значения, то через очередной пакет заданий, который будет отправлен на один из удаленных агентов. Но как в этот пакет заданий прописать условие - не ясно.
Что за фреймы, расскажите кратко плз
А как раз продекларированный файл нельзя менять/дописывать в папке терминала? Если речь именно про пакеты, то наверно каждый следующий пакет считает файл заново. Вот внутри пакета заданий что-то изменить/переслать проблематично.
@Slava просим ответить. Управлять размерами пакетов нет возможности, поэтому возможности практически нулевые даже здесь.
Интересно, что агенты не хранят глобальные переменные. И это в каком-то смыле логично (ниже приведу пример), но тогда удаленные агенты не должны хранить и файлы.
Пример
Поэтому хранение глобальных переменных и файлов на удаленных агентах логично держать под запретом. Но на файлы, вроде, такой заперт не распространяется.
И все же, как во время оптимизации на удаленные агенты что-либо отправить? Ну или хотя бы, как через MQL прервать оптимизацию? Сейчас возможности руками это сделать есть, а программно - нет.
Какой-то перекос сейчас в возможностях, даже некоторые конфиденциальные данные владельцев агентов Облака доступны, а логичная возможность передать на них хоть что-то - нет.
ЗЫ Пример советника для Маркета, который не будет оптимизироваться из-за названных выше причин
С облачной оптимизацией дело обстоит несколько по-другому, чем с локальной оптимизацией.
Облаку дают пачку заданий. Большую пачку. И эта пачка сразу же расходится по агентам. Практика показывает, что на облачных серверах очереди заданий не образуется, так как свободных агентов гораздо больше.
Поэтому запись какого-либо признака в файл бессмысленна.
Другое дело, что эксперт мог бы завершать оптимизацию по получению этого признака из фрейма в OnTesterPass. Что-то типа функции OptimizationStop. Тогда все задания будут застоплены сервером. Всех денег не сэкономите, но если расчёты серьёзные, то экономия может оказаться серьёзной.
С облачной оптимизацией дело обстоит несколько по-другому, чем с локальной оптимизацией.
Облаку дают пачку заданий. Большую пачку. И эта пачка сразу же расходится по агентам. Практика показывает, что на облачных серверах очереди заданий не образуется, так как свободных агентов гораздо больше.
Поэтому запись какого-либо признака в файл бессмысленна.
Все зависит от количества прогонов для оптимизации. Чем больше - тем выше вероятность нарваться повторно на одного и того же Облачного агента. Ну а там с примером выше выйдет нехорошесть (особенно, если писать в Common-папку). По-моему, такие выкрутасы с файлами нужно запрещать.
Но это все частности большого вопроса о передаче данных на агентов. Если правильно понял, то почти бессмысленно что-то передавать из-за озвученных практических особенностей Облака.
Другое дело, что эксперт мог бы завершать оптимизацию по получению этого признака из фрейма в OnTester. Что-то типа функции OptimizationStop. Тогда все задания будут застоплены сервером. Всех денег не сэкономите, но если расчёты серьёзные, то экономия может оказаться серьёзной.
По-моему, такие выкрутасы с файлами нужно запрещать.
Совсем запрещать файлы не нужно. Должна быть песочница с контекстом в одну сессию, т.е. чиститься между запусками.
Какой-то механизм чистки присутствует и сейчас, но не понял его логики.
Помимо песочницы есть еще COMMON-папка. Как с Облачными - не знаю, но с локальных точно вытягиваются все файлы через фреймы.