こんにちは、ミナピピン(@python_mllover)です!
今回はGMOが新しくビットコインの高頻度データをAPIで提供してくれるサービスを開始したようなので早速使ってみました。
ビットコインの高頻度データをGMOのAPIから取得する
以下がコードになります。仕組みとしては開始日と終了日までの5分足のデータをスクレイピングして合体させてデータフレームにする処理になります。
import requests
import json
import pandas as pd
from datetime import datetime
from datetime import timedelta
now = datetime.now()
now_f = now.strftime('%Y-%m-%d')
start = datetime.strptime('2021-08-15', '%Y-%m-%d') # 開始日(APIドキュメントによると20210415から)
end = datetime.strptime(now_f, '%Y-%m-%d')+ timedelta(1) #終了日(本日まで)
endPoint = 'https://api.coin.z.com/public'
def daterange(_start, _end):
for n in range((_end - _start).days):
yield _start + timedelta(n)
price_data = []
for d in daterange(start, end):
# print(i)
path = '/v1/klines?symbol=BTC_JPY&interval=5min&date={}'.format(d.strftime('%Y%m%d'))
response_1 = requests.get(endPoint + path)
try:
for i in response_1.json()['data']:
price_data.append({"close_time":datetime.fromtimestamp(int(i["openTime"])/1000).strftime("%Y/%m/%d %H:%M:%S"),"open_price": int(i["open"]),
"high_price": int(i["high"]), "low_price": int(i["low"]),"close_price": int(i["close"])})
#ミリ秒のUNIXの場合は/1000にする
except:
pass
pd_data = pd.DataFrame(price_data)
pd_data.head()
ナカモトヤスシ 双葉社 2021年04月30日頃
コメント
[…] 関連記事:【Python】ビットコインの5分足の価格データをGMOコインのAPIでスクレイピングする […]