🔖

DataUtilityからbybitのデータ取得から結合までの流れ

2021/10/09に公開

はじめに

nagiさん製DataUtilityからタイトルのとおり一連のことをやったのでZenn初投稿での練習兼ねて何かやってみたいと思い書き起こしてみました。

データ取得

import DataUtility as du

start_ymd        = '2021/09/01'
end_ymd          = '2021/10/8'
symbol           = 'BTCUSD'
period           = '1S'
output_dir       = f'./{symbol}/ohlcv/{period}/'
request_interval = 0.0
progress_info    = True

du.Tool.save_daily_ohlcv_from_bybit_trading_gz(start_ymd, end_ymd, symbol, period, output_dir, request_interval, progress_info)


データが取得できたか確認

# データ読み込み
bydf=pd.read_csv('BTCUSD/ohlcv/1S/20211001.csv')
# Zennに貼り付けるために先頭5行をmarkdownに変換
print(bydf.head().to_markdown())
unixtime open high low close volume
0 1.63305e+09 43800 43800 43800 43800 3011
1 1.63305e+09 43800 43800 43800 43800 1
2 1.63305e+09 43800 43800 43799.5 43799.5 446431
3 1.63305e+09 43799.5 43800 43799.5 43799.5 24260
4 1.63305e+09 43799.5 43800 43799.5 43800 1051

結合

# 事前準備として20211001から2021008までのデータをリストにしておく
bydf = [pd.read_csv(f'BTCUSD/ohlcv/1S/2021100{i}.csv') for i in range(1, 8, 1)]
# 結合
df_concat = du.Tool.concat_df(bydf, sort_column='unixtime')
# Zennに貼り付けるために先頭1000から1005行までをmarkdownに変換
print(df_concat[1000:1005].to_markdown())
unixtime open high low close volume
1000 1.63305e+09 43727 43727.5 43727 43727.5 3542
1001 1.63305e+09 43727 43727 43727 43727 74100
1002 1.63305e+09 43727 43727.5 43727 43727.5 31000
1003 1.63305e+09 43727 43727.5 43727 43727.5 0
1004 1.63305e+09 43727 43727 43727 43727 57419

datetimeに変換

df_concat.rename(columns={'unixtime': 'datetime'}, inplace=True)
df_concat=df_concat.set_index('datetime')
df_concat.index = pd.to_datetime(df_concat.index, unit='s', utc=True).tz_localize(None)

完成

# 日付の境界あたりをmarkdownにしつつちゃんと結合されているか確認
print(df_concat['2021-10-01 23:59:58':'2021-10-02 00:00:03'].to_markdown())
datetime open high low close volume
2021-10-01 23:59:58 48131 48131 48131 48131 114
2021-10-01 23:59:59 48131.5 48131.5 48131.5 48131.5 20000
2021-10-02 00:00:00 48131 48131.5 48131 48131 8164
2021-10-02 00:00:01 48131 48131.5 48131 48131.5 20802
2021-10-02 00:00:02 48131 48132 48131 48132 82459
2021-10-02 00:00:03 48132 48132 48131.5 48131.5 199856

Discussion