Блог им. sariato

Теория - получение OHLCV из тиковой таблицы

Всем привет!

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

Я разработчик, пишу инструмент на C# по переводу тиковой таблицы в 1-минутную с OHLC-данными и объемом. Работаю с фьючерсами.
Прошу помочь разобраться, поделиться опытом. Может кому-то тоже будет полезно. 

В итоге, я хочу получить 5 разных OHLCV-данных:
1. OHLCV цен контрактов.
2. OHLCV объема (не цены, а объема) контрактов на покупку. Это о том, сколько всего контрактов на покупку в течение 1 минуты.
3. OHLCV объема контрактов на продажу. Это о том, сколько всего контрактов на продажу стоит в течение 1 минуты.
4. OHLCV объема заявок на покупку. Это о том, сколько всего заявок на покупку стоит в течение 1 минуты.
5. OHLCV объема заявок на продажу. Это о том, сколько всего заявок на продажу стоит в течение 1 минуты.

Я в финансовой теме новичок, пытался разобраться, но боюсь ошибиться.
В таблице есть T-строки (Trade, примеры полей: <ACTIVITY.DATETIME>,<TRADE.PRICE>,<TRADE.SIZE>), Q-строки (Quote, поля: <ACTIVITY.DATETIME>,<BID.PRICE>,<BID.SIZE>,<ASK.PRICE>,<ASK.SIZE>), так же в первой H-строке заголовка (Header) есть поля <YEST.TRADE.CLOSE>,<YEST.TRADE.VOL> — это данные предыдущего дня — последняя цена закрытия, последний объем. Пример таблицы скопировал ниже.

Вопросы:
1. Нашел в сети принцип построения OHLC свечи. Верный ли он?
«Если это первый тик минуты, цена открытия = цена тика, минимальная цена = цена тика, максимальная цена = цена тика. Цена закрытия предыдущей минуты равна цене закрытия.
Если не первый тик минуты, выберите самую низкую цену, а также самую высокую цену.»
Т.е., в случае с ценами, в первой минуте за цену Close берем из поля <YEST.TRADE.CLOSE>, остальное как описано выше, правильно понимаю?

2. Как правильно вычислить объем сделок — Volume (на графике свечей вертикальные линии внизу)? Нужно использовать для этого <TRADE.SIZE>, верно? Или что-то другое.
Пример, что я понимаю под объемом:
100 долларов — 100 сделок
101 долларов — 20 сделок
99 долларов — 10 сделок
Итого, объем — 100+20+10=130 сделок.

3. Как правильно вычислить OHLCV объемов контрактов на покупку/продажу и объемов заявок на покупку/продажу (т.е. объем на начало минуты, высший объем, низший объем и тд), это уже будет исходят из объемов 2 пункта?

4. Правильно ли, если я буду использовать поле <BID.SIZE> для вычисления объема контактов на покупку?
5. Правильно ли, если я буду использовать поле <ASK.SIZE> для вычисления объема контактов на продажу?

Благодарю за помощь!

