Google Colaboratory(python) + API(bitflyer ,Cryptowatch)で、ビットコインの取引き情報を取得してみる
1. bitflyer APIからticker(リアルタイムのビットコインの情報)を取得する
1 2 3 4 |
import requests response = requests.get("https://api.bitflyer.jp/v1/ticker/") data = response.json() print(data) |
その瞬間のビットコイン売買情報が取得できる。
ビットコインで成り行き注文する奴なんて居ないよ!って事なのか?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ 'product_code': 'BTC_JPY', // bitcoinと日本円の売買 'state': 'RUNNING', // bitflyerの状態 'timestamp': '2022-06-09T00:43:28.633', //日時 'tick_id': 720340, // ティッカーID 'best_bid': 4042772.0, // 一番安い売値 'best_ask': 4044742.0, // 一番高い買値 'best_bid_size': 0.02, // 最低価格の売買数 'best_ask_size': 0.025, // 最高価格の売買数 'total_bid_depth': 1002.2498543, // 売り注文の総数 'total_ask_depth': 398.78837578, // 買い注文の総数 'market_bid_size': 0.0, // 成り行き売り注文数 'market_ask_size': 0.0, // 成り行き買い注文数 'ltp': 4042772.0, // 実際に取引きされた価格(最終取引き価格) 'volume': 11159.78853761, // 出来高(過去24時間の間に、売買された総ビットコイン数) 'volume_by_product': 2744.85890856 // 価格帯別出来高(最終取引き価格の出来高?) } |
2. Cryptowatchで、過去のビットコイン価格を取得してグラフ化する
Cryptowatch = 仮想通貨取引所のチャートがみれるサイト
periods(期間単位を秒で指定) = 86400秒 = 1日 = 日足(毎日のビットコイン価格)
after(UNIX時間で指定) = 1514764800 = 2018年1月1日0時0分0秒から本日まで
365日*4.5年=約1600日分のデータが取得できる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import matplotlib.pyplot as plt import datetime import requests response = requests.get("https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1514764800") data = response.json() x =[] y =[] for item in data["result"]["86400"]: x.append(datetime.datetime.fromtimestamp(item[0])) # 横軸が時間 y.append(item[1]) # 縦軸が初値 plt.plot(x, y) |
APIから帰ってくるJSONデータ
1 2 3 4 5 6 7 8 9 10 11 12 |
{'result': { '86400': [ [ 取引時間(クローズ), 初値 , 高値 , 安値 , 終値 , 出来高 ], [ 1514764800, 1523200, 1710000, 1503164, 1675530, 601.07623, 948861440], [1514851200, 1679280, 1683710, 1575210, 1630620, 443.9251, 726321660], , 'allowance': {'cost': 0.015, 'remaining': 9.97, 'upgrade': 'For unlimited API access, create an account at https://cryptowat.ch'}} |