Оптимизация в Тестере стратегий - страница 15

 
Urain:

Ежели бы применить динамичный массив типа лонг, для такой задачи, то наверно многое бы изменилось. При условии что самая тормознутая функция ФФ, это не сильно подпортит алгоритм. Вот правда не расковыряв сам алгоритм трудно сказать насколько сложна будет перелделка.
Уже думаем над расширением диапазона.
 
Renat:
Уже думаем над расширением диапазона.

Вот наткунлся, не плохая статейка по гибридному ГА     http://masters.donntu.edu.ua/2006/kita/bashev/library/hybrid.html

ЗЫ Вкратце суть: Бинарный ГА + квазиньютоновский метод оптимизации рулит.

Интеллектуальные модели на основе гибридного генетического алгоритма с градиентным обучением лидера, Н.Б. Паклин, М.А. Сенилов, В.А. Тененев, ГОУ ВПО "Ижевский государственный технический университет", г. Ижевск, 2004
  • masters.donntu.edu.ua
Данный доклад в сентябре 2004 г. был опубликован в научно-теоретическом журнале "Искусственный интеллект" и апробирован на V Международной конференции "Искусственный интеллект-2004. Интеллектуальные и многопроцессорные системы" (20-25 сентября 2004 года, Крым, п. Кацивели, ссылка на печатный источник: Паклин Н.Б., Сенилов М.А., Тененев В.А...
 
Dmitriy2:

А я выбрал немножко параметров, щелкнул тест... утром посчитал количество прогонов и сколько осталось... вычислил что до конца оптимизации 50дней... Комп 4хядерн + 2ядр агенты... Нафиг такую оптимизацию, выключил...

Параметров явно не 5-6 и период не один год:)) И вообще, время до конца оптимизации всегда показывает неверно (по крайней мере так было в МТ4), чем дальше оптимизация тем быстрее уменьшается время до окончания оптимизации, у меня изначально тоже в МТ5 пишет 450 часов , а в реале часов 100 где то.

 
Urain:

Вот наткунлся, не плохая статейка по гибридному ГА     http://masters.donntu.edu.ua/2006/kita/bashev/library/hybrid.html

ЗЫ Вкратце суть: Бинарный ГА + квазиньютоновский метод оптимизации рулит.

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

А так - да, гениальное решение ))) 

Допустим, решили эту проблему, все равно остается вопрос выбора шага продвижения по градиенту 

Тот же самый ГА с элементами "элитизма" и большом количестве особей в популяции закрывает эти проблемы за приемлемое время

Речь идет о пространстве поиска размерностью порядка нескольких десятков. Все что больше - от лукавого (исходя из личного опыта, утверждаю, что оптимизация нескольких ТС с 30-тью адаптивными параметрами на истории >100тыс баров тупо приводила к переобучению).

 
Renat:
Уже думаем над расширением диапазона.
Было бы здорово. У меня таки есть разумные применения для большого числа параметров.
 

Не тянет оптимизатор 64 параметра.  Максимум 62, на 63-ем уже помирает (n/a) :)

Эксперт для проверки в прицепе.  Set-файл там же. Чтоб не писать, пришлось сгенерить.

Решается задачка генерации восьми ортогональных векторов.

Фитнесс-функция вычисляет все попарные скалярные произведения и суммирует их абсолютные величины с обратным знаком.

Может мне тупо повезло, но пару раз из четырёх получил полноценный (правильный-нулевой) результат.

Ещё прикольно бывает зафиксировать несколько (2-3)  векторов и наблюдать как остальные пытаются таки пристроиться перпендикулярно... :)

Решает быстро, что, несомненно, радует. 

Не очень понравилось, что отображает во вкладке "Результаты оптимизации" максимально 20 оптимизируемых параметров.

// Да, ещё баг всплыл по ходу - при 64 input-параметрах они перестали подсвечиваться в MetaEditor'e. Отображаются просто как обычные переменные.

--

Скрипт-генератор тоже в прицепе. 

Генерит эксперта и set-файл соответствующей "размерности", размерность указывается в параметре при генерации.

Забираете имущество, естественно, в папке ...\MetaTrader 5\MQL5\Files

Можно поиграться и с векторами меньшей размерности.

// с большей пока не получится.  ждёмс. :)

Кстати, для пяти векторов задачку оптимизатор не решил с пяти раз ни разу.  Самый лучший результат для пяти векторов - CustomMax == -10

p.s. Позже: ну да, туплю, при обозначенных в set-файле условиях максимальный результат для нечётных векторов == -n*(n-1)/2,

так что всё правильно, ген-алгоритм максимумы находит всегда успешно. // ну почти :)

Файлы:
 
Renat:
Уже думаем над расширением диапазона.

Ура! Рад что разработчики наконец то поняли что людям нужен тестер без ограничений, если mt5 позиционировать как новую ступень в авто-трейдинге, зачем же тогда системам с большими вычислениями оставлять препятствие в 64, будь то это НС или что то другое.

Буду с нетерпением ждать билд с исправлением и возможностью продолжить свои проекты на стандартном тестере. (а то свой тестер с нуля писать как то уж накладно...)

 
yu-sha:

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

А так - да, гениальное решение ))) 

Допустим, решили эту проблему, все равно остается вопрос выбора шага продвижения по градиенту 

Тот же самый ГА с элементами "элитизма" и большом количестве особей в популяции закрывает эти проблемы за приемлемое время

...

При вычислении градиента без частной производной потребуется несколько пробных точек в окрестности. Имея их ФФ можно так же вычислить величину минимального шага по каждому параметру. Ну а там можно удваивать шаг(начиная от минимального) пока следующая точка по ФФ не окажется меньше предыдущей. А найдя её на предыдущей снова вычисляется градиент. И пошли дальше.

 

Все умные такие - просто ужас!

А, будьте так добры, подскажите\раскажите - как к моему двухядерному, добавить ещё Агентов.

Где-то видел на тесте (3D, что ли) всё летало и порхало и агентов на полэкрана.

Ну сложно мне терпеть тест 2-х параметров (где-то 1200 проходов) по полчаса и больше. Спасибо.

 
artall:

Все умные такие - просто ужас!

А, будьте так добры, подскажите\раскажите - как к моему двухядерному, добавить ещё Агентов.

Где-то видел на тесте (3D, что ли) всё летало и порхало и агентов на полэкрана.

Ну сложно мне терпеть тест 2-х параметров (где-то 1200 проходов) по полчаса и больше. Спасибо.

Пообщайтесь в этой ветке --> Сеть многоядерного тестирования для всех желающих,

там хватает народу который изучил подробно этот вопрос.

Причина обращения: