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 или вообще пустая? Я был уверен, что когда экспирация закончена, то этот фьюч до закрытия торгов просто висит с ценой экспиры. 

    Я не знаю откуда цена передается и где висит фьюч с ценой экспирации.
    Соответственно не могу ответить на вопрос. Но думаю это и не важно. Мое мнение, что цена фьюча в день экспирации не интересна и не показательна для анализа, за исключением случая, когда непременно нужно знать цену экспирации.
  • T-800
    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
    Почитал ваш пост и все комментарии, но так и не понял — что вы хотите сделать? Ключ, по которому можно связать любые два и более фьючерса, — это дата и время. Или вы хотите сделать склейку фьючерсов разных экспираций? Если вы поясните, что в итоге  добиваетесь, — есть шанс что посоветуют.

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

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

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