Постов с тегом "генетическая оптимизация": 7

генетическая оптимизация


Синтез торгового алгоритма методом генетического программирования

Метод ГП по своим свойствам потенциально мог бы являться универсальным методом поиска алгоритма оптимизирующего заданную целевую функцию. И я как любитель эволюционной оптимизации не мог пройти мимо такой заманчивой идеи.

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

Например, функционал вычисления минимума/максимума в заданном окне получает на вход интересующую величину и значение размера окна, а также имеет 4 выхода: минимум/максимум, позиция точки минимума/максимума в окне.

ГП должен подобрать функционалы и связать их входы и выходы так, чтобы в итоге получился единственный выход типа сигнал (сигнал есть либо нет), который и будет являться сигналом на покупку/продажу. Связанные функционалы с общем случае образуют граф. Целевой функцией является критерий Шарпа с поправкой — наказанием за информационную сложность алгоритма.



( Читать дальше )

Видео с Алгочетверга: инфобиоз и опыт алготрейдера. Доклад Алексея Афанасьевского на Алгочетверге 4 декабря

Изучая физиологию нервной системы человека и животных, нейробионика даёт возможность совершенствовать и развивать архитектуру вычислительной техники и нейронных сетей. Как мы узнали на Алгочетверге, Алексей Афанасьевский @agaranga сумел приспособить технологии искусственной жизни и эволюционного программирования, как минимум, к трём задачам:

1. самообучаемые игрушки-графы (практической пользы не приносят, но забавны)
2. топология транспортной системы Франции с составлением расписаний движения междугородных автобусов и железных дорог 
3. программа для авиадиспетчеров
4. собственно, трейдинг. 
Видео с Алгочетверга: инфобиоз и опыт алготрейдера. Доклад Алексея Афанасьевского на Алгочетверге 4 декабря
Конспект и видео

Фишка методов программирования искусственной жизни (ИЖ) весьма актуальна для трейдеров HFT и big data. Этот подход дает надежду найти успешное решение не полным перебором массы вариантов, а способами, похожими на эволюционную теорию Дарвина. Надо сказать, что применение биологических терминов несколько сбивает с толку: мутация, наследование, отбор. Конечно, за реализацию эволюционных процессов, включая борьбу за существование, отвечает программист, а предмет борьбы – не пища, а вычислительное время.

( Читать дальше )

2.5 года торговли ботом

Прочитал пост smart-lab.ru/blog/121566.php, жизненно, решил тоже поделиться.
Торгую ботом около 2.5 лет большой пакет стратегий на RI и GZ таймфреймы 5, 15, 60. Бот в виде Quik + самописная программа + MySQL. Поскольку это требует скромных ресурсов, то все отлично работает на виртуальном сервере (покупаю за 400р/мес). Скорости от бота не требуется. Алгоритм отлажен так чтобы не требовать контроля.
Сумма сейчас 3 ляма из них 1.5 честнозаработанных. За первые 1.5 года напилил больше 100%. Затем, где-то в мае прошлого года рынок испортился и эквити ушла в горизонталь. Сейчас есть позывы к нормализации рынка, но лето может все испортить. С другой стороны есть новые данные с рынка и на них уже готовы новые стратегии, которые не плохо работали бы если бы да кабы. Будем посмотреть.
Стратегии непосредственно руками не разрабатываю, использую самописный тестер на исторических данных и генетический алгоритм для поиска стратегий. Оптимизатор выбирает несколько правил из набора доступных, а также подбирает параметры каждого правила. Набор доступных правил кодирую сам по мотивам всяких статей и собственным соображениям. Сигналы на вход и выход есть комбинация правил. Плюс также есть варианты выхода по времени и Stop Loss, параметры эти и еще более другие подбираются алгоритмом. В общем руками стратегии не ковыряю, смотрю только эквити из тестера. Иногда смотрю какие правила и какие парамеры используются. Оптимизирую на старых данных, кусок самых свежих использую для отбраковки переоптимизированных. Естественнос стремлюсь уменшать число параметров, так что в последнее время ограничиваюсь двумя правилами, что дает информационную емкость перебираемого пространства 30-40 бит.


( Читать дальше )

Генетическая оптимизация

Через 2 недели активного пользования могу поделится кое-какими выводами:

1) Риск поймать хай распределения большой
2) Очень актуально если много параметров, 6-7 часов и все готово
3) Кол-во популяци лучше ставить больше, как и кол-во поколений ( я ставлю 1 к 3м)

Как я приноровился ее использовать.

1) Заряжаю огромные коридоры в переменных
2) Ставлю большое кол-во популяции и поколений
3) Нахожу приблизительно лучшие значения
4) OOS топ 2-3 параметров сходу, понять, работает вообще или нет
4) Бручу грубо нужный коридор
5) Бручу точно нужный коридор
6) Выбираю стабильные параметры из островков
7) OOS — если все ок, то система готова, если не ок, надо пересматривать или отказываться от системы

Вопрос про генетическую оптимизацию

Объясните с точки зрения трейдерских задач что такое:

1) Размер популяции — размер начальных тычков в небо?
2) Коэф. скрещивания (не понял вообще)? 
3) Коэф. мутации — шаг итерации от значения тычка в небо?
4) Кол-во поколений — кол-во темплейтов которые получаем на выходе?

Спасибо.

Как выдержать мин количество сделок при генетической оптимизации в Ами

Беда генетического оптимизатора в Ами в том, что он находит лучшие наборы параметров, не учитывая количество сделок. Приходится либо колдовать с границами параметров, либо увеличивать сроки оптимизации.

Для себя  я нашел такое решение — посчитал новую метрику modified Recovery Factor (я обычно по нему оптимизирую): если количество трейдов меньше 50, то приравнял его -1, иначе он равен Recovery Factor по расчетам ами. Теперь, если этот modified Recovery Factor использовать в качестве цели оптимизации, то получим наборы параметров, которые дают не менее определенного количества сделок за период оптимизации.

Код, показанный ниже, надо просто добавить в конце afl скрипта стратегии:

TotalTrades = 0; 
SetCustomBacktestProc(""); 
if (Status(«action») == actionPortfolio) 

   bo = GetBacktesterObject(); //  Get backtester object 
   bo.Backtest(); //  Run backtests 

( Читать дальше )

Генетическая оптимизация

Так как модуль кросс валидации брутит параметры уже 5 день, мы решили сделать модуль в котором будет использоваться генетика.

Однако прежде чем делать, хотелось бы чуть глубже понять в чем соль генетической оптимизации, а еще лучше попользовать ее в какой-нибудь платформе где она уже реализована, чтобы на знакомой стратегии внатуре увидеть ее работу.

И так вопрос на засыпку, где кроме trade station еще юзается генетическая оптимизация?
Вроде в велсе последнем, но я поковырявшись так ее и не нашел, возможно нужно качать дополнения. Где еще? Опенквант? (желательно что-то работающее на C#)

Так же очень будут интересны мнения тех кто ее юзал, лучше ли, быстрее ли, подводные камни и пр.

....все тэги
UPDONW
Новый дизайн