Рубрики
Без рубрики

Resampling Market Tick Data

Галочка данных Данные галочки – это поток отдельных сделок, выполненных на обмене (обычно … с меткой Python, Pandas.

Галочка данных

Данные галочки – это поток отдельных сделок, выполненных на бирже (обычно биржевой биржи) с каждым «клещевым», представляющим одну сделку.

Как правило, каждая галочка содержит временную метку, цену, объем и обмен торговля была выполнена. Например, ниже ряд клещей для Apple AAPL:

2021-02-01 04:00:02:533,133.65,1,ARCX
2021-02-01 04:00:02:533,133.7,4,ARCX
2021-02-01 04:00:03:713,133.71,50,XNGS
2021-02-01 04:00:03:713,134,50,XNGS
2021-02-01 04:00:03:713,133.7,50,ARCX
2021-02-01 04:00:03:932,134,200,XNGS

(Обратите внимание на меток времени включает миллисекунды)

Resampling Tick Data.

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

Бар, является одной точкой данных для таймфрейма, который включает в себя открытые, близкие, высокие и низкие цены. Например: ниже ряд 1-минутных баров для Apple AAPL:

2021-01-04 09:30:00,133.52,133.612,132.95,133.15,2328651
2021-01-04 09:31:00,133.13,133.45,133.08,133.335,486524
2021-01-04 09:32:00,133.345,133.36,132.99,133.11,471947
2021-01-04 09:33:00,133.11,133.15,132.71,132.746,477518

(Формат: Timestamp, Высокий, Низкий, Открытый, Закрыть, Объем)

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

Работал пример

Начиная с галочки набора данных для AAPL, вы можете получить образец Tick DataSet для AAPL на Tickhistory Отказ

Если у вас уже нет Python и Pandas, простое решение для установки Анаконда А затем используйте Anaconda для установки Pandas.

Однажды в Python импортируйте пакет Pandas

import pandas as pd

Далее загрузите данные в DataFrame

aapl_df = pd.read_csv('AAPL_2020_10.txt', names=['timestamp', 'trade_price', 'volume', 'exchange'], index_col=0, parse_dates=True)

Это утверждение читает файл отформатированного CSV (обратите внимание, что он также может прочитать непосредственно из файла zip), имена столбцы, анализирует Timestamp в date_time и, наконец, устанавливает индекс в столбцу Timestamp.

Как только данные будут загружены, мы сможем быстро просмотреть файл dataframe, чтобы убедиться, что он правильно загружен с помощью Глава () Функция:

aapl_df.head()

Это должно выводить:

Timestamp           trade_price volume exchange
2021-02-01 04:00:02:533 133.65  1   ARCX
2021-02-01 04:00:02:533 133.7       4   ARCX
2021-02-01 04:00:03:713 133.71  50  XNGS
2021-02-01 04:00:03:713 134     50  XNGS
2021-02-01 04:00:03:713 133.7       50  ARCX

Чтобы изменить данные, мы будем использовать Pandas Resample () функция. Это необходимо повторить для каждого из высоких, низких, открытых, близко, объемных данных данных в баре:

aapl_1hour_open_df = aapl_df.resample("1H").agg({'trade_price': 'first'}) 
aapl_1hour_high_df = aapl_df.resample("1H").agg({'trade_price': 'high'}) 
aapl_1hour_low_df = aapl_df.resample("1H").agg({'trade_price': 'low'}) 
aapl_1hour_close_df = aapl_df.resample("1H").agg({'trade_price': 'last'}) 
aapl_1hour_volume_df = aapl_df.resample("1H").agg({'volume': 'sum'}) 

Теперь у нас есть отдельный DataFrame для каждого из открытых, высоких, низких, близких, объемных источников данных. Теперь нам нужно объединить их в единое DataFrame, используя Pandas CONCAT () Функция:

aapl_1hour_df =pd.concat([aapl_1hour_open_df, aapl_1hour_high_df, aapl_1hour_low_df, aapl_1hour_close_df, aapl_1hour_volume_df], axis=1, keys=['open', 'high', 'low', 'close', 'volume'])

Наконец, нам нужно удалить нулевые бары громкости, поскольку функция Resample будет включать в себя полосу для каждого таймфрейма в течение 24 часов, а не только на торговые часы. Это можно сделать путем фильтрации для объемов выше 0.

aapl_1hour_df = aapl_1hour_df[aapl_1hour_df.volume > 0]

Перезапись от клещей до 1-часовых баров теперь завершена, и файл может быть создан с помощью Pandas to_csv () Функция:

aapl_1hour_df.to_csv('file_path')

Оригинал: “https://dev.to/ryantjo/resampling-market-tick-data-5020”