Финансовая лаборатория

Биржевая торговля и торговые роботы

Продолжаем тему, о которой начали говорить в предыдущем посте. Сегодня будет ещё немножко теории, посвященной такой стратегии как календарный арбитраж. Это необходимо для того, чтобы, наконец, приступить к практике.

Напомню, что мы удобно и компактно разместили все необходимые инструменты на рабочем столе.

Мы торгуем два инструмента: RTS-3.10 и RTS-6.10

Это фьючерсные контракты, базовым активом для которых является один и тот же индекс – индекс РТС. Единственное отличие этих двух контрактов заключается в том, что дата экспирации RTS-3.10 приходится на март 2010 года (а именно на 12.03.2010), а дата экспирация другого – на июнь 2010 года (11.06.2010).

Отсюда вывод – графики этих инструментов будут очень похожи друг на друга.

Взаимосвязь здесь прямая – если растёт индекс РТС, то тут же будет расти и мартовский фьючерс на индекс РТС и июньский фьючерс на индекс РТС.

Будут – ли рассматриваемые фьючерсы расти равномерно?  К счастью для нас – НЕТ.

Движение мартовского фьючерса будет НЕМНОГО ОТЛИЧАТЬСЯ от движения июньского фьючерса.

Причинами такого различия будут:

1)    Часть трейдеров «перекладываются» с мартовского на июньский фьючерс, т.к. 12.03.2010 года мартовский фьючерс уйдет в историю, а позицию такие торговцы хотят сохранить. Поэтому по возможности они сначала покупают июньский фьюч, а потом продают мартовский (или наоборот).

2)    Скальперы, которые торгуют фьючерсы, ориентируясь на движения так называемых поводырей (SP500, нефть, евробакс) распределяются по двум инструментам, кто-то торгует на мартовском, а кто-то уже на июньском.

3)    Опционные торговцы, строящие сложные комбинации также должны постепенно переложить свои мартовские фьючерсы в июньские…

В общем, примем как факт: цены на мартовский и июньский фьючерсы изменяются неравномерно, но однонаправлено.

Как оценить взаимосвязь двух данных фьючерсов, как проанализировать динамику данного изменения?

Давайте займёмся этим.

Вот так выглядит движение RTS-6.10 (красный график) и RTS-3.10 (синий график).

Рисунок 1.

Данный график был создан с помощью программы X-Tick eXtreme.

Четко видно, что расстояние между двумя графиками не составляет фиксированной величины. Красный график то сближается с синим, то отстраняется от него, а иногда даже заходит чуть выше синего.

Для того, чтобы количественно оценить расхождение между двумя графиками,  нужно сделать простейшее действие – вычитание.

Если из текущей стоимости одного инструмента (RTS-6.10) вычесть стоимость другого инструмента (RTS-3.10) в тот же момент времени, то мы получим характеристику расхождения (или СПРЕДа) между двумя финансовыми инструментами.

Вот мы и подошли к главному показателю, который характеризует любую синтетическую облигацию. Это СПРЕД, который также называют «РАЗДВИЖКА», «БАЗИС».

Базис = Раздвижка = СПРЕД = (Цена ФЬЮЧЕРСа – Цена СПОТа)

Смысл любых арбитражных сделок на «раздвижках» состоит в следующем:

Если инструмент находится в БЭКВОРДАЦИИ, т.е. цена фьючерса меньше чем цена СПОТа, то первой проводится операция покупки СПРЕДа.

Если же инструмент находится в КОНТАНГО, т.е. цена фьючерса больше, чем цена СПОТА – сначала целесообразно продавать СПРЕД.

1)    Покупка СПРЕДа на схождении (т.к. СПРЕД находится в БЭКВОРДАЦИИ)

После того, как СПРЕД сокращается (разница между фьючерсом и спотом уменьшается), трейдер одновременно совершает следующие действия:

  • покупает фьючерс;
  • продает СПОТ.

Проиллюстрируем это на конкретном примере:

Сегодня 11.03.2010 года, время 14 часов 14 минут. Имеем следующую ситуацию:

Рисунок 2.

Как видим, в один и тот же момент мы совершили следующие действия:

  • купили один фьючерсный контракт RTS-6.10 по цене Ask  (за 150 950 пунктов);
  • продали один фьючерсный контракт RTS-3.10 по цене Bid (за 151 375 пунктов).

Таким образом, мы КУПИЛИ СПРЕД на уровне 150 950 – 151 375 = -425 пунктов.

2)    Продажа СПРЕДА на расхождении

