locean
locean личный блог
05 февраля 2012, 16:45

Графический "Debugging" торговых систем


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


Имеется некая система и показатели её состояний (индикаторы):



На рисунке представлены движения фьюча РТС в течение 4-х часов.
  • Бары по 80 тиков (2 — 7 секунд), тёмно-зелёная линия — средневзвешенный показатель цены
  • MA — тёмно-синяя линия
  • Светло-зелёная линия показывает последнюю точку линейной регрессии. Ознакомиться с методом построения можно здесь:
    Методические указания: Метод наименьших квадратов
    Настоятельно советую обратить внимание на определение сигмы. Мои самые прибыльные стратегии построены на её обыгрывании (основные принципы, если кому-то будет интересно, опишу потом)
  • Горизонтальный канал, построенный по фракталам
  • «Динамический» канал — штрих-пунктирные линии. При сильных движениях сходится к MAшке


 
Теперь посмотрим на состояния системы.
В качестве булевых показателей возьмём сильное отклонение от сигмы линейной регрессии (под отклонением понимается отношение разницы цены и регрессии с сигмой, и сравнение с неким коэффициентом) и отклонение от угла линейной регрессии (выше/ниже от средних показателей).
Всего 4-ре состояния:

Обычное отклонение от сигмы:

Горизонтальный канал:

Точки входа/выхода по «динамическому» каналу:

 
Особо кропотливые разработчики могут выписать в файлы состояния системы с разными параметрами и замутить машинное обучение. Путь этот долгий и, возможно, даже правильный. Однако намного проще и эффективнее воспользоваться методом пристального взгляда. В качестве точек входа удобно использовать изменение состояний системы.
 
По картинкам выше я придумал 6-ть различных стратегий входа со своими выходами. В качестве дополнительного параметра берётся переменная int и варьируется от 1 до 2^6-1, чтобы определить 6-ть булевых переменных, которые в дальнейшем помогут выявить, какая совокупность стратегий наиболее прибыльна. Это имеет смысл делать, если вы так же, как и я, предпочитаете проверять алгоритмы сперва на качество (имеется в виду торговля без усреднения и добавок). Агрессивными их всегда можно будет сделать.
 
В результате получилось следующее (синие и зелёные цвета — покупка; красные, фиолетовые — продажа; жёлтые, коричневые — закрытие):

Ну и собственно, сам debugging: нажимаем на кружочек и ставим breakpoint в основной цикл (и пытаемся понять, чего ж мы там в действительности наваяли).

 
Ничего глубинно нового или радикально сложного я не изложил, однако надеюсь, кому-то окажется полезным данный подход.
 
Ну и результаты по одной из модификаций изложенной стратегии. Торговля 1-м контрактом, весна и осень 2011-го, тренд и контртренд, минутки и пятиминутки. В графе «Net2» — доход в рублях с учётом комиссии. «d1, d2..» — доход в неделю с количеством заходов. «AvgDay» — мин, макс, среднее в неделю.


Результаты, конечно, радуют. Однако интрадейные стратегии имеют один большой минус: долго не живут. Прошедший январь:

 
Всем удачных торгов и успешных разработок!
3 Комментария
  • Максим G
    06 февраля 2012, 01:55
    очень интересно, побольше бы таких постов!
  • jtrade
    13 февраля 2012, 07:31
    Супер пост!!! Не зря копался!

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

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