Serj90
Serj90 личный блог
27 мая 2021, 17:21

Проблема ведения архива котировок фьючерсов

Привет, Смарт-лаб.

Сразу к делу.

Стоит задача собирать архив котировок фьючерсов с moex.
При этом инструмент, который будет пользоваться этим архивом, построен с позиции «широкого охвата» рынка. Что это значит? — В инструменте подтягиваемые данные по конкретному фьючу могут рассматриваться и анализироваться не только в границах конкретного фьючерса, но и относительно других фьючей.

Для удовлетворения этого условия для себя определил, что архив данных по отдельным фьючам должен иметь:
  • «А» — единую структуру (поля)
  • «Б» — общий параметр (ключ), по которому будет возможно в принципе сопоставить данные разных фьючерсов

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

В рамках пояснения, к примеру, для индексов и акций решение было очень простым, таким «связующим» параметром стала дата каждого закрытия дневной свечи IMOEX. Логика тут проста, если сегодня торгуется акция, значит сегодня торгуется индекс. И наоборот. Соответственно, в архиве ключом для всех инструментов является дата торгов индекса imoex, и если по какой-то акции за дату торгов индекса не пришли данные, то считаем, что это «не проблема всего рынка», а значит «широкий охват» не нарушен, просто имеем выбитые данные, с которыми разбираемся отдельно (например, приостановка торгов конкретной бумагой).

И если для индексов, акций (облиги будут позже, т.к. там долгосрок, срочности нет) всё работает исправно, то для фьючерсов начинается головная боль. А может эту боль я сам себе придумываю?

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

Но дату проведения торгов чего конкретно брать за основу?:
  1. фьюча аэрофлота?
  2. фьюча палладия?
  3. может фьюча на ртс?
  4. может аналогично взять торговые дни индекса imoex?

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

по третьему пункту, типа, мы берем что-то отдельно стоящее от нашей пары, но важнее по «весу». Выбрали Ri, т.к. он важнее потому что это фьюч на индекс, а в индекс входят акции. Но почему надо воспринимать «вес» Ri больше чем «вес» фьюча палладия, ведь они как теплое с мягким?
(то есть пункт 3 покрывает задачу частично, + наверняка там есть риск присущий к четвертому пункту, об этом ниже)

по четвертому пункту вроде всё логично, более того он позволяет «широким охватом» сравнить индекс полной дохи, декабрьский фьюч аэрофлота, текущий фьюч палладия, да еще и акцию газпрома. Типа вообще красота, крути как хочешь.
(получается пункт 4 полностью покрывает задачу?)

Собственно теперь о фантомной боли:
В решении задачки «Б» получается логичным ориентироваться на даты торгов индексом, но возникает вопрос, есть ли здесь календарный фактор?
Я в механике рынка фьючерсов пока только разбираюсь, и у меня возник вопрос, всегда ли фондовая секция и срочная торгуются одновременно? Есть же, например, праздничные дни. Я посмотрел календарь торгов фондовой и срочной секции на этот год, расхождения по торговым дням не нашел. Получается, что боли нет, и можно спокойно строить архив по «дате индекса»? Но ведь в то же время есть праздничные дни за бугром, и есть фьючи, данные по которым «зеркалятся» к нам. Получается если там выходной, а у нас торги идут, то передается ли то что мы наторговали у себя на след день за бугор?

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

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.

26 Комментариев
  • Андрей К
    27 мая 2021, 17:33
    не фига себе заморочка )
    это ради экономии места?
      • Андрей К
        27 мая 2021, 17:48
        Serj90, своеобразная у вас задача, смысл которой с эталонами я не понял ). Думал у вас задача уплотнить данные.
  • Vkt
    27 мая 2021, 18:46
    С фьючерсами основные проблемы это то, что одновременно торгуются контракты на один и тот же базовый актив, но имеющие разные даты экспирации. Фьючи на нефть и газ экспирируются каждый месяц, остальные раз в квартал. Цены исполнения фьючерсов с датой экспирации в один день могут определяться в разное время. Есть фьючерсы поставочные и расчетные. Может еще чего забыл.


      • Vkt
        27 мая 2021, 19:24
        Serj90, не знаю какова цель данной глобальной базы, но я бы советовал в массив _0 в день экспирации ближайшего начинать записывать данные следующего фьюча, т.к. экспирируемые мало того, что будут умирать в разное время, так еще и на вечерке они уже не торгуются — получится дырка в данных, если следующий фьюч писать в эту базу со следующего дня.
  • Vkt
    27 мая 2021, 20:54
    цена по нему передается null или вообще пустая? Я был уверен, что когда экспирация закончена, то этот фьюч до закрытия торгов просто висит с ценой экспиры. 

    Я не знаю откуда цена передается и где висит фьюч с ценой экспирации.
    Соответственно не могу ответить на вопрос. Но думаю это и не важно. Мое мнение, что цена фьюча в день экспирации не интересна и не показательна для анализа, за исключением случая, когда непременно нужно знать цену экспирации.
  • Задача трех тел
    27 мая 2021, 20:55
    СтОит ли оно таких заморочек?
      • Vkt
        27 мая 2021, 21:20
        Serj90, если срочная секция на МОЕХ  работает, то торгуются абсолютно все фьючи, вне зависимости от праздников за бугром. Просто те которые зеркалятся торгуются особенно вяло, но могут и пнуть куда-нибудь и шпильку нарисовать. 

          • Vkt
            27 мая 2021, 22:10
            Serj90, а какая глубина истории в этой базе и какой ТФ, если не секрет?
              • Vkt
                28 мая 2021, 08:25
                Serj90, понятно, тогда попроще с фьючами. Я то думал, что в архиве интрадейние свечки.
  • Bearminator
    27 мая 2021, 21:29

    А есть ли в вашей базе исторические данные по ГО на фьючерсы на каждый день?

    Это не применительно к вашей задаче. Это я для себя интересуюсь)

  • Bearminator
    28 мая 2021, 10:54

    Serj90, да, это оно. 

    если использовать в торговой системе пирамидинг (докупки) позиции, то размер ГО будет сильно влиять на то, какое количество контрактов сможете взять и соответственно на итоговый результат.

  • yurikon
    28 мая 2021, 18:58
    Почитал ваш пост и все комментарии, но так и не понял — что вы хотите сделать? Ключ, по которому можно связать любые два и более фьючерса, — это дата и время. Или вы хотите сделать склейку фьючерсов разных экспираций? Если вы поясните, что в итоге  добиваетесь, — есть шанс что посоветуют.

    Имхо, хранить данные надо в сыром виде — как вы видите их в таблице всех сделок. А уже представление этих данных и обработка — как захотите.

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

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