Renat Fatkhullin:
Кардинально расширим детальные настройки тестирования с комиссиями, условиями срабатывания ордеров, проскальзываниями и тд
Это дополнение хотелось бы увидеть в числе первых.
Сравнение прогонов - отличная штука.
Еще есть такая потребность с бородатых времен, что стали популярны сторонние решения: объединение нескольких проходов в один.
Т.е. запускается "одновременно" несколько ТС, но строится их общая история и эквити.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2019.07.22 01:54
Тестер становится очень сильной молотилкой, когда наделяется возможностью автоматизации.
Если разработчики включат в MQL штатные функции управлением Тестером (задать дату/символ/режим, запустить лучший одиночный прогон, сохранить отчет и т.д.), он станет во сто крат сильнее всех потенциальных конкурентов. И из серьезной игрушки превратится в небывалый исследовательский инструмент, т.к. станет настоящей вычислительной молотилкой.
Но сомневаюсь, что это будут делать. Если кто-то может помочь автоматизировать выделенное, было бы здорово.
TesterSetInfo, TesterGetInfo.
Еще есть такая потребность с бородатых времен, что стали популярны сторонние решения: объединение нескольких проходов в один.
Т.е. запускается "одновременно" несколько ТС, но строится их общая история и эквити.
Поддерживая коллегу. Приходится это реализовывать на стороне, но с другой стороны, как это организовать в тестере? Хм, добавить какой то признак к такому проходу типа "Портфель №" - может так?
Поддерживая коллегу. Приходится это реализовывать на стороне, но с другой стороны, как это организовать в тестере? Хм, добавить какой то признак к такому проходу типа "Портфель №" - может так?
В ручную назначаем агентов для каждой одновременно тестируемой программы.
Например имеем 8 агентов, 4 назначаем одному эксперту, 4 другому. В итоге одновременно могут тестироваться только две mql программы.
Или каждому эксперту выделяем по 2 агента, тогда на тех же 8 агентах уже тестируется 4 программы и т.д.
Или как то автоматически выделять агентов, по типу гонки, кто первый забрал агента, того и тапки.
Агент выполнив одну задачу, снова ждёт когда его заберут на выполнение из очереди задач. и т.д.
Таким образом количество одновременно тестируемых программ увеличивается.
Под каждую одновременно тестируемую программу, автоматически выделяется своё виртуальное окружение тестера.
И каждый тест выполняется сам по себе в одно и то же время, после завершения всех проходов, результаты каждой программы суммируются и высчитываются средние значения.
Выводиться общая статистика.
В ручную назначаем агентов для каждой одновременно тестируемой программы.
Например имеем 8 агентов, 4 назначаем одному эксперту, 4 другому. В итоге одновременно могут тестироваться только две mql программы.
Или как то автоматически выделять агентов, по типу гонки, кто первый забрал агента, того и тапки.
Агент выполнив одну задачу, снова ждёт когда его заберут на выполнение из очереди задач. и т.д.
Таким образом количество одновременно тестируемых программ увеличивается.
Под каждую одновременно тестируемую программу, автоматически выделяется своё виртуальное окружение тестера.
И каждый тест выполняется сам по себе в одно и то же время, после завершения всех проходов, результат каждой программы суммируется, и выводиться общей статистикой.
Мой вариант проще и функциональней, позволяет тестировать не спеша без каких либо лишних телодвижений столько советников и настроек к ним, сколько нужно. Вашему же варианту требуется какой то менеджер для распределения задачь... Нужно совместить два варианта, добавить как раз менеджер портфельного тестирования, который формируется пользователем и где указывается советник и сет/настройки к нему, ну и идентификатор портфеля - что б можно было потом сравнивать разные портфели, вот тогда уже он будет универсален и функционален.
Мой вариант проще и функциональней, позволяет тестировать не спеша без каких либо лишних телодвижений столько советников и настроек к ним, сколько нужно. Вашему же варианту требуется какой то менеджер для распределения задачь... Нужно совместить два варианта, добавить как раз менеджер портфельного тестирования, который формируется пользователем и где указывается советник и сет/настройки к нему, ну и идентификатор портфеля - что б можно было потом сравнивать разные портфели, вот тогда уже он будет универсален и функционален.
Ну вот и родились два подхода.
Или тестировать каждую программу последовательно, и затем результаты самому формировать по номеру портфеля, для общей статистики.
Или тестировать каждую программу одновременно в многопоточном режиме, и сразу выводить общую статистику для этих установленных сетов.
Разница только в действиях по начальным настройкам, или ручном формировании общей статистики после теста.
И возможно в общей скорости выполнения тестов.
p.s. MetaQuotes - мечты иногда сбываются.
Ренат, пожалуйста, добавьте в выбор стилей стилизатора МЕ еще один вариант - MQ Old. Тот, что был раньше. Для вас - мелочь, а для многих пользователей сэкономит много нервов.
Очень не хочется привыкать к новому стилю... Меня старый вполне устраивает.
Спасибо.
А что такое stress test?
(ну то есть какой функционал подразумевается)
Отличная новость!
Это подтолкнет к переходу на МТ5.
Ведь все будут переписывать программы под мт5, чтобы там тестировать..
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не пугайтесь полуразобранного состояния тестера в бета-версиях. Мы специально выкатыванием в беты все промежуточные версии, чтобы быстрее получать результаты.
Как мы реформируем тестер стратегий:
С помощью поисковой строки можно легко найти прошлые результаты в дополнение к прямой загрузке из файла.
Пока в бета-версиях мы включили режим тестирования в пипсах, что резко сокращает объем моделирования и ускоряет тесты.
Полный набор настроек будем вводить чуть позже.
Особенно будет видно ускорение на локальных агентах, где не придется прокачивать большие объемы и не будет множества копий исторических данных.
Цель в в максимальном ускорении задач, чтобы не было задержек из-за неподходящих или тормозящих агентов.
Кроме того, сам язык MQL5 активно развивается, мы включили в него области видимости(scopes), расширили поддержку шаблонов, работу с неявно создаваемыми классами и тд.
Скорее всего скоро включим новые функции:
Позже мы перейдем на революционную задачу по включению в язык модулей.
Это C++ библиотеки, перекомпилированные в EX5 формат и доступные для прямого использования из MQL5 кода. То есть, мы начнем работу по перекомпилированию опенсорсных библиотек, когда их низкоуровневые/опасные вызовы полностью мапятся в наш безопасный рантайм и для MQL5 кода делаются безопасные врапперы.
За счет этого мы планируем увеличить функциональность языка, не потеряв в безопасности. Сборки модулей доступны только нам, что дает определенный уровень безопасности полученных решений.
Этот механизм уже работает.
Например, часть функционала среды MQL5 уже давно во время компиляции нативно встраивается прямо в EX5 код, что дает возможность очень хорошей оптимизации на уровне сборки.