Инсайдер
Инсайдер Новости рынков
04 декабря 2011, 02:35

Адаптивный Data Mining ^ Live (rev 1.0)

Мне тут одна занятная идея пришла в голову — написать на базе своей инфраструктуры (МТС) некий адаптивный анализатор рынка.

Идея следующая: допустим, у нас есть Nное количество интересных фильтров, а т.ж. другие околорыночные данные (объемы нескольких (сотен?) предыдущих баров, размеры тел/теней у свечей, ОИ, уровни/тренды — вобщем,  джентельменский набор).

Далее пишем какое-нибудь простое правило на вход, любое — это не суть, стоп и тейк, допустим, 0.5%. При тестировании сохраняем своего рода срезы данных для каждой сделки, включающие значения всех фильтров на момент ее совершения. Во время тестирования фильтры используются только как дата-фидеры, таким образом мы получаем их полные спектры.

Промежуточный результат:
+ придумать простой вход
+ сохранение статистики по сделкам и фильтрам
+ визуализация эквити с сортировкой по фильтра
… м

При помощи некоторых фильтров можно улучшить матожидание и прочие показатели, вот пример возможного распределения сделок по одному из фильтров (по оси Х значения фильтра, по У результат сделки в процентах):

--> s017.radikal.ru/i426/1112/19/f63160bfc960.jpg

Для этого периода было бы логично отфильтровать все, что ниже 8000…
а может и не все.

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

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

Update 1:
Из простых решений, которые приходят в голову: делим сделки на прибыльные/убыточные, потом для каждого фильтра находим оптимальный вариант среза и записываем название ф-ра в листы к оставшимся после фильтрации сделкам. В конце этой операции у каждой сделки будет свой список с названиями. Используя эти списки можно нарисовать статистику по каждому фильтру. Следующим шагом будет обобщение/распределение синергичных фильтров  по группам, например, по частоте возникновения качественного сигнала на вход.
Как-то так. Возможно есть и более изящное решение.
7 Комментариев
  • Winner
    04 декабря 2011, 03:02
    самый лучший результат даст только метод прямого перебора, у остальных есть сильные недостатки… но для этого нужен очень! мощный компьютер и хорошая платформа…
    пишите результаты — будем изучать…
    успехов)))
  • xTestero
    04 декабря 2011, 13:07
    На статистике считай вероятность дохода/убытка от входного параметра
    если параметров много — систему от N переменных получается решать надо, если это вообще решаемо
  • Rus02
    08 декабря 2011, 12:54
    Отличная идея. Тоже думал об этом. Я к сожалению далек от программирования и МТС, но одна из идей была такая:
    1) Взять зиз-заг обычный. Длина зига/зага= ATR(х).
    2) Посчитать на истории по периодам неделя/месяц/квартал показатели:
    а) зеленые зиги (движение вверх)/зиг+заг(общее движение)
    б) красные заги (движение вниз)/зиг+заг (общее движение)
    в) общее движение/кол-во дней=скорость
    и т.д.
    На основании этих показателей пробежаться вручную по рынку и для себя понять как они характеризуют флэт/тренд.

    3)Результаты стратегии наложить на результаты (2) и понять в каких случаях ее лучше выключать.

    Может это топорно написано, но принцип к сожалению ручной. Оставил это дело до лучших времен — пока не освою МТС и не появиться стратегия хотя бы одна.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн