元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

ビットコイン価格をCSVでダウンロードするサービスを作りました。

ビットコイン取引所の配信するビットコイン/仮想通貨の過去データをダウンロードするサービスを作りました。
機械学習の練習やbotのバックテストなんかに使えると思います。

nyatla.jp


公開しているのは、bitflyerZaifが配信しているデータから作った始値、高値、安値、終値四本値と、出来高、VWAPの15秒~1時間足です。
ビットコインの他、XEMMONA等のCSVJSONファイルがダウンロードできます。

ほかにも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になんかいうとどうにかなるかもしれません。