В тот момент, когда величина разницы между двумя финансовыми инструментами становится относительно высокой (СПРЕД расходится), трейдер совершает обратные операции, продавая таким образом СПРЕД:

  • продаёт один финансовый инструмент (условно назовём данный инструмент фьючерс);
  • покупает другой финансовый инструмент (условно назовём этот финансовый инструмент СПОТ).

Проиллюстрируем это на конкретном примере:

Текущая дата 11.03.2010, текущее время 16 часов 52 минуты

Рисунок 3.

  • продали один фьючерсный контракт RTS-6.10 по цене Bid  (за 149 705 пунктов);
  • купили один фьючерсный контракт RTS-3.10 по цене Ask (за 150 070 пунктов).

Таким образом, мы Продали СПРЕД на уровне 149 705 – 150 070 = -365 пунктов.

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

Посчитаем наш финансовый результат:

  • СПРЕД КУПЛЕН по – 425 пунктов в 14 часов 14 минут
  • СПРЕД ПРОДАН по -365 пунктов в 16 часов 52 минуты

Финансовый результат за 158 минут составил:

- 365 – (-425) = 60 пунктов.

Переведём пункты в рубли:

60 * 0,02 * 29,7249 = 35,66 руб.

На построение данной синтетической Облигации было отвлечено 17 978 рублей, т.к. величина ГО (гарантийного обеспечения) облигации составило 9001 + 8 977 = 17 978 рублей.

Таким образом, совершив только одну операцию (не учитываем пока комиссию) мы получили доход в размере 0,19% = 35,66 / 17 978 * 100.

Если перевести это в проценты годовых, то получится цифра 41,8% годовых (0,19% в день * 220 рабочих дней).

А если совершать операцию покупки – продажи не одну, а несколько в день???

Такая возможность, без сомнения существует в течение дня. Об этом говорит нам реальный график СПРЕДа, построенный с помощью программы FinLab.PairTrade (Дата 11.03.2010)

Рисунок 4.

Конечно, не всё так просто, как здесь описано. Есть, без сомнения, и свои трудности и свои секреты.

Но согласитесь – ЕСТЬ НАД ЧЕМ ПОДУМАТЬ…

Дальше я покажу Вам, как осуществляется реальная торговля по данной стратегии - календарный арбитраж… Следите за следующими постами.

Что еще можно сделать на нашем БЛОГе:

  1. Подписаться на ленту RSS.
  2. Подписаться на новые статьи по e-mail.
  3. Поддержать меня в рейтинге ТОП-100 финансовых блогов.

