Заметка

Робот для торговли фьючерсом РТС

  6  

На основе статистического анализа дневных сигналов индекса РТС

Коллеги, доброго дня!

Когда заходит речь о торговых роботах, то в 90% случаях  речь идет о высокочастотной торговле (т.н. HFT-роботы). И в этом случае основным достоинством программы-робота считается более высокая скорость принятия решения и создания приказов по сравнению с трейдером-человеком. Ну а количество сделок внутри сессии вообще измеряется сотнями, а иногда и тысячами.

В данной статье я предлагаю вашему вниманию некоторые мысли о разработке робота или программы-советника для торговли фьючерсом РТС на дневных  свечах  РТС. Это далеко не высокочастотная торговля, т.к. среднее время между сделками составляет 13 торговых  сессий (об этом ниже).

«Тогда зачем программа-робот или программа-советник?» — возникает резонный вопрос. Для себя я ответил на него так: такие программы  эффективны в тех случаях, когда у трейдера нет времени, а может и желания, находиться за торговым терминалом. Поскольку в данном случае сделки происходят редко, то такой робот имеет преимущество перед HFT-роботами  в стоимости создания, стоимости технической инфраструктуры («железо») и стоимости поддержания высокоскоростного доступа к серверам брокера (в данном случае собственно сама необходимость именно высокоскоростного доступа отсутствует в принципе).

К тому же, если создать не робота, а программу-советник, то можно просто настроить сообщений о сигналах, например, через СМС, электронную почту, ICQ и т.п. А трейдер уже сам примет решение о  совершении сделки (благо времени вагон – сигнал то на дневной свече!). И даже комиссия брокера за приказ «с голоса» в этом случае вполне допустима.

Поскольку в данном случае большая часть усилий ложится не на создание собственно программы-робота, а на тестирование стратегии, то ниже я предлагаю вашему вниманию свой подход к анализу стратегий – в данном  случае торговля фьючерсом РТС на дневных сигналах индекса РТС.

Статистический анализ сигналов на дневном графике РТС в периоде 2001-2011гг.

 Коллеги, мне уже давно интересен ответ на вопрос: можно ли построить эффективную торговую стратегию, применяя только параболик SAR (т.н. Stop-And-Reverse Indikator)?

            За предмет анализа я выбрал дневные свечи индекса РТС в периоде с 2001 года по 2011 год включительно, благо статистика моего терминала (XTick) такую выборку дает.

            В заключение приведу свою попытку привязать сигналы в индексе РТС к торговле фьючерсом RI. 

Описание самого индикатора давать не буду, т.к. исхожу из того, что те, кто читает о роботорговле вообще и техническом анализе в частности, с SARом как с классическим трендовым «индюком», так или иначе знакомы.

Тем не менее, одну особенность расчета параболика отметить необходимо. Дело в том, что я сам лично сталкивался с тремя различными вариантами определения точки «пробоя» параболика, а именно:

  1. Вариант 1. Пробой параболика (т.е. смена тренда) определяется тогда, когда цена текущей свечи касается значения текущего параболика. В этом случае значение параболика «переворачивается» сразу по моменту касания и сразу в текущей свече.
  2. Вариант 2. Все то же самое, что и по варианту 1. Единственное отличие в том, что переворот параболика происходит не в текущей свече, а на Open следующей свечи.
  3. Вариант 3. Пробой параболика определяется тогда, когда цена текущей свечи касается значения предыдущего (в этом отличие от варианта 1) параболика. В этом случае значение параболика, как и в варианте 1, «переворачивается» сразу по моменту касания и сразу в текущей свече.

 На большом периоде времени (10-15 трендов и более) разницы между вариантами особенной быть не должно. Хотя я сам это не проверял. Но на отдельных резких переворотах трендов разница есть, особенно на «тяжелых» свечах – 120м, 240м и дневных.

Мой терминал XTick настроен под вариант 3 – именно с таким параболиком я торгую и тестирую. Настройки самого SAR такие – 0.02, 0.2, 0.2. Насколько я знаю, они являются настройками SAR "по умолчанию" в большинстве терминалов.

Вот общий пример формирования сигналов по SAR

Теперь данные по выборке:

  1. Период выборки – 2001-2011 гг
  2. Количество сигналов – 218 (109 лонгов + 109 шортов)
  3. Средняя длина сигнала – 13 сессий (свечей).
  4. Максимальное количество свечей до формирования лучшей цены тренда – 39 (2004 год).
  5. Максимальное количество свечей до переворота в противоположный сигнал – 42 (дважды – в 2004 и 2005 годах).
  6. Максимальный размах тренда в % от старта: лонг – 44% (весна 2009 года); шорт – 49,5% (осень 2008 года).

