ビットコイン対円のティッカーを可視化
前回、pybitflyerを利用して bitFlyerからビットコイン対円のティッカーを2秒ごとに10分間分取得した。
ティッカーを取得、とかさらっと言っているが、実はFX初めて。 ただ株は少しやったことがあって、そうゆう人間からすると、 ティッカーを取得したら売買結果だった、というのはちょっと違和感があった。 と言うのもティッカーって、AppleならAAPLとか、Yahoo!Japanなら4689とか、企業を指すものだと思ってたから。 なので、FXで言うところのティッカーって何なのかを知るために、用語を調べたり、matplotlibで可視化してみた。
用語
まずは用語を少し調べてみたけど、こんな感じだろうか。。 間違ってたら教えて下さい。
- best_ask: 最高買い価格
- best_bid: 最低売り価格
- best_ask_size: 最高買い価格の数
- best_bid_size: 最低売り価格の数
- ltp: 最終取引価格
- total_ask_depth: 買い注文総数
- total_bid_depth: 売り注文総数
- volume_by_product: 価格ごとの出来高
best_ask
, best_bid
, ltp
の単位は円でOKだと思うけど、
best_ask_size
, best_bid_size
, total_ask_depth
,
total_bid_depth
, volume_by_product
は単位はBTCかな?
CSVのファイルの数値は少数第8位まであって、0.00000001BTC=1Satoshi
なのでOKとは思うが。
なお、total_ask_depth
, total_bid_depth
のイメージは以下が分かりやすいと思う。
下のグラフの両端の数値がそれらに該当すると思われる。
https://en.wikipedia.org/wiki/Market_depth
コード
前回のread_csv()
で取得できる
dfを次のplot_ticker()
の引数として渡すと可視化できる。
def plot_ticker(self, df): fig = plt.figure(figsize=(16, 9), dpi=100) fig.patch.set_facecolor('white') ax = fig.add_subplot(3, 1, 1) plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S')) ax.plot(df.index, df['best_ask'], ls='-', color='red', label='best_ask') ax.plot(df.index, df['best_bid'], ls='-', color='blue', label='best_bid') ax.plot(df.index, df['ltp'], ls='-', color='gray', label='ltp') plt.legend(loc='best') ax.grid() ax = fig.add_subplot(3, 1, 2) plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S')) ax.plot(df.index, df['total_ask_depth'], ls='-', color='red', label='total_ask_depth') ax.plot(df.index, df['total_bid_depth'], ls='-', color='blue', label='total_bid_depth') plt.legend(loc='best') ax.grid() ax = fig.add_subplot(3, 1, 3) plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S')) # ax.plot(df.index, df['volume'], ls='-', color='green', label='volume') ax.plot(df.index, df['volume_by_product'], ls='-', color='black', label='volume_by_product') plt.legend(loc='best') ax.grid() plt.tight_layout() plt.show()
結果
- 上グラフ
best_ask
が上、best_bid
が下のラインを支えていて,ltp
がその中間にあることが確認できる。 - 中グラフ
観測した中ではtotal_ask_depth
がtotal_bid_depth
をずっと下回っている。 あとtotal_ask_depth
が一定なのに足して、total_bid_depth
がたまに増える。 - 下グラフ
volume_by_product
が急激に減ったと思ったら、BTCの価格が上がっている。