bitFlyerのRealtime APIで取得したデータを分析してみる

bitFlyerのRealtime API

bitFlyerのRealtime APIBitCoinの情報を取得して、mongoDBに溜め込んでいます。溜め込んではいるものの、中身をあまり把握していないため、予測をする前にいろいろと分析してみようと思います。

「lightning_ticker_BTC_JPY」チャンネルの取得

Realtime APIで取得できる種類は、板情報、約定情報、tickerです。今回はtickerチェンネルを取得してみます。以下のようなデータが取得できます。

 "best_ask" : 631549.0,
 "best_ask_size" : 0.23970069,
 "best_bid" : 631200.0,
 "best_bid_size" : 1.49159631,
 "instrument" : "BTC_JPY",
 "ltp" : 631200.0,
 "product_code" : "BTC_JPY",
 "tick_id" : 16987632,
 "timestamp" : "2017-10-14T09:07:59.3941616Z",
 "timetoken" : NumberLong(15079720792143573),
 "total_ask_depth" : 1516.36024802,
 "total_bid_depth" : 4735.91225534,
 "volume" : 23453.91494245,
 "volume_by_product" : 23453.91494245,

 取得方法は過去記事へ。

取得結果

集計するデータは、BTC_JPYです。pandasで1時間ごとの統計値を算出しました。pubnub取得プログラムが途中で終了してしまうため、まとまったデータが取得できていないですが、まぁ下表の時間帯はしっかり取れているようです。

年月 時間 取得サンプル数 1時間平均値 1時間標準偏差
2017/10/14 14:00:00 7873 - -
2017/10/14 15:00:00 40545 639836 1047
2017/10/14 16:00:00 37343 640399 1043
2017/10/14 17:00:00 39525 641470 629
2017/10/14 18:00:00 38188 637724 2664
2017/10/14 19:00:00 30247 636109 1447
2017/10/14 20:00:00 37034 637918 893
2017/10/14 21:00:00 36255 638868 1562
2017/10/14 22:00:00 33516 641497 816
2017/10/14 23:00:00 35479 645063 2594
2017/10/15 0:00:00 37198 648592 1112
2017/10/15 1:00:00 37554 647967 919
2017/10/15 2:00:00 36314 648938 523
2017/10/15 3:00:00 21677 - -

1時間で3万~4万のデータが返ってくるようです。常に一定間隔ではないようです。1分間に500回データを取得していることになります。少し過剰かも。

2017年10月14日のBTC_JPYは64万円台です。現在11月で80万~75万あたりなので随分昔のように感じます。また、1時間の標準偏差は500円~2500円ほどです。1日だけではなんともいえませんが、複数の日を時間帯別でみてみると傾向があるかもしれません。(そのためには、取得プログラムが途中終了しないようにしないと…)