Теперь собственно аналитика.

Сначала я проанализировал торговлю по параболикам без какой-либо оптимизации – то есть просто следуя сигналам SARа. На выходе получил данные о математическом ожидании сигналов за каждый год выборки.

Расчет математического ожидания системы SAR_RTSI_Daily

 

Выводы из расчетов МО за период 2001-2011гг:

  1. Среднее соотношение прибыльных и убыточных сделок 53% / 47%. Причем только в 2001-2002 гг количество прибыльных сделок оказалось меньше, чем количество убыточных сделок. В остальных периодах, начиная с 2003 года, количество прибыльных сделок как минимум не меньше, чем количество убыточных сделок. Кстати, корреляция между соседними сигналами отсутствует (равна 0,2), что практически говорит об отсутствии взаимосвязи между результатами соседних сделок. То есть результат текущего тренда практически не зависит от результата предыдущего, несмотря на практически равное соотношение между количеством прибыльных и убыточных трендов.
  2. Среднегодовое количество сделок – 19. Минимум – 12 – в 2010 году. Максимум – 26 – в 2008 году.
  3. Средний результат сделки: прибыль +8,6%, убыток – 3,4%, то есть прибыль в среднем в 2,5 раза выше, чем убыток.
  4. Математическое ожидание системы с учетом данных п.1 и п.3: прибыль + 4,6%, убыток -1,6%, итого на сделку +3,0%.

Для расчета максимального риска системы использована серия из максимального количества подряд убыточных сигналов. Такие серии есть летом 2008 и летом 2010 года – по 4 подряд сигнала с суммарным убытком каждой серии 20-21% от торгового оборота. Для запаса размер риска увеличил до 5 сигналов и 25%. То есть, торгуя индексом РТС на 75% депозита по сигналам дневного SAR, теоретически трейдер не должен получить маржин колл даже в самом худшем случае.

Ниже представлена таблица и график сравнения двух торговых стратегий – Buy&Hold и SAR_Daily. Период я взял с 2007 года, т.к. в периоде 2001-2006 рынок был в основном растущий. А с 2007 года начало, что называется, «штормить».

Как видно, система «купи и держи» не только проиграла системе SAR, но и вообще дала убыток с начала 2007 года по конец 2011 года в размере 28%. Тогда как система SAR дала прибыль 158% к торговому депозиту.

К слову сказать, в периоде 2001-2006 гг система SAR так же обогнала систему B&H.

            Вывод по сравнению систем в периоде 2007-2011 гг:

  1. Среднегодовой результат систем: B&H -6%, SAR +32%
  2. Среднеквадратичное отклонение годовых результатов: B&H 74%, SAR 13%. Волатильность (читай – рискованность) системы SAR, начиная с 2007 года, почти в 6 раз ниже, чем у системы B&H.

Теперь по поводу оптимизации стратегии SAR.

В данном случае под оптимизацией я сформулировал следующую задачу:

Подбор такого уровня Take-Profit для сделок системы (отдельно для сделок Long и Short), чтобы на всем периоде тестирования конечный результат был бы не меньше, чем при торговле без оптимизации.

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

            Итак, расчет уровней ТР. Для периода расчета я опять же взял 2007-2011 года (выборка из 111 сигналов), когда рынок стал гораздо волатильнее. Причем я разделил потоки сигналов – отдельно лонги и отдельно шорты, чтобы определить ТР для лонгов и шортов отдельно.

Определение оптимального ТР для лонг-трендов.

На выходе получилось значение ТР=13%, которое срабатывало в 20% случае лонг-трендов в периоде 2007-2011гг.

Определение оптимального ТР для шорт-трендов.

На выходе получилось значение ТР=16%, которое срабатывало в 16,1% случае шорт-трендов в периоде 2007-2011гг.

Итоги тестирования стратегии в периоде 2007-2011 гг сведены в таблицу:

Параметр стратегии

Описание

ТР для лонг-трендов

13% (частота срабатывания 20%)

ТР для шорт трендов

16% (частота срабатывания 16,1%)

Среднегодовое количество сигналов

22-23

Допустимый торговый объем без риска margin call

75% депозита

Средний ожидаемый результат на сделку

2,0%

Среднегодовой результат

30-32% годовых

Ниже представлю картинку с дневным графиком РТС с осени 2006 года по настоящее время – разрешение максимальное, на которое способен мой терминал. Даже просто визуально видно, что в целом на потоке система работает с профитом.


Применении расчетов по РТС к торговле фьючерсом RI.

 В данном разделе я представлю модель динамики портфеля с торговым объемом 1 контракт RI в периоде 2007-2011гг. Для простоты оптимизацию (введение уровней ТР) не применял.

