ダーシャのブログ

ゆるゆる生きてていいじゃない

kucoinAPIでOHLCVデータをダウンロードする

kucoin-python sdkをインストール

pip install kucoin-python

github.com

kucoinAPIドキュメントを見る

docs.kucoin.com

klineを取得する方法

GET /api/v1/market/candles?type=1min&symbol=BTC-USDT&startAt=1566703297&endAt=1566789757 f:id:darshasilje:20220406114412p:plain 最大で1500個しか取れないので、それ以上の場合は複数回に分けて問い合わせる必要がある。 f:id:darshasilje:20220406114554p:plain

実際にダウンロードしてみる

import pandas as pd
from kucoin.client import Market
from datetime import datetime

client = Market(url='https://api.kucoin.com')
# client = Market()
# or connect to Sandbox
# client = Market(url='https://openapi-sandbox.kucoin.com')
# client = Market(is_sandbox=True)

# set start, end
now = datetime.utcnow()
start = pd.to_datetime('2019-04-01 00:00:00.000', format='%Y-%m-%d %H:%M:%S.%f')
end = pd.to_datetime('2021-04-01 00:00:00.000', format='%Y-%m-%d %H:%M:%S.%f')

# datetime to unixtime
since = int(start.timestamp())
limit = int(end.timestamp())
now = int(now.timestamp())

# get symbol kline
klines = client.get_kline('XTZ-USDT','1day', startAt=since, endAt=now)
df1 = pd.DataFrame(klines, columns =['time', 'open', 'close', 'high', 'low', 'value', 'turnover'])
# 行削除, time列の表示をunixtime to datetime, インデックスをtimeにする
df1 = df1.drop('turnover', axis=1)
df1['time'] = pd.to_datetime(df1['time'], unit='s', utc=True)
df1 = df1.set_index('time')

display(df1)
#df.to_pickle('XTZ_USDT_1day_ohlcv.pkl')
#df.to_csv('XTZ_USDT_1day_ohlcv.csv')

f:id:darshasilje:20220406115713p:plain