デプスチャートをPythonで描写してみる
本記事では仮想通貨のデプスチャートをPythonで描写する方法について紹介します。
今回は例としてbitflyerのBTC_JPYのデプスチャートを作成してみたいと思います。
実際にソースコードも載せているのでご自由にお使いください。
デプスチャートとは
デプスチャートはその名の通り注文の深さを視覚的に表したチャートです。
買い、売りのそれぞれの注文がどの価格帯にどれだけの量注文されているかなどがわかるので、買いが強いのか売りが強いのかが判定しやすくなります。
ただ、もちろんデプスチャートのみでトレンドを見極めるのは難しいのでご注意ください。
bitFlyer API
ビットフライヤーのAPIをPythonから使えるpybitflyerというパッケージを今回は使用しました。
pipを用いて簡単に使用することが出来ます。
pip install pybitflyer
APIからは板の情報や価格情報、約定履歴などの情報を知ることができます。
詳しくは公式のAPI Documentationをご覧ください。
ソースコード
以下が実際に私が実装したソースコードです。
実行環境はJupyter Notebookです。
import pybitflyer from datetime import datetime from time import sleep from matplotlib import pyplot as plt %matplotlib inline # APIクラスの宣言 api = pybitflyer.API() # BTC/JPYの板情報を取得 board = api.board(product_code="BTC_JPY") # 各板情報を取得 def get_depth_data(position): size = [] price = [] for order in board[position]: size.append(order['size']) price.append(order['price']) size_cum = [size[0]] for i in range(1, len(size)): size_cum.append(size[i]+size_cum[-1]) return size, price, size_cum # 注文サイズ、注文価格、累積注文サイズを取得 asks_size, asks_price, asks_size_cum = get_depth_data('asks') bids_size, bids_price, bids_size_cum = get_depth_data('bids') # 取得する範囲 board_range = 100 # 図のサイズ plt.figure(figsize=(10,3)) # 図の描写 plt.fill_between(asks_price[0:board_range], asks_size_cum[0:board_range], color="red", alpha=0.3) plt.fill_between(bids_price[0:board_range], bids_size_cum[0:board_range], color="green", alpha=0.3) plt.plot(asks_price[0:board_range], asks_size_cum[0:board_range], color="red") plt.plot(bids_price[0:board_range], bids_size_cum[0:board_range], color="green") # 図の保存 plt.savefig("depthchart.png")
描写したデプスチャート
出力されたデプスチャートの例は以下の通りです。
横軸がBTCの価格、縦軸が累積の注文枚数です。
最も低い位置は現在の価格を示しており、そこから買い注文と売り注文がどのように分布しているのかを見ることができます。
まとめ
Pythonを用いてデプスチャートを描写してみました。
product_codeを変えることで他の通貨のデプスチャートも簡単に描写することができます。
ご自身でご自由に拡張してみてください。
おわり。