ビットコイン履歴データ-Pythonを使用して取引プラットフォームからデータを取得
関連政策の規定によると、国内のビットコイン取引は2017年9月末に閉鎖されるが、ここ数年、ビットコイン取引の歴史的相場データは、今後経済、金融、量子化取引戦略などの研究に用いる上で重大な価値がある可能性があるため、この文章は主にPythonを通じて取引プラットフォームが提供するAPIからデータを取得し、CSVファイルに保存して後日利用する方法について述べている.
本文の主な内容は以下の通りである.ビットコイン、ライトコインの歴史相場データ Pythonを利用してokcoinを取得する.cnビットコイン履歴データ Pythonでhuobiを取得する.comビットコイン履歴データ ビットコイン、ライトコインの歴史相場データ
ビットコインやライトコイン、その他のいくつかのデジタル通貨の歴史的相場データはすでに
番号付け
ラベル
取引所
データダウンロードアドレス
1
btc_cny
okcoin
daily_price_btc_cny.csv
2
ltc_cny
okcoin
daily_price_ltc_cny.csv
3
eth_cny
okcoin
daily_price_eth_cny.csv
4
etc_cny
okcoin
daily_price_etc_cny.csv
5
bcc_cny
okcoin
daily_price_bcc_cny.csv
6
btc_cny
huobi
daily_price_btc_cny.csv
7
ltc_cny
huobi
daily_price_ltc_cny.csv
Pythonを利用してokcoinからcnビットコイン履歴データの取得
okcoinが提供したAPIマニュアルを参照して、履歴相場データを取得することができます.履歴データを取得するには、主に2つのステップがあります.接続API取得データ はpandasを用いるデータを処理し、
Pythonを利用してhuobiからcomビットコイン履歴データ取得
従属者とcn取得履歴データはhuobi.comが提供するAPIマニュアル、詳細コードは以下の通りです.
参考資料
Okcoin API Huobi API GitHub
本文の主な内容は以下の通りである.
ビットコインやライトコイン、その他のいくつかのデジタル通貨の歴史的相場データはすでに
csv
形式に取得され保存されており、データを使用する必要があるのはGitHubから直接ダウンロードして使用することができ、データ取得のソースコードはGitHubにも提供されており、データのソースを知りたい場合はソースコードを読むことができます.備考:以下のデータはネットワークに由来し、ソースコードが公開されていることを取得し、データの正確性を保証しないで、実際の状況に応じて使用してください.番号付け
ラベル
取引所
データダウンロードアドレス
1
btc_cny
okcoin
daily_price_btc_cny.csv
2
ltc_cny
okcoin
daily_price_ltc_cny.csv
3
eth_cny
okcoin
daily_price_eth_cny.csv
4
etc_cny
okcoin
daily_price_etc_cny.csv
5
bcc_cny
okcoin
daily_price_bcc_cny.csv
6
btc_cny
huobi
daily_price_btc_cny.csv
7
ltc_cny
huobi
daily_price_ltc_cny.csv
Pythonを利用してokcoinからcnビットコイン履歴データの取得
okcoinが提供したAPIマニュアルを参照して、履歴相場データを取得することができます.履歴データを取得するには、主に2つのステップがあります.
csv
として保存するファイル以下は従okcoinである.cn取得データの詳細コード:import http.client
import json
import pandas as pd
REQUEST_URL = 'www.okcoin.cn'
KLINE_TT_COLS = ['date', 'open', 'high', 'low', 'close', 'volume']
def http_get(url, resource, params=''):
conn = http.client.HTTPSConnection(url, timeout=10)
conn.request("GET", resource + '?' + params)
response = conn.getresponse()
data = response.read().decode('utf-8')
return json.loads(data)
def ticker(symbol='', data_type='1day', since=''):
ticker_resource = "/api/v1/kline.do"
params = ''
if symbol:
params = 'symbol=%(symbol)s&type=%(type)s' % {'symbol': symbol, 'type': data_type}
if since:
params += '&since=%(since)s' % {'since': since}
k_data = http_get(REQUEST_URL, ticker_resource, params)
if len(k_data) == 0:
raise ValueError('Can not obtain the data.')
else:
df = pd.DataFrame(k_data, columns=KLINE_TT_COLS)
df['date'] = pd.to_datetime(df['date'], unit='ms')
return df
if __name__ == '__main__':
# okcoin.cn bitcoin - cny since 2013-6-11 ~ now, daily price history
daily_price_btc_cny = ticker('btc_cny')
daily_price_btc_cny.to_csv('./data/okcoin/daily_price_btc_cny.csv')
# okcoin.cn litecoin - cny since 2013-9-11 ~ now daily price history
daily_price_ltc_cny = ticker('ltc_cny')
daily_price_ltc_cny.to_csv('./data/okcoin/daily_price_ltc_cny.csv')
# okcoin.cn eth - cny since 2017-5-31 ~ now daily price history
daily_price_eth_cny = ticker('eth_cny')
daily_price_ltc_cny.to_csv('./data/okcoin/daily_price_eth_cny.csv')
# okcoin.cn etc - cny since 2017-7-16 ~ now daily price history
daily_price_etc_cny = ticker('etc_cny')
daily_price_etc_cny.to_csv('./data/okcoin/daily_price_etc_cny.csv')
# okcoin.cn bcc - cny since 2017-7-16 ~ now daily price history
daily_price_bcc_cny = ticker('etc_cny')
daily_price_bcc_cny.to_csv('./data/okcoin/daily_price_bcc_cny.csv')
# okcoin.cn bitcoin - cny since 2013-6-11 ~ now, hour price history
hour_price_btc_cny = ticker(symbol='btc_cny', data_type='1hour')
hour_price_btc_cny.to_csv('./data/okcoin/hour_price_btc_cny.csv')
# okcoin.cn litecoin - cny since 2013-6-11 ~ now, hour price history
hour_price_ltc_cny = ticker(symbol='ltc_cny', data_type='1hour')
hour_price_ltc_cny.to_csv('./data/okcoin/hour_price_ltc_cny.csv')
Pythonを利用してhuobiからcomビットコイン履歴データ取得
従属者とcn取得履歴データはhuobi.comが提供するAPIマニュアル、詳細コードは以下の通りです.
import http.client
import json
import pandas as pd
REQUEST_URL = 'api.huobi.com'
KLINE_TT_COLS = ['date', 'open', 'high', 'low', 'close', 'volume']
def http_get(url, resource, params=''):
conn = http.client.HTTPSConnection(url, timeout=10)
conn.request("GET", resource + '?' + params)
response = conn.getresponse()
data = response.read().decode('utf-8')
return json.loads(data)
def ticker(symbol=''):
ticker_resource = "/staticmarket/%(symbol)s_kline_100_json.js" % {'symbol': symbol}
params = ''
if symbol:
params = 'length=2000'
k_data = http_get(REQUEST_URL, ticker_resource, params)
if len(k_data) == 0:
raise ValueError('Can not obtain the data.')
else:
df = pd.DataFrame(k_data, columns=KLINE_TT_COLS)
df['date'] = pd.to_datetime(df['date'], format="%Y%m%d%H%M%S%f")
return df
if __name__ == '__main__':
# huobi.com bitcoin - cny since 2013-9-1 ~ now, daily price history
daily_price_btc_cny = ticker('btc')
daily_price_btc_cny.to_csv('./data/huobi/daily_price_btc_cny.csv')
# huobi.com litecoin - cny since 2014-3-9 ~ now daily price history
daily_price_ltc_cny = ticker('ltc')
daily_price_ltc_cny.to_csv('./data/huobi/daily_price_ltc_cny.csv')
参考資料
Okcoin API Huobi API GitHub