Есть оптимизация параметров, и есть тестирование стратегии. Понятия оптимизации тестирования не существует.
Кроме того, данные функции не работают в тестере стратегий, кроме как на графике визуального тестирования.
Прошу прощение за невнятное трактование понятий, Вы как всегда правы - оптимизация параметров.
Ввиду такого поворота событий (просто я предполагал, что тестирование, и уж тем более оптимизация должны иметь единый расчетный механизм логики), возникли пару встречных вопросов:
Если я правильно понял, то в режиме оптимизации - Тестер не работает с графическими объектами графика? Хотя, нет - канал же он рисует, в противном случае ф-ция ObjectCreate возвращала бы false...
В таком случае, существует ли математическая альтернатива данной ф-ции (ObjectGetValueByTime) или её надо самому разрабатывать с нуля?
Если я правильно понял, то в режиме оптимизации - Тестер не работает с графическими объектами графика?
Посмотрите Клиентский терминал / Тестер стратегий / Визуализация тестирования / Запуск
Для того чтобы запустить визуализацию тестирования необходимо выполнить ряд действий:
- Отключить режим оптимизации, так как визуализация работает только в режиме тестирования.
Спасибо уважаемый за отклик!
Но как тогда быть, если логика торговой стратегии построена в основном с использованием графических объектов, таких как Линии Ганна, Фибоначчи, Каналы и пр.
Получается, что в моем случае об оптимизации параметров можно забыть и тестировать методом глаз-экран==ручка-бумага, и так тысячи раз прогонять - эмулируя генетический алгоритм?..
Хм... как-то не очень весело получается.
Спасибо уважаемый за отклик!
Но как тогда быть, если логика торговой стратегии построена в основном с использованием графических объектов, таких как Линии Ганна, Фибоначчи, Каналы и пр.
Получается, что в моем случае об оптимизации параметров можно забыть и тестировать методом глаз-экран==ручка-бумага, и так тысячи раз прогонять - эмулируя генетический алгоритм?..
Хм... как-то не очень весело получается.
Ну что здесь можно сказать? - Рош же уже отметил, что
данные функции не работают в тестере стратегий, кроме как на графике визуального тестирования.
Если речь идёт о Ваших функциях, то они как бы не должны работать в режиме оптимизации. ..Если не появятся опровержения со стороны разработчиков.
В общем, проведя дюжу экспериментов - выявил зависимость ошибки в ф-ции ObjectGetValueByTime при визуальном тестировании!
Как выявить эту ошибку:
При запуске тестирования с галочкой "Визуализация" дождаться когда пойдет эмуляция тиков, а затем нажать кнопку "Прокрутить до" (конечной даты) - получим Первый результат;
Для Второго результата - нужно ползунок "скорости" появления тиком заранее переместить на максимум, закрыть окно визуализации и заново запустить её - результат будет разниться!
Первый результат | Второй результат |
Price = 1.47217624 | Price = 1.47217624 |
Ах да, нужно немного внести корректировку в код:
FileWrite(filehandle, "Price = ", DoubleToString(result, _Digits)); Заменить на: FileWrite(filehandle, "Price = ", DoubleToString(result));
Что касается моих ф-ций (альтернатива расчета цены относительно времени), то они успешно работают как в режиме оптимизации так и в визуальном тестировании!

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравия желаю, товарищи разработчики MQL5!
Скажите пожалуйста, почему на последнем билде 619, да и на ранних тоже, не работает ф-ция ObjectGetValueByTime при оптимизации тестирования?
При визуальном тестировании всё - ОК и даже на отладке кода - также всё работает корректно, а вот с ходом оптимизации - не сложилось...
Или это только у меня такой косяк присутствует? Проверьте, пожалуйста, кто-нибудь у себя этот код:
Какой результат в итоге выходит:
Price = 1.47376
Price = 1.47386
Price = 1.47397
Price = 1.47405
Price = 1.47415
Price = 1.47426
Price = 1.47436
Price = 1.47447
и т.д.
Price = 0.00000
Price = 0.00000
Price = 0.00000
Price = 0.00000
Price = 0.00000
Price = 0.00000
Price = 0.00000
Price = 0.00000
и т.д.