Team Spring
Team Spring личный блог
19 апреля 2016, 22:15

Торговля спреда между ближним и вторым фьючерсами на доллар

by Team_Spring.Finacier

USDRUB Futs Spread. Part I.

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

Простой принцип: решили торговать спред между ближним фьючерсом на доллар и следующим фьючерсом на доллар.

Я бы сказал торговать DV01, или 3-х месячный FRA, или как кому еще угодно. Но эти термины я знаю только в связи со спецификой своей основной профессиональной деятельности. Обыватель и трейдер, торгующий на PA, назовет это просто «спред» и будет прав.

Графики mid’ов ближайшего и следующего фьючерсов на руб./долл., а также спреда между этими фьючерсами за 15.04.2016. Графики построены по принтам стаканов, сделанным ~5 раз в секунду.

Графики mid’ов ближайшего и следующего фьючерсов на руб./долл., а также спреда между этими фьючерсами за 15.04.2016. Графики построены по принтам стаканов, сделанным ~5 раз в секунду.

Стратегия была выбрана до боли простая: полосы Боллинджера. Полосы рисовались от MA спреда.

Прикинули в Excel по тиковым данным. А именно выгрузили тиковые данные, взяли среднюю за каждую секунду, эти данные и стали input’ом. Сделали приблизительную модель «на коленке». Модель сработала, показала неплохой результат: ~600-1500 руб. в день при торговле 1 парой контрактов. Заложили в модель slippage на каждый трейд 3-5 руб. — модель продолжила работать (с меньшим PL, разумеется).

Сделал более sophisticated модель в Excel.

Кусок “Шапки” этой модели.

Торговля спреда между ближним и вторым фьючерсами на долларТорговля спреда между ближним и вторым фьючерсами на доллар

Пока тестировались эти данные (т.е. доступные в публичном доступе) за большое количество дней в Excel, Developer сетапил инфраструктуру и накапливал данные с биржи.

Когда, наконец, мы стали получать скрин биржи достаточно часто начали проводить более подробные расчеты. Excel умер.

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

Параметры, которые мы тестировали:

  • Длина ряда цен, по которому рассчитываются MA и стандартное отклонение;
  • Количество стандартных отклонений, по которым строятся Bollinger Bands;
  • Также позже появился параметр “Beta”. Параметр использовался для более тонкой настройки ширины Bollinger Bands, а именно, прибавлялся к верхней полосе и вычитался из нижней.

Протестировали, получили неплохие результаты: ~300р. в день на одной паре контрактов (лучшие параметры, как по PL, так и по стабильности).

А дальше Head попробовал такую штуку: что если execution у нас будет не по данным в текущий момент, а на 1/5 секунды позже. Тут то и начались проблемы…

Результаты (PL) каждого набора параметров резко снизились. Стратегия не «держала» slippage. Тем не менее, проведя с Head’ом несколько часов в выборах параметров, которые мы будем торговать (Developer параллельно писал торгующий алгоритм), мы их нашли.

Мы протестировали более 30 тыс. сценариев за ~8 торговых дней. Для оценки наборов параметров придумали такие метрики:

  1. PL (чем больше, тем лучше);
  2. Количество трейдов за день (чем больше, тем лучше);
  3. Стандартное отклонение результатов каждого отдельного трейда за день (чем меньше, тем лучше).

Мы стремились найти набор параметров, при котором был максимальный PL и при этом было максимальное количество сделок. Но также мы хотели избежать такого случая, когда за день мы получаем много сделок с небольшим минусом или небольшим плюсом, а потом делаем 2-3 сделки с высоким PL. Т.е. мы хотели достичь максимальной стабильности нашей стратегии.

В конце концов, мы остановились на ~30-50 наборах параметров, которые нам нравились. Выбрать один мы не могли. Я все придумывал ratios, Head зрел в корень: =MAX(PL).

Моя система оценки не давала однозначного ответа, а с системой оценки Head’а я был немного концептуально не согласен.

Сделали функцию рандома в экселе от 1 до ~30-50. Готово.

Продолжение следует...

12 Комментариев
  • Lexuz77
    19 апреля 2016, 22:25
    «Календарный спред» еще называют данный вид торговли
  • Сергей Гаврилов
    19 апреля 2016, 22:38
    Да, потратили кучу времени и работы… Хотя уже давным давно известно, что в таких парах главное качество исполнения, а остальное — суета… Но, как я понял, для Вас главное сам процесс... 

  • AntipinArt
    19 апреля 2016, 23:02
    Лет 5 назад увлекался этим, там биржа уже давно неэффективность свела к нулю. Короче ловит там нехер.
  • AntipinArt
    19 апреля 2016, 23:03
     Календари робот еще на выходе парсит, так что без вариантов. Вообще весь арбитраж, это хлеб который на 100% забрала биржа.
    • matrix
      20 апреля 2016, 17:44
      AntipinArt, биржа торгует на своей бирже? му ха ха ха
  • helk3rn
    19 апреля 2016, 23:15
    1)Смотрим объемы на дальних фьючах,
    2) спрашиваем себя — «какую их часть мы сможем отобрать у ХФТ?».
    3) с лицом *okay* уходим торговать cross_MA
  • SMT
    19 апреля 2016, 23:45
    Я не понял, спред по Last  строили что-ли?)
  • Deleted
    20 апреля 2016, 00:14
    Отличный пост. И похоже отличная команда у вас там :-)
  • cashbot
    20 апреля 2016, 03:12
    midprice, средний тик за секунду… Гы. Пытаетесь школьной линейкой замерить квантовые эффекты.

    Поторговали бы это хотя бы часик на реале, когда вам в дальнюю ногу поналивают в основном, когда боту пора оттуда валить и он просто настолько не успевает переставиться, что перекрываться вы будете на ближней порой на 20-30 рублей хуже. Тогда будет пища для более приближенных к реальности размышлений.
  • Marco
    20 апреля 2016, 07:43
    Сервер в зоне коллокации Московской биржи вы уже установили? :) 
  • Не тинькофф
    20 апреля 2016, 12:09
    Очень интересная статья и заработать на этом действительном можно Но есть несколько нюансов которые необходимо учесть:

    1. Спред у вас построен на исторических данных, в реале он не будет такой красивый
    2. Для такой торговли необходимо постоянно котировать заявки в дальнем фьюче, т.к там «дырка» большая (из-за малой ликвидности) и именно она будет много прибыли съедать
    3. На вашем месте я бы для такой торговли, как минимум взял бы отдельный канал у брокера
    4. Вам придется соревноваться с гигантами чистой арбитражной торговли, которые богаче вас и быстрее вас

    Успехов в реализации
  • Niktesla (бывш. Бабёр-Енот)
    21 апреля 2016, 11:06
    а я так понял они его сделали уже и соснули лапу... 
    … или это пишут те кто сделали первыми и теперь сидят на колокейшене на самописных роутерах и оттуда гоняют всю эту тему

    или судя по нику автора(Team_Spring.Finacier) это пишет «спонсор», желающий поведать нам как они всею толпою слили его бабки на граале))

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

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