ビットコイン取引所の配信するビットコイン/仮想通貨の過去データをダウンロードするサービスを作りました。
機械学習の練習やbotのバックテストなんかに使えると思います。
公開しているのは、bitflyerとZaifが配信しているデータから作った始値、高値、安値、終値の四本値と、出来高、VWAPの15秒~1時間足です。
ビットコインの他、XEMやMONA等のCSVとJSONファイルがダウンロードできます。
ほかにもbitbankのデータもあるのだけど、データの公開方法について問い合わせに答えてくれたのがbitFlyerさんとZaifさんだったのでそれを公開しました。
bitFlyerさん、Zaifさん、ありがとうございます。
データ精度の話
配布しているデータは、取引所のPublicAPIから受信したデータを、監視サーバーの時刻で再サンプリングして生成しています。
例えば15:00に取引所で取引が行なわれ、15:00のタイムスタンプがついた取引情報が15:01に監視サーバーに到達した場合、15:01が取引時刻となります。他のサービスでは概ね取引所の取引時刻から生成をするため、それらとは差があることに注意してください。
価格データについても、あくまで監視サーバが受信したものを基準としているため、通信障害などの影響で取りこぼしがあります。
よく言えばより実態に近いとも言えますが、悪く言えば環境誤差の多いデータです。
データ形式の話
JSON
独自形式ですが、少し癖があります。
{ "version": "OhlcSt/1.0;DailyOhlcvApi/1.0.0;PHP", "success": true, "timestamp": 1565964661000, "result": { "market": "BitflyerLightning_FX_BTC_JPY", "interval": 180, "timeline": [ [ 1561993200000, [ 1175628, 1178499, 1164872, 1170744, 1497.79748331, 1169697 ] ], : ] } }
時系列データはresultオブジェクトのtimeline配列です。
形式は、[時刻,[その時刻のohlc,volume,vwap]]で、取引がない場合はohlcの配列はnullになります。
ohlcの値は、時刻NからN+intervalまでの区間の集計値です。例えば足間隔5分の場合、時刻0は0時以降5分未満のohlcvです。
CSV
version OhlcSt/1.0;DailyOhlcvApi/1.0.0;PHP market interval BitflyerLightning_FX_BTC_JPY 60 timestamp open high low close volume vwap 2019/07/02-00:00:00 1175628 1178499 1167500 1167900 517.11181185 1173693 2019/07/02-00:01:00 1167900 1171302 1165000 1171302 554.99927251 1166789 2019/07/02-00:02:00 1171302 1173600 1164872 1170744 425.68639895 1168635 2019/07/02-00:03:00 1170743 1171306 1166465 1167199 327.06389605 1170463
CSVは見ればわかると思います。区切り文字はタブです。
その他
利用規約に”有料”云々の話がありますが、これはダウンロードしたデータでしれっとコピーサイトを作られるのが嫌なのと、短時間に大量のダウンロードを避けるためのおまじないです。コピペした瞬間に料金を請求したりすることはありませんのでご了承ください。心配な場合は聞いてください。
データの塊が欲しい場合
ちまちまダウンロードするのメンドクサイ、ほかの形式のデータが欲しいいう方は、欲しいデータのスペックと手間賃をいただければ対応します。公開データのPublicAPIの情報から作れるものなら大体できると思います。
ご要望について
@nyatlaになんかいうとどうにかなるかもしれません。