Мне тут одна занятная идея пришла в голову — написать на базе своей инфраструктуры (МТС) некий адаптивный анализатор рынка.
Идея следующая: допустим, у нас есть Nное количество интересных фильтров, а т.ж. другие околорыночные данные (объемы нескольких (сотен?) предыдущих баров, размеры тел/теней у свечей, ОИ, уровни/тренды — вобщем, джентельменский набор).
Далее пишем какое-нибудь простое правило на вход, любое — это не суть, стоп и тейк, допустим, 0.5%. При тестировании сохраняем своего рода срезы данных для каждой сделки, включающие значения всех фильтров на момент ее совершения. Во время тестирования фильтры используются только как дата-фидеры, таким образом мы получаем их полные спектры.
Промежуточный результат:
+ придумать простой вход
+ сохранение статистики по сделкам и фильтрам
+ визуализация эквити с сортировкой по фильтра
… м
При помощи некоторых фильтров можно улучшить матожидание и прочие показатели, вот пример возможного распределения сделок по одному из фильтров (по оси Х значения фильтра, по У результат сделки в процентах):
-->
s017.radikal.ru/i426/1112/19/f63160bfc960.jpg
Для этого периода было бы логично отфильтровать все, что ниже 8000…
а может и не все.
Собственно, на этом этапе у меня процесс замедлился. Остается самое сложное — написать адаптивный алгоритм, который сможет сравнивать сделки, сортировать их по разным признакам, и выделять среди них высоковероятностные закономерности. При этом оптимально было бы найденные закономерности сразу же протестировать за удовлетворяющий период на истории (или по не/случайным выборкам данных).
В идеале нужно создать самодостаточный модуль, который будет анализировать текущее состояние рынка и переопределять под ситуацию некоторые параметры у различных стратегий.
Насколько я себе представляю, для решения подобного рода задач используются нейросети или генетические алгоритмы.
Может есть в природе алгоритмы сравнения данных попроще в реализации?
Update 1:
Из простых решений, которые приходят в голову: делим сделки на прибыльные/убыточные, потом для каждого фильтра находим оптимальный вариант среза и записываем название ф-ра в листы к оставшимся после фильтрации сделкам. В конце этой операции у каждой сделки будет свой список с названиями. Используя эти списки можно нарисовать статистику по каждому фильтру. Следующим шагом будет обобщение/распределение синергичных фильтров по группам, например, по частоте возникновения качественного сигнала на вход.
Как-то так. Возможно есть и более изящное решение.
пишите результаты — будем изучать…
успехов)))
expert.ru/2011/08/19/skynet-pochti-gotov/
если параметров много — систему от N переменных получается решать надо, если это вообще решаемо
1) Взять зиз-заг обычный. Длина зига/зага= ATR(х).
2) Посчитать на истории по периодам неделя/месяц/квартал показатели:
а) зеленые зиги (движение вверх)/зиг+заг(общее движение)
б) красные заги (движение вниз)/зиг+заг (общее движение)
в) общее движение/кол-во дней=скорость
и т.д.
На основании этих показателей пробежаться вручную по рынку и для себя понять как они характеризуют флэт/тренд.
3)Результаты стратегии наложить на результаты (2) и понять в каких случаях ее лучше выключать.
Может это топорно написано, но принцип к сожалению ручной. Оставил это дело до лучших времен — пока не освою МТС и не появиться стратегия хотя бы одна.