【 バックテスト用 】 OHLCの過去データ(BTC)を1分足から取得する方法

老後2000万円問題と貯金 サムネイル

バックテストで勝率を出したいけどCryptowatchだと取得できるデータに制限がある。

一体どうしたらいいんだろう。と思ってたどり着いた人もいるはず。。!

 

この記事では私(草猫店長の中の人)がOHLCの過去データを取得するためにどんな方法やサイトがあるのかをまとめた備忘録的な記事になります。(少しずつここに載せた方法を実践していきます。)

 

分散型であるビットコインの過去データがオープンソースとしてあまり出回っていない(又は課金を要求するものである)のはおかしいですよね。

といった理屈でせめてスクレイピングできそうな情報だけはまとめて見ました。

 

手前味噌ですが、最近は自動売買botサービスが個人的にアツいです。

QUOREAと呼ばれるサービスで利益の出る人気botを自分で作ればそこから利用者へ与えた利益に応じて報酬がもらえるサービスがあります。

良かったらQUOREA(クオレア)とは 実際に使って理解したメリットとデメリットも読んでみてください。

過去データ(OHLC)を収集する方法の一覧

過去データを収集する方法の一覧

・CryptoWatchを使う

・取引所のデータを使う

・Investing.comのサイトで落とす

・CryptoDataDownloadでダウンロード

・Kaggleなどのデータコンテストのオープンソースを利用する

・CoinAPI.ioのAPIを使う

・Bitcoin Chartで拾ってくる

・もはや自分で集めておく

上記の中で1分足を4年分も取得できてもっともお手軽でデータ量も大きい方法はCryptoDataDownloadだと思います。

(CryptoDataDownloadでダウンロードする項目を見たい人はこちら)

 

CryptoWatch

CryptoWatchの公式サイト

CryptoWatchの公式サイト

各取引所のデータを引っ張ろうとすると最初に候補が出てくるのがCryptoWatchです。

過去データを引っ張るよりもリアルタイムデータを使うためにCryptoWatchは利用されるケースが多いです。

CryptoWatchの画像

APIも無料で利用できるので積極的に利用していきたいサイトです。

 

取引所のデータを使う

一番の王道は取引所から引っ張ってこれるだけのデータを収集する方法です。

しかし取得できる量に限りがありますね。

Poloniex(海外取引所)などは過去のデータを比較的に多く取得できるようです。

参考:Pythonと機械学習 – PoloniexのAPIを使ってBitcoin価格データの取得

 

Investing.com

Investing.comの画像

Investing.com

日足データになりますが比較的に誰でも簡単に取得できます。

ただしクラーケン、ANXといった取引所からのデータであり国内取引所とは少し実測値が異なるそうです。

CryptoDataDownloadでダウンロード

CryptoDataDownloadの画像

CryptoDataDownloadのサイト

海外のサイトですが一番簡単に1分足のデータをダウンロードできました。(5年分)

実際にダウンロードしたのは2019年分だけでしたがOHLCVで綺麗に取得できます。

 

このサイトが一番楽に2年分のデータをcsvファイルとしてダウンロードできました。

実際に取得したGenemiの分足画像と取引高

 

Kaggleなどのデータ分析サイトのオープンソースを利用する

Kaggleの画像

Bitcoin Historical Data – kaggle

Kaggleは有名なデータ分析サイトです。上のデータ以外にも様々な人がデータを公開していたりするので参考にできるかもしれません。

 

CoinAPI.ioのAPIを使う

CoinAPI.ioの写真

CoinAPI.ioのサイト

CoinAPIのサイトは世界中の取引所のデータを保有して月額で販売しています。

無料で扱える機能もあるため、無料アカウントでAPIを叩いてデータを取得する方法もできるようです。

ただし、API制限などもあり少し工夫が必要そうです。

 

参考になりそうなのは仮想通貨 1分足〈数年分〉の OHLC ヒストリカルを csv 取得する方法 – noteの記事です。

 

BitcoinChartsで拾ってくる

BitcoinChart

Bitcoinchartsの公式サイト

実際のデータに関してはBitcoinChartsのcsvページの(https://api.bitcoincharts.com/v1/csv/)で各取引所のデータを取得できます。

 

もはや自分で集めておく

一番は自分が普段使っている、実際に動かす取引所のデータでバックテストを行いたいですよね。

しかし、bitFlyerなどの規約ではデータの二次利用などは公開してはならないようなことが書かれているとのことで自分で集めることが一番無難かもしれません。

ビットコインのヒストリカルデータ(1分毎)の取得 – Qiita

上の記事ではデータをCryptowatchで取得してcsvデータとして出力するコードが書かれているので参考になるかと思います。

 

データ取得方法で参考になりそうな記事

[Python OHLCV] bitFlyer の過去の約定情報からオレオレOHLCVデータを作成する – ああああ

後に追加していきます。

 

OHLCヒストリカルデータを取得する方法 まとめ

老後2000万円問題と貯金 まとめ

データ取得する方法は思った以上に少ないなという印象を受けました。

取引所であれば積極的にオープンにしていっても良いと思うのですがビジネス的には不利になるのか、公開したところで何も良いことはないのかもしれません。

 

他にもっと良い方法などがあれば追記していきたいと思います。

 

ちなみに自動売買botをプログラミング知識なしで作って利益を出したらその分、報酬をもらえるQUOREAと呼ばれるサービスがおすすめです。

QUOREA(クオレア)とは 実際に使って理解したメリットとデメリットもぜひ読んでみてください。