Блог им. robostock

Склееные фьючерсы

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

В моей практике постоянно приходится сталкиваться с торговыми стратегиями на срочном рынке.

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

Цена фьючерса зависит от следующих параметров: цены базового актива, процентной ставки и дней до экспирации.

F=N*S*(1+r1) — N*div*(1+r2),

где

N – объем фьючерсного конт­ракта (количество акций),

F – цена фьючерса;

S – спот-цена акции;

r1 – процентная ставка на срок со дня заключения сделки по фьючерсному контракту до его исполнения;

div – размер дивидендов по базовой акции;

r2 – процентная ставка на срок со дня закрытия реестра акционеров («отсечки») до исполнения фьючерсного контракта.

Поэтому фьючерсы с разными датами экспирации торгуются c разными ценами, с премией или дисконтом к базовому активу.

Чем меньше дней до экспирации, тем меньше разница между базовым активом и фьючерсом.

Поэтому фьючерсы с разными датами экспирации торгуются с разным базисом к базовому активу.

У большинства фьючерсов на российском рынке всего 4 экспирации, и если вы торгуете без плечей, можно проигнорировать данный факт.

Кто же торгует на срочном рынке без плечей!? :)))))

А если рассмотреть фьючерс на нефть, то он экспирируется ежемесячно. В этом случае ошибка в тестировании фьючерсной стратегии будет давать знать о себе 12 раз в году. В чью пользу зависит от стратегии.

Но будьте уверены, в большинстве случаев не в вашу пользу.

 

Я выбрал 2 удобных способа хранения и использования исторических котировок фьючерсов.

 

 

Первый способ: раздельное хранение котировок отдельных фьючерсов

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

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

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

Чем удобен такой способ:

— легко тестировать стратегии на отдельных сериях фьючерсов

— не надо думать о том, как склеивались фьючерсы

— тесты максимально близки к реальным торгам

 

Чем неудобно:

— накапливается огромное количество файлов

— сложный код для стратегий, которые торгуют несколькими фьючерсами

— в wealth-lab`е не будет работать функция синхронизации позиций

— мало исторических данных, для стратегий использующих индикаторы с длинными периодами усреднения

 

Рекомендации:

Для удобной сортировки файлов рекомендую использовать формат имени файла в виде:

{сокращенное наименование фьючерса}{год}{код месяца} — Si17U, GZ17Z и т.д.

 

Второй способ: склейка с добавлением дополнительного поля

Этот способ пришлось «изобрести», когда понадобилось тестировать стратегию, торгующую корреляцию акций российских компаний с сырьевыми активами.

Во всех тестерах стало неудобно и лениво писать код, который бы в огромном количестве файлов находил правильный фьючерс, синхронизировал данные и корректно совершал сделки по двум инструментам.

Удобным решением оказалось склеить все исторические данные в один файл. Но вместо использования классических методик склейки фьючерсов, я добавил дополнительное поле «Expiration». Данное поле может принимать на ваше усмотрение любые значения.

Я записываю 0, либо 1.

«1» означает, что данный бар последний перед экспирацией.



Склееные фьючерсы

 

В случае работы с Wealth-Lab`ом для работы с дополнительным полем есть специальная функция — FindNamedSeries.

Загружаем дополнительное поле в отдельную переменную:

MySeries = Bars.FindNamedSeries( «Expiration» );

Далее на каждом новом шаге цикла проверяем значение этого поля.

Если MySeries[bar] = 1, то закрываем позиции по стратегии, т.к. это последний торговый бар перед экспирацией.

Если ваша стратегия торгует 2мя инструментами, тогда загружаете значения в две переменные и на каждом шаге цикла значение поля в двух массивах.

 

Чем удобен такой способ:

— вам становится доступна функция wealth-lab`а для синхронизации котировок разных инструментов

— упрощается код стратегии

— увеличивается массив данных для индикаторов с большим периодом усреднения (хотя я считаю это плохим тоном в написании стратегий)

— упрощается работа с несколькими инструментами

 

Чем неудобно:

С неудобствами не столкнулся

468 | ★16
3 комментария
«Цена фьючерса зависит от следующих параметров: цены базового актива, процентной ставки и дней до экспирации» — по мне так на цену фьюча влияет конечно БА, но в большей мере влияет психология игроков. По поводу % ставки и экспиры это больше к опционам относится
Николай Мишакин, как хорошо, что вы книжки не пишите :)
avatar
а попроще то можно ?))

Читайте на SMART-LAB:
Фото
Снижение военной премии в нефти: что это меняет для доллара и G10
Во второй половине понедельника – начале вторники рынки активно пересматривают премию за худший сценарий на энергетическом рынке, что цепочкой...
Фото
12 марта Группа Ренессанс страхование опубликует МСФО за 2025 год
Напоминаем, что 12 марта 2026 года RENI опубликует МСФО Группы за 2025 год, а также проведет День инвестора, чтобы рассказать о ситуации на...
Фото
📈 Новый выпуск облигаций МГКЛ уже торгуется на рынке
Биржевые облигации ПАО «МГКЛ» серии 001PS-02 начали торговаться на вторичном рынке после размещения. 💼 Выпуск доступен для неквалифицированных...
Фото
Гендиректор Инарктики продал свои акции компании. Что это может значить?
Вечером в пятницу (6 марта ) вышел сущфакт о том, что Соснов Илья Геннадьевич, гендиректор Инарктики, продал свои акции компании. В нашем...

теги блога Кирков Алексей

....все тэги



UPDONW
Новый дизайн