Пост, пожалуй, будет полезен только тем, у кого имеются собственные наработки.
Имеется некая система и показатели её состояний (индикаторы):
На рисунке представлены движения фьюча РТС в течение 4-х часов.
- Бары по 80 тиков (2 — 7 секунд), тёмно-зелёная линия — средневзвешенный показатель цены
- MA — тёмно-синяя линия
- Светло-зелёная линия показывает последнюю точку линейной регрессии. Ознакомиться с методом построения можно здесь:
Методические указания: Метод наименьших квадратов
Настоятельно советую обратить внимание на определение сигмы. Мои самые прибыльные стратегии построены на её обыгрывании (основные принципы, если кому-то будет интересно, опишу потом) - Горизонтальный канал, построенный по фракталам
- «Динамический» канал — штрих-пунктирные линии. При сильных движениях сходится к MAшке
Теперь посмотрим на состояния системы.
В качестве булевых показателей возьмём сильное отклонение от сигмы линейной регрессии (под отклонением понимается отношение разницы цены и регрессии с сигмой, и сравнение с неким коэффициентом) и отклонение от угла линейной регрессии (выше/ниже от средних показателей).
Всего 4-ре состояния:
Обычное отклонение от сигмы:
Горизонтальный канал:
Точки входа/выхода по «динамическому» каналу:
Особо кропотливые разработчики могут выписать в файлы состояния системы с разными параметрами и замутить машинное обучение. Путь этот долгий и, возможно, даже правильный. Однако намного проще и эффективнее воспользоваться методом пристального взгляда. В качестве точек входа удобно использовать изменение состояний системы.
По картинкам выше я придумал 6-ть различных стратегий входа со своими выходами. В качестве дополнительного параметра берётся переменная int и варьируется от 1 до 2^6-1, чтобы определить 6-ть булевых переменных, которые в дальнейшем помогут выявить, какая совокупность стратегий наиболее прибыльна. Это имеет смысл делать, если вы так же, как и я, предпочитаете проверять алгоритмы сперва на качество (имеется в виду торговля без усреднения и добавок). Агрессивными их всегда можно будет сделать.
В результате получилось следующее (синие и зелёные цвета — покупка; красные, фиолетовые — продажа; жёлтые, коричневые — закрытие):
Ну и собственно, сам debugging: нажимаем на кружочек и ставим breakpoint в основной цикл (и пытаемся понять, чего ж мы там в действительности наваяли).
Ничего глубинно нового или радикально сложного я не изложил, однако надеюсь, кому-то окажется полезным данный подход.
Ну и результаты по одной из модификаций изложенной стратегии. Торговля 1-м контрактом, весна и осень 2011-го, тренд и контртренд, минутки и пятиминутки. В графе «Net2» — доход в рублях с учётом комиссии. «d1, d2..» — доход в неделю с количеством заходов. «AvgDay» — мин, макс, среднее в неделю.
Результаты, конечно, радуют. Однако интрадейные стратегии имеют один большой минус: долго не живут. Прошедший январь:
Всем удачных торгов и успешных разработок!