こんにちは、ミナピピン(@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でスクレイピングする […]