Таблица фьючерсов:
__________________
##TICKER.PLANT=8
##PRIMARY.FILE.SIGNATURE=841249294+325504988 (Internal Use)
#D=H|<ENUM.SRC.ID>|<SYMBOL.TICKER>|<CURRENCY.STRING>|<ISIN>|<SEDOL>|<CUSIP>|<DISPLAY.PRECISION>|<TRADE.OPEN>|<OPEN_INT>|<YEST.TRADE.CLOSE>|<YEST.TRADE.VOL>|<SETTLE.DATE>|<SETTLE.PRICE>|<EXPIRATION.DATE>|<FRONT.MONTH.CONTRACT>|<ENUM.INSTR.TYPE>|<LOT.SIZE>|<CONTRACT.SIZE>|<VARIABLE.TICK.SIZE>|<MKT.SEGMENT>
#D=T|<TAS.SEQ>|<RNR.END.EXCH.SEQ>|<ACTIVITY.DATETIME>|<TRADE.PRICE>|<TRADE.SIZE>|<TRADE.COND_1>|<PART.CODE>|<VWAP>|<TRADE.DATETIME>|<EXCH.MESSAGE.TIMESTAMP>|<TRADE.COND_2>|<TRADE.COND_3>|<TRADE.OFFICIAL.TIME>|<TRADE.COND_4>|<TRADE.COND_5>|<EXTENDED.TRADE.COND>|<TRADE.OFFICIAL.DATE>|<RETRANSMISSION.FLAG>|<AGGRESSOR.SIDE>|<TRADE.UNIQUE.ID>
#D=Q|<TAS.SEQ>|<RNR.END.EXCH.SEQ>|<ACTIVITY.DATETIME>|<BID.PRICE>|<BID.SIZE>|<ASK.PRICE>|<ASK.SIZE>|<QUOTE.COND_1>|<PART.CODE>|<QUOTE.DATETIME>|<EXCH.MESSAGE.TIMESTAMP>
#D=S|<TAS.SEQ>|<ACTIVITY.DATETIME>|<INSTR.STATUS>|<EXCH.MESSAGE.TIMESTAMP>|<TRADABLE.STATUS>|<MARKET.PHASE>
H|817|F:AF\H21|RUB||||6|6967|69170|6968|24312|1615939200|6964|20210319||1024||100.0|1.00000|0
T|11||1615954022.1954|7046|1|0||7047.859122|1615954022.1954|40702165|||40702160308251||||20210317||2|307224898174321368
Q|12||1615954022.1954|7046|4|7049|20|||1615954022.1954|
Q|13||1615954327.3543|7046|4|7050|16|||1615954327.3543|
T|14||1615954582.2266|7046|1|0||7047.858264|1615954582.2266|41622195|||40702160308251||||20210317||2|307224898174321368
Q|15||1615954590.4962|7046|4|7050|16|||1615954590.4962|
Q|16||1615954590.4962|7046|4|7050|16|||1615954590.4962|
Q|1||1615952739.0391|0|5|7050|0|||1615952739.0391|
Q|2||1615952739.0391|6900|2|7050|0|||1615952739.0391|
S|3|1615953600.8611|17|40000828|1|4
Q|4||1615953601.3659|6900|2|7079|92|||1615953601.3659|
Q|5||1615953601.4004|6908|111|7079|92|||1615953601.4004|
S|6|1615953603.4038||40003376|1|4
Q|7||1615953612.409|7028|32|7079|92|||1615953612.409|
Q|8||1615953612.409|7028|32|7068|7|||1615953612.409|
Q|9||1615953623.8241|7028|32|7056|48|||1615953623.8241|
Q|10||1615953745.7116|7028|32|7049|20|||1615953745.7116|

968 | ★1

Читайте на SMART-LAB:
Фото
📊 Что означает переподписка выпусков облигаций
Переподписка — это ситуация, когда спрос инвесторов на выпуск облигаций превышает объём предлагаемых бумаг. Например, если компания...
Фото
12 марта Группа Ренессанс страхование опубликует МСФО за 2025 год
Напоминаем, что 12 марта 2026 года RENI опубликует МСФО Группы за 2025 год, а также проведет День инвестора, чтобы рассказать о ситуации на...
Рынок меняется? Прибыль маркетплейсов, убытки металлургов
«Озон» выходит в прибыль благодаря собственной финансовой экосистеме, МТС-Банк эксплуатирует бизнес-модель хедж-фонда, а «Фикс Прайс» покоряет...
Фото
Хэдхантер. Отчет МСФО 25г. “Режет косты“ и ждёт X2 темпов роста по выручке на 26г.
Вышли финансовые результаты по МСФО за Q4 2025г. от компании Хэдхантер: 👉Выручка — 10,47 млрд руб. (+0,4% г/г) 👉Операционные расходы —...

теги блога sariato

....все тэги



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