Принцип входа в позицию по RI – возникновение сигнала на графике РТС

Реинвестирования прибыли не производится, торговый объем в 1 контракт неизменен на всем периоде торговли.

Параметры портфеля:

Примечание:

(***) Расчет риска и минимальной суммы депозита. Риск рассчитал следующим образом. Сначала рассчитал среднеквадратичное отклонение результатов сделок – оно получилось равным примерно 57%-60% от размера гарантийного обеспечения (ГО). То есть в каждой сделке рискуем примерно 60% торгуемой суммы. Поскольку максимальная серия убыточных подряд сделок не только в периоде 2007-2011 гг, но и начиная с 2001 года, равна четырем, то размер риска определил как 60% х (4+1) = 300% торгового депозита. «+1» взял как запас на возможное увеличение максимальной серии убытков в будущем. Таким образом, применительно к сегодняшней ситуации, имею торговый объем примерно до 11000-12000 руб. при риске 35000-36000 руб. Тогда минимально допустимый портфель для этой системы в настоящих условиях составляет 12000 + 35000 = 47000 руб. на 1 торгуемый контракт RI.

Данные о доходности рассчитаны по полученному потоку сделок.

Финансовый профиль модели торговли представлен ниже

Собственно, итоги торговли уже представлены в таблице выше. В сравнении с динамикой портфеля, торгующего самим индексом РТС, результат выше в 2,5 раза. С системой B&H, как с убыточной с 2007 года, сравнение вообще смысла не имеет.

Основной задачей программы-робота в данном случае является отслеживание положение текущего значения индекса РТС относительно своего дневного SARa.

И как только фиксируется «пробой» SARа, то в зависимости от типа программы-робота выполняются следующие действия:

  1. Полностью автономный робот. Уведомление трейдера + приказ о закрытии текущей позиции и об открытии позиции в направлении «пробоя» SARа.
  2. Программа-советник без функции торговли. Трейдеру отправляется сообщение о возникновении сигнала. Отправка через СМС, e-mail, ICQ и т.п. протоколы.

 Коллеги, несколько замечаний в заключение:

  1. Настоящей статьей я никоим образом не утверждаю, что торговля исключительно по SAR даст схожие по эффективности результаты на других инструментах и тайм-фреймах.
  2. Еще раз обращаю внимание на то, что в зависимости от типа терминала (даже в зависимости от версии одного и того же терминала) построение индикатора SAR отличается. А следовательно, параметры торговли однозначно привязываются к тому терминалу, на котором система тестируется.
  3. IMHO любой другой трендовый «индюк» на большой выборке сигналов должен торговать в плюс.

Комментарии

Николай Камынин — 7 февраля 2012 г.

Статья интересная.
Вопросы и мнение:
1) Какая длина выборки и какое окно осреднение Вы использовали при расчете коэффициента корреляции?
Мое мнение, оценка полученная вами не является состоятельной.
2) Вам не приходила мысль, что 300% убытков , которые Вы закладываете в алгоритм торговли - это результат редких сделок?
3) Из собственного опыта исследования стратегий могу сказать, что любая стратегия на ликвидной акции например Сбербанк обычка за период с 2007 по 2011 год даст примерно 300%-400% на исторических данных с просадкой примерно 10-20%. Если учесть плеча фьючерса индекса, которое равно 11, то получим примерно 100-200%.

0 +

vsozonov — 8 февраля 2012 г.

Доброго дня, коллега, и благодарю за внимание к моей заметке.
1. Если идет речь о коэффициенте корреляции соседних сделок (0.2), то выборка взята вся - за весь период анализа, все 218 сделок. Насколько я помню, в данном случае выборка считается презентабельной при наличии более, чем 30 пар данных. Про окно осреднения, к своему стыду, ничего не скажу. Ибо или не знаю, или уже основательно забыл этот термин. А вообще расчет корреляции соседних сигналов взят мной из книги Р.Винса "Математика управления капиталом".
2. Вполне может так и есть. Только что это меняет? Исли у системы устойчивое положительное МО сигналов, то серия максимльныхубытков - это просто параметр риск-менеджмента для расчета риска.
3. Доходность стратегии все-таки зависит и от самого алгоритма стратегии, и от тайм-фрейма, на котором тестируете. Поэтому не могу согласиться, что вот прямо любя стратегия даст 300-400%.

