Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2657

 
Vitaly Muzichenko #:
Поэтому первый начинается с тикета #4

А почему первый 0.02 ? А инпутах так стоит?

 
Artyom Trishkin #:

А почему первый 0.02 ? А инпутах так стоит?

Ступил, не убрал автолот

--

Проверил вариант с коэффициентом 1.3, результат совсем не тот

--

В оригинале так


 

С коэффициентом 1.5


--

Тот код что Я написал, работает как нужно = соответствует оригиналу, но некрасивый.

Пожалуй, оставлю "как есть"

 
Кто-нибудь может подсказать, есть ли возможность вызвать функцию OnTester в режиме а) одиночного прогона б) в режиме прогона на всех символах в "обзоре рынка"? Интересует прежде всего работа с результатами оптимизации и функциями ряда Frame*. Нужно научится сохранять данные, полученные оптимизатором, для анализа во внешней системе. 
 

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

 
Yuriy Bykov #:

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

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

 
Vasiliy Sokolov #:

Вот только FrameAdd почему-то работает в ней только в том случае, если идет оптимизация параметров.

Она так и должна работать, согласно документации и заявленной цели её использования.
Просто требуется более вдумчиво разобраться с функциональностью механизма фреймов данных, отправляемых с агентов тестирования главному терминалу. При отсутствии использования агентов тестирования, то есть при одиночном прогоне, этот механизм не задействуется.
Про режим оптимизации по всем символам из обзора рынка ничего сказать не могу, так как не пользовался им из-за ненадобности. 
 
Yuriy Bykov #:
Она так и должна работать, согласно документации и заявленной цели её использования.
Просто требуется более вдумчиво разобраться с функциональностью механизма фреймов данных, отправляемых с агентов тестирования главному терминалу. При отсутствии использования агентов тестирования, то есть при одиночном прогоне, этот механизм не задействуется.
Про режим оптимизации по всем символам из обзора рынка ничего сказать не могу, так как не пользовался им из-за ненадобности. 

Это нарушение гомогенности среды. Результат расчета не должен зависеть от того, кто этот расчет делает: тестер или агент.

 
Vasiliy Sokolov #:

Это нарушение гомогенности среды. Результат расчета не должен зависеть от того, кто этот расчет делает: тестер или агент.

Результат расчета и не будет зависеть от того, на локальном агенте выполняется или на удаленном (тестер при одиночном прогоне использует одного локального агента). Если, конечно, мы специально не будем делать в OnTester() проверку и выполнение разного кода в зависимости от режима запуска прогона - одиночный или в составе оптимизации.
Так что никакого нарушения нет. Сам в свое время когда разбирался с механизмом фреймов данных, столкнулся с тем, что при поверхностном взгляде ожидаемое поведение и способы использования не соответствуют действительности.
Например, абсолютно неожиданно оказалось, что при запуске оптимизации с задействованием механизма фреймов помимо тестера запускается ещё один экземпляр советника на новом графике в терминале!
Пришлось потратить время на изучение документации и учебника, и тогда всё встало на свои места.

 
Yuriy Bykov #:
Результат расчета и не будет зависеть от того, на локальном агенте выполняется или на удаленном (тестер при одиночном прогоне использует одного локального агента). Если, конечно, мы специально не будем делать в OnTester() проверку и выполнение разного кода в зависимости от режима запуска прогона - одиночный или в составе оптимизации.
Так что никакого нарушения нет. Сам в свое время когда разбирался с механизмом фреймов данных, столкнулся с тем, что при поверхностном взгляде ожидаемое поведение и способы использования не соответствуют действительности.
Например, абсолютно неожиданно оказалось, что при запуске оптимизации с задействованием механизма фреймов помимо тестера запускается ещё один экземпляр советника на новом графике в терминале!
Пришлось потратить время на изучение документации и учебника, и тогда всё встало на свои места.

Это не у Вас все встало на свои места, просто вы подстроились под эту странную реализацию. Логики там нет. Зато ошибка на ошибке. Прогонка на всех символах - это тоже оптимизация, но фреймы в этом режиме не работают. Это нарушение гомогенности, которое к тому же не соответствует документации. В ней четко сказано: вызов фреймов в функции OnTester. И не слово не сказано, что вызов фрейма в этой функции гарантирует ожидаемый результат. Оказывается, он зависит еще от режима запуска.