Трейдерский Клуб

Общение о рынках, рисках и жизни. Без пиара и без рекламы. Здесь рады только своим.

Автоматический поиск паттернов

Свободное общение. Предложения по работе форума.

Автоматический поиск паттернов

Сообщение Woland » Сб июн 22, 2013 2:14 pm

Уважаемые коллеги, расскажу вам об одном проекте, которым занимался несколько лет назад. Сей рисеч был
инициирован внезапно появишимися свободными вычислительными мощностями и идеей использовать эти мощности во
благо кошелька.
Сложилась следующая концепция. Торгуется группа сходных инструментов (например, в конкретной реализации -
американские стоки). В каждый момент времени по каждому инструменту берется текущая ситуация, и по базе
исторических данных ищутся ситуации, похожие на текущую. Если в прошлом такие ситуации статистически значимо
приводили к движению в определенную сторону, открывается соответствующая позиция.
Реализация
Использовалась интрадейная история по стокам из SP500 глубиной в 5 лет. В качестве "текущей ситуации"
использовалась последовательность из N (диапазон исследованных значений - 5-20) последних цен закрытия
заданного таймфрейма (смотрелись фреймы 5 мин, 15 мин и 1 час). Эта последовательность нормировалась на
максимальный размах, т.е. вычислялись

(Close[i] - Min(Close[i], i = 0..N-1))/(Max(Close[i], i = 0..N-1) - Min(Close[i], i = 0..N-1))

имеющие значения от 0 до 1. Далее эта последовательность сравнивалась со всеми последовательностями N Close из
истории (также нормированными на максимальный размах), и выбиралось M (диапазон исследованных значений - 20-
100) наиболее похожих вариантов. В качестве меры похожести тупо бралась сумма квадратов разностей
соответствующих нормированных Close. Исходя из найденных M похожих кусков истории составлялась выборка
"исходов" такого "паттерна" за последующие K баров (К бралось от 1 до 10 в зависимости от длины паттерна N -
чем больше N, тем больше К). Выборка цензурировалась (удалялись по 3-5% крайних значений для приведения
распределения исходов к нормальному), и проверялась гипотеза отличия среднего от 0 с определенным уровнем
значимости - от 0,05 до 0,001. Если критерий показывал отличие среднего от 0 в соответствующую сторону,
открывался лонг или шорт. Позиция закрывалась по таймауту через K баров.
Результат
был получен отрицательный. На всех стоках при всех испробованных значениях параметров такая "система" не
работала - эквити флэт, PF значимо не отличается от 1. Кроме того, частота совершения сделок хорошо совпадала с
частотой, соответствующей уровню значимости критерия на отличие среднего от 0, т.е. для 0,05 получались сделки
~ на каждом 20-м баре, для 0,001 - ~ на каждом 1000-м баре. Т.е. все, что такой алгоритм отлавливает - это
статистические аномалии.
Дело было летом 2008, и этот проект был заброшен, т.к. стало весело и без него :). Однако возможно, кто-то
найдет в этом что-то полезное для себя. Также приветствуются комментарии "было сразу понятно, что ничего не
получится, так как (конструктивный аргумент)" и "а вот если сделать вот так (соображение), то все бы
получилось".
И прошу прощения за обилие букф :)
Woland
 
Сообщения: 2
Зарегистрирован: Ср июн 19, 2013 7:48 am

Вернуться в PUB: Курилка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron