Я об этом думал, но, на данный момент, занимаюсь реализацией системы без подгона. А вообще, есть же статьи на эту тему. Например, https://www.mql5.com/ru/forum/39285
Чем не устраивает?
- 2007.04.16
- www.mql5.com
Я об этом думал, но, на данный момент, занимаюсь реализацией системы без подгона. А вообще, есть же статьи на эту тему. Например, https://www.mql5.com/ru/forum/39285
Чем не устраивает?
Там несколько иной подход, но суть одна - программа управляющая процессом оптимизации должна быть отдельно, а сама программа-оптимизатор отдельно. И да, наверное эта программа должна запускать терминал через ini файл или там с ключами какими.
Как это можно реализовать, что бы все корректно работало и при оптимизации с использованием удаленных агентов?
На мой взгляд, нужен отдельный скрипт (на том же AutoIt, или на любом языке программирования), который бы в цикле формировал INI-файлы с нужными критериями приближаясь к необходимым для тебя параметрам.
Пакетный запуск МТ5 - поддерживает все нужные режимы, после оптимизации пишет XML-файл отчета (можешь и свой файл создавать при обработке внутри OnTesterPass), причем задействует и удаленных агентов.
Соответственно, этот самый отдельный скрипт будет исследовать файлы отчета, формировать нужные INI-файлы, и запускать MT5 на оптимизацию.
На мой взгляд,
На мой взгляд, нужен отдельный скрипт (на том же AutoIt, или на любом языке программирования), который бы в цикле формировал INI-файлы с нужными критериями приближаясь к необходимым для тебя параметрам.
Пакетный запуск МТ5 - поддерживает все нужные режимы, после оптимизации пишет XML-файл отчета (можешь и свой файл создавать при обработке внутри OnTesterPass), причем задействует и удаленных агентов.
Соответственно, этот самый отдельный скрипт будет исследовать файлы отчета, формировать нужные INI-файлы, и запускать MT5 на оптимизацию.
Мне нужно ещё как то компилировать новый код, так-как надо передавать файлы агентам после их обработки с помощью скрипта.
Мне нужно ещё как то компилировать новый код, так-как надо передавать файлы агентам после их обработки с помощью скрипта.
Передавать не проблема. И нужен даже не скрипт внешний, как я понимаю, а лучше программа. Ещё я думаю, и внешне не к чему. Проще dll видимо написать и там будет раз в нужный период времени происходить оптимизация. Но я вот не совсем ещё придумал т.к. занять щяс своими ботами, как будет происходить процесс оптимизации. Если бы не пару хотя бы это реализовать, можно взяться. Если самому - чутка позже. В реализации сложности нет, главное составить картинку происходящего и всё получится. По крайне мере, я это вижу так..
Передавать не проблема. И нужен даже не скрипт внешний, как я понимаю, а лучше программа. Ещё я думаю, и внешне не к чему. Проще dll видимо написать и там будет раз в нужный период времени происходить оптимизация. Но я вот не совсем ещё придумал т.к. занять щяс своими ботами, как будет происходить процесс оптимизации. Если бы не пару хотя бы это реализовать, можно взяться. Если самому - чутка позже. В реализации сложности нет, главное составить картинку происходящего и всё получится. По крайне мере, я это вижу так..
Библиотек оптимизации в инете как грязи, для различных сред.
Файловый обмен целесообразней, т.к. позволяет оперативно менять передаваемую инфу по ходу пьесы. С ДЛЛ это сложнее. ДЛЛ лучше делать на последнем этапе, когда система уже отработана.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Предлагаю обсудить возможность создания на MQL5 собственного сценария оптимизации с целью автоматизации процесса и экономии времени.
Представим, что у нас имеется 10 индикаторов, каждый из которых имеет 5 настроек с диапазоном 3, мы знаем что индикаторы 1-2 отвечают за открытие позиции, индикаторы 3-8 за фильтрацию сигнала на открытие позиции, а индикаторы 9-10 за закрытие позиции, при этом нам известны взаимные комбинации настроек индикаторов, которые заведомо нужно исключить.
Оптимизировать сразу такой советник полным перебором или с помощью генетики было бы неоправданно, в первом случае из-за потраченного времени, во втором случае из-за полного рандома.
А вот взять и оптимизировать индикаторы по группам с определенным сценарием было бы продуктивно, к примеру можно использовать такой сценарий:
1. Найти примерные точки выхода и входа - тут оптимально использовать генетику (но для этого надо что-то менять, так как стандартная может не работать по причине исключения диапазонов).
2. По результатам п.1 расширить области поиска в точках с хорошим результатом (использовать для этих целей специальную фитнес-функцию), при этом зафиксировав поочередно значения переменных для индикаторов отвечающих за открытие позиции и так же за открытие, а тот индикатор что не зафиксирован будет работать с генетикой в узком диапазоне. Таким образом мы выявим лучшие настройки индикаторов на открытие и закрытие позиции.
3. По результатам п.2 мы имеем базовые настройки(можно оставить группу настроек) для работы уже с фильтрами. Тут можно сделать полный перебор для каждого фильтра по отдельности, при этом остальные фильтры будут отключены, что бы не влиять на результат, соответственно отобрать 10-15% хороший результатов от каждого фильтра с помощью другой фитнес-функции.
4. По результатам п.3, из отобранных вариантов настроек всех индикаторов, сделать генетический засев, или постепенно увеличивать комбинации индикаторов с отобранными настройками.
5. По окончанию п. 4 можно ещё раз поработать со входами и выходами.
6. Алгоритм 1-5 можно повторить несколько раз при желании, главное сохранять промежуточные значения и постоянно исключать уже известные плохие варианты настроек индикаторов.
Вот, к примеру такая задача у меня. Т.е. если схематично, после окончания одного этапа расчетов нужно проанализировать результаты и в зависимости от этих результатов продолжить выполнять следующие этапы работы.
Как это можно реализовать, что бы все корректно работало и при оптимизации с использованием удаленных агентов?