Блог им. 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|

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

Читайте на SMART-LAB:
Новости российского и зарубежного рынков.
Новости российского и зарубежного рынков
Если вас интересуют другие аналитические и информационные материалы от банка АО АКБ «ЦентроКредит», смотрите их на нашем...
Фото
Страховщики становятся финансовой опорой экономики России
Страховой рынок окончательно вышел за рамки своей традиционной роли. Сегодня он не только защищает людей и бизнес от рисков, но и превращается в...
Долговая нагрузка россиян станет больше?
Банк России может обязать коммерческие банки включать в расчет показателя долговой нагрузки (ПДН) просроченную задолженность по коммунальным и иным...
Фото
Мозговой штурм: какие идеи в моменте?
Доброго вечера. Сегодня мы провели традиционный мозговой штурм. Выпишу некоторые идеи:

теги блога sariato

....все тэги



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