Комментариев: 25

  1. vikost1 пишет:

    Интересно в Квике можно построить график спреда или нет ? Как на рис. 4.

    • VDV пишет:

      Так это не Квик, не СмартТрейд, не АлорТрейд – это специализированная программа для построения синтетических облигаций и арбитражной торговли. Называется программа FinLab.PairTrade. Подключается пока только к СмартТрейду и АлорТрейду. В ближайшее время будет подключаться еще и к шлюзу FORTS напрямую. Если интерес будет – сделаем подключение и к Квику.

  2. vikost1 пишет:

    Я понял , поэтому и спросил.

  3. Ivan пишет:

    А что насчет ликвидности дальнего контракта? Сомнительно насчет 220 дней в году по этой причине.

  4. Ivan пишет:

    сорри. вопрос снимается. перечитал статью.

  5. anotrade пишет:

    потенциальная прибыль одна, а желающих ее состричь много, на всех не хватит-))
    у кого софт быстрее и провода до биржевого сервака короче – тот и будет забирать эту прибыль, возможность поднимать эти бабки все таки есть – т.к. большим дятькам этот лягушатник не интересен

  6. sam пишет:

    и все таки это получается только несколько дней торговли перед экспирацией и все, в остальное время ликвидности не хватит.

  7. Михаил пишет:

    Только непонятно вот что, обычно заявки исполняются 0.5-1 сек. За это время цена может уйти и к примеру RTS 6.10 купится, а RTS 3.10 не продастся, и мы получим солидного лося. Как автор с этим борется?

  8. m19124m пишет:

    Приветствую, уважаемый VDV!
    К большому сожалению у меня данные best_ask/ best_bid по RIU0 начинаются с 15.03.2010 и за приведенный в примере день 11.03.2010 отсутствуют. Поэтому что-либо проверить в статье по поводу стратегии – затруднительно.
    По каким данным строится в статье спред? bid-bid, ask-ask, ask-bid, bid-ask, (bid+ask)/2 – (bid+ask)/2 ??? Непонятно.
    Смысла в покупке-продаже спреда по рыночной нет никакого, если ask и bid RIM’а находится внутри ask и bid RIU.
    Судя по сделкам, приведенным в статье – они рыночные.
    Спред между ask/bid для RIU просто гигантский по-сравнению с RIM (если бы знал как присобачить к посту картинку – показал бы), поэтому я попробовал протестировать стратегию покупки спреда RIU-RIM по рыночной если bid(RIM)>ask(RIU) и продавать когда ask(RIM)<bid(RIU). Т.е. я никак не ориентируюся на среднее значение спреда. Результат – слабый стабильный минус…

    • Приветствую. СПРЕД в программе строится по данным из стакана. Берётся так называемый “опорный бид” и “опорный офер”. Эти “опорные” значения зависят от тех данных, которые пользователь указывает в настройках, но основные два фактора, которые влияют – это рабочая пачка лотов и коэффициент надежности. После этого Считается средний спред. С определённым отступом от среднего СПРЕДа выставляются ЛИМИТИРОВАННЫЕ (а не рыночные) заявки по менее ликвидному инструменту. Как только происходит сделка по “первой ноге”, тут же выставляется также ЛИМИТИРОВАННАЯ заявка по второму инструменту, но чтобы сделка с очень большой вероятностью произошла лимитированная заявка считается по следующему алгоритму – очень короткая средняя (за 5 последних секунд), рассчитываемая по котировкам стаканов. Потом если нужно купить – ставим эта средняя плюс определенная дельта (имитируя рыночную заявку, но которая не может улететь далеко внутрь стакана). Если продать – то средняя минус дельта. Если сделка не совершилась, т.е. цена ушла в сторону, то заявка переставляется опять опираясь на очень короткую среднюю до тех пор, пока сделка не совершится. (обычно сделка совершаетс тут же)…

      В общем, очень долго всё это описывать в комментарии… Если у Вас есть интерес – подписывайтесь на курс наш бесплатный, берите программу и эксперементируйте сами.
      Хочу предупредить, что на исторических данных очень сложно эту стратегию протестировать, т.к. наша торговля оказывает ЗНАЧИТЕЛЬНОЕ влияние на условия тестирования. Даже если Вы по тестам получите очень хорошие результаты – на самом деле все может быть совсем по другому в реальности – так как выставляемые Вами заявки и совершаемые Вами сделки будут влиять на исходные данные…
      Высокочастотные стратегии можно проверять только на практике и стратегии оттачивать только на практике на небольших объемах. Если получается, то тогда постепенно объемы увеличивать.
      Это моё ИМХО… Не претендую на истину в последней инстанции…

  9. m19124m пишет:

    Дмитрий, спасибо за комменты.

    1.Если подняться выше по статье, то видно на скриншотах, что в стаканах сделки:
    покупка (150070) по ask и
    продажа (149705) по bid
    Это рыночные приказы.
    Вот если бы покупать по bid, а продавать по ask – это были бы лимитированные приказы.

    2.Средние (за последние 5 секунд) строятся по каким данным? Это SMA, EMA, WMA? За конкретику буду благодарен.

    3.На курс подписался, да пока материала по-существу маловато пришло, с нетерпением ожидаю продолжения.

    4.Мне бы очень хотелось понять суть торговой стратегии, которая используется, а программу создать – это уже дело второе.
    Прикинуть результаты работы стратегии на малых объемах можно хоть под excel.

    5.С перестановками заявок есть нюанс – если отклонение спреда ловить не совсем маленькое, то можно допереставляться до минусов (так как за сколько-то заявок неприведших к сделке – биржа берет плату).

    6.Рад был бы посмотреть на статистику реальных сделок. Что одноногий арбитраж, что календарный – каково мат.ожидание в долгосрочном периоде? Может малый перевес в прибыльную сторону сжирается комиссиями бирже, в том числе за перестановку заявок, и брокеру.

    • 1) В данной статье я просто на простейших примерах пытаюсь “разжевать” теорию. Если хотите практику посмотреть – смотрите вот в этой статье видео по реальной торговле… http://finlabportal.ru/2010/03/attrakcion-zarabatyvaem-1000-punktov-za-20-minut/

      2) За какое время усреднять – указывает пользователь (трейдер) в собственных настройках. Метод расчёта – простая средняя. Берутся данные каждые 3 секунды и усредняется за период усреднения.

      3) По поводу курса – конечно, информация будет приходить постепенно, как говорится – тише едешь – дальше будешь…

      4) Для нас создать программу – не второе дело… Поверьте – это очень непростое дело. Возникает куча вопросов и нюансов…
      Я бы просто хотел ещё раз подчеркнуть – каждый стиль торговли выбирает для себя и то, что я некоторые моменты здесь показываю – это не призыв торговать именно так. По большому счёту это демонстрация возможностей нашей программы – показывает как гибко настроить можно и как использовать под собственные нужды. Делится работающими настройками и рабочими параметрами (определение которых очень трудоёмко и затратно) не всегда хочется. ПО сути, здесь намёки – в какую сторону копать. А уж копать ли, как и куда – решать Вам.

      5) Чтобы не генерировалось “бешенное” количество заявок в программе предусмотрен “интервал доступности”. Т.е. если программа хочет поставить заявку дальше указанного параметра от лучшего бида при покупке или от лучшего офера при продаже, то такая заявка не выводится на биржу, а хранится “виртуально” в памяти программы. И лишь когда расстояние от лучшего бида или офера удовлетворяет трейдера – происходит реальный вывод заявки на биржу.

      6) Статистику нарабатывайте сами… У Вас ведь будут свои настройки для торговли. Я же презентую всё-таки программу, а не стратегию…

      А вообще – понимаю Ваш интерес и желание побыстрее всё узнать и попробовать. Но всё-таки посоветовал бы постепенно разбираться по мере поступления новых писем по курсу. Рынок никуда от Вас не убежит…
      Пробуйте, исследуйте – если не жалко будет – выкладывайте здесь Ваши наработки… :-)

  10. m19124m пишет:

    Дмитрий, благодарю за ответы, думаю что и другим интересно узнать некоторые подробности.
    По-поводу перестановок. Наблюдения показывают, что у текущего фьюча на РТС (сейчас это RIM0) очень часты “прострелы” в ту или иную сторону. Пунктов на 25-100 бывают относительно часто. Это происходит в том числе и из-за торговли по лучшим ценам (по рыночным). При выставлении передвигающихся заявок только когда они ближе 15 пунктов от соответствующего края стакана приводит к пропуску таких прибыльных арбитражеру движений.
    Можно, конечно, попытаться ориентироваться и на объем выставленных в стакан заявок, однако другие трейдеры не глупы и не устанавливают весь желаемый в покупке/продаже объем. Получается, что заявка и в 1000 контрактов прошибается легко, особенно при направленном скачке западных индексов. Возможно он-лайн наблюдение за фьюческами на (например) нефть brent, индексы DJ, S&P помогут делу.

    • В нашей программе FinLab.PairTrade можно подключать внешние площадки (западных брокеров) и на основе западных инструментов строить синтетические инструменты. Мы подключались к OEC – брали оттуда данные по фьючерсам СП500 мини, нефти, евробаксу…
      Иногда интересные вещи можно строить.

      • vovattt пишет:

        заинтриговала возможность подключения к оес.когда и как это можно осуществить?

  11. Михаил пишет:

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

    • Если программа не успевает продать по лимитированной заявке, то она не продаёт :-)
      А если серьёзно – просто выставляет заявку и если цена уходит – снимает заявку и выставляет снова в нужный момент. И так до тех пор, пока не купит или не продаст…

  12. Михаил пишет:

    Но в таком случае может быть серьезная просадка, ведь цена например на RI может уйти и на 1000 пунктов за 5 минут.

  13. Михаил пишет:

    Единственный вариант перекрытия это закрытие по рынку, а с лимитированной заявкой всегда будет хоть и небольшая вероятность неисполнения.

    • Но зато с заявкой “по-рынку” очень велик риск того, что вы проведёте сделку по самой плохой цене… Поэтому лимитка с большим, но приемлемым отсупом от текущей середины цены между бидом и офером, усреднённой за 5-10 секунд, на мой взгляд, является более безопасным вариантом перекрытия. Но если Вам хочется Вы отступ можете поставить на уровня дневного лимита цены. Тогда по-сути это будет рыночная заявка.

  14. Михаил пишет:

    Я понял, спасибо за ответы.

  15. Михаил пишет:

    Исполнение фьючерсных контрактов на нефть происходит ежемесячно.Используете ли Вы это для календарного арбитража?

  16. arraga пишет:

    Не совсем понятно, почему в примере автор рассматривает арбитраж фьюч\спот, хотя на деле это арбитраж фьюч\фьюч (близкий\дальний). Спот – это вообще-то цена актива на мамбе в данный момент – применимо к РФ. Неправильная терминология в дальнейшем может спутать карты.. А в остальном – очень интересная тема, читаем дальше!

Оставить комментарий