bitFlyerのRealtime APIで取得したデータを分析してみる
bitFlyerのRealtime API
bitFlyerのRealtime APIでBitCoinの情報を取得して、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日だけではなんともいえませんが、複数の日を時間帯別でみてみると傾向があるかもしれません。(そのためには、取得プログラムが途中終了しないようにしないと…)