И настоящей статьей я не ставлю целью доказать, что представленный алгоритм торговли лучше других. У любой стратегии, кроме параметров доходности и риска, есть такой параметр, как психологический комфорт трейдера. Это означает, что одному удобнее, например, торговать разв 3-4 недели одной сделкой и зарабатывать 60-80% годовых, другой готов ради 100-150% годовых торговать ежедневно. И эти варианты несрвнимы, они просто РАЗНЫЕ. Главное,чтобы трейдер был в плюсе и получал удовольствие от процесса.

1 +

Николай Камынин — 8 февраля 2012 г.

Добрый день,vsozonov !
Благодарю за ответ.
Но будет ли чувствовать трейдер себя комфортно, если увидит убыток в 300%?
А если поставить стоп убытку процентов на 20%? Может будет более прибыльно?

0 +

vsozonov — 8 февраля 2012 г.

такой вариант не тестировал. просто обычно считается, что любая оптимизация - есть зло и "подгонка". А так то конечно, думаю, что можно подобрать такой SL, который даст на выходе не меньший результат, но с меньшей волатильностью депозита. По аналогии с расчетом ТР

0 +

мр_юдин — 9 февраля 2012 г.

Вопросы:
1. Как рассчитывались величины в таблице "Расчет математического ожидания"?
2. При расчете риска Вы брали именно такой метод?
3. Почему в качестве базы Вы брали ГО?

0 +

vsozonov — 9 февраля 2012 г.

Вопросы:
1. Как рассчитывались величины в таблице "Расчет математического ожидания"?
МО считается как сумма произведений средних результатов "+" и "-" сделок на вероятности их возникновения (в данном случае это столбец "структура"). Сумма МО "+" и "-" сделок совпадает со средним результатом сделки на всем потоке
2. При расчете риска Вы брали именно такой метод?
да. можно еще взять по среднеквадртичному отклонению результатов сделок. Опять же берется мксимльная серия убыточных сделок и умножается на среднекв откл сделки, можно так же серию увеличить на 1. получится примерно тот же результат, что указан в блоге
3. Почему в качестве базы Вы брали ГО?
потому что ГО - это фактическая сумма, которую пускаете в торговлю

0 +

мр_юдин — 9 февраля 2012 г.

А как считаются средние результаты? Прошу написать формулу и если не трудно еще раз описать альтернативный вариант расчета через серию убытков и СКО, тоже если можно формулой.

0 +

vsozonov — 9 февраля 2012 г.

средние - это просто средние арифметические.
и не совсем понял, формулу чего написать?

0 +

мр_юдин — 10 февраля 2012 г.

1.Извините, не был точен в вопросе. Я конечно знаю, как считаются средние. Я про то, как Вы считаете значения для расчета средних. У Вас там средний результат выигранных позиций и проигранных. Я именно хотел увидеть, как Вы этот результат по каждой сделке получаете. Если это возможно, то пришлите мне сами данные необработанные по истории сделок. Их же не много? k40618@yandex.ru Если не затруднит, конечно. В .тхт или лучше в .xls формате.
2. Я все же прошу подробнее мне разъяснить как Вы определяете риски по СКО. Как можно подробнее, точнее как у Вас хватит терпения разъяснить. Очень прошу!

0 +

vsozonov — 10 февраля 2012 г.

День добрый!
1. Средние позиции считал просто - сумма положительных исходов делить на количество положительных исходов, получите средний положительный исход. То же самое с отрицательными исходами. Так что я считал средние, как в школе научили)
2. По расчету риска через СКО. Тут логика такая (я в прошлый раз несколько неточно вам ответил).
Итак, имеем (для удобства восприятия все в ру*censored*х):
среднее ГО на контракт 12000 руб.
средний результат сделки +1500 руб.
СКО сделки 7000 руб. - это означает, что результаты сделок в большинстве случаев находятся в диапазоне -7000...+7000 руб. от среднего результата (+1500 руб.), или получаем диапазон (-5500 руб. .... +8500 руб).
Таким образом, -5500 руб. - это объективная нижняя граница убытка на сделку. Поскольку в моем случае максимальная серия из убытков - 4 сделки, то, увеличив для запаса серию еще на 1 сделку, получаем сумму убытка в размере 5500 х (4+1) = 27500 руб.
Отсюда сумма депозита равна 12000 (ГО) + 27500 (запас на убытки) = 39500 руб. на 1 контракт торговли. Это по СКО. В реале вышло несколько выше, но там и серия такая состоялась уже к моменту накопления профита.

0 +

мр_юдин — 10 февраля 2012 г.

Я Вам вопрос пишу по Вашей таблице данных. Мне не все понятно.

0 +

102574 — 20 декабря 2012 г.

здраствуте. А такая система уже существует или это просто мысли в слух?

0 +

Написать комментарий

Чтобы написать комментарий, необходимо авторизоваться.

Написать администратору