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% забрала биржа.

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

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