CryptoCompareのAPIを使ってBitflyerのBTCFX価格を取得しよう!

自動売買BOTなどでBTCFXの価格を取得する場合、基本的にはCryptowatchを使うのがベストな案だと思います。Cryptowatchの価格はBitfyer管理画面のチャートに表示されている価格に最も近いからです。

しかし最近はCryptowatchのサーバーが不安定になることも増えてきました。そこで第2の選択肢として、CryptoCompareからBTCFXの価格データを取得する方法を紹介します。

基本的な仕様

普段Cryptowatchを使っている方は、以下の仕様を把握しておきましょう!

(1)取得できるのは、1分足/1時間足/日足の3つだけ
(2)取得可能な最大件数は2000件まで
 デフォルトは1分足1440件/1時間足168件
(3)データの並びは時系列の古い順
(4)BitflyerFXのチャート画面の価格(終値)とは完全に一致しない

公式のAPI仕様書ページはこちら

Pythonコード

まずは最初にpythonコードを見ておきましょう。
以下のpythonコードを使えば、当サイトで紹介しているほとんどのコードとそのまま互換性があります。


import requests
from datetime import datetime

# CryptoCompareの価格データを取得する関数
def get_price(min):

	price = []
	params = {"fsym":"BTC","tsym":"JPY","e":"bitflyerfx","limit":2000 }
	
	response = requests.get("https://min-api.cryptocompare.com/data/histohour",params, timeout = 10)
	data = response.json()
	
	if data["Response"] == "Success":
		for i in data["Data"]:
			price.append({ "close_time" : i["time"],
				"close_time_dt" : datetime.fromtimestamp(i["time"]).strftime('%Y/%m/%d %H:%M'),
				"open_price" : i["open"],
				"high_price" : i["high"],
				"low_price" : i["low"],
				"close_price": i["close"] })
		return price
		
	else:
		print("データが存在しません")
		return None

データの時系列は古い順なので、例えば、上記の関数の返り値から以下のようにアクセスすれば、直近の価格データを取得できます。

price[-1][“high_price”] … 現在の足の高値
price[-2][“close_price”] … 前回の足の終値

APIの形式

CryptoCompareのAPIのURL形式は、以下のようになっています。

https://min-api.cryptocompare.com/data/histo時間軸?fsym=通貨名&tsym=通貨名&e=取引所名&limit=取得件数

他の時間軸のローソク足を取得したい場合は、URLを以下のように変更します。

・/data/histominute … 1分足
・/data/histohour … 1時間足
・/data/histoday … 日足

例えば、以下のURLはそのままアクセスできます。
確認してみてください。

https://min-api.cryptocompare.com/data/histohour?fsym=BTC&tsym=JPY&e=bitflyerfx

期間の指定

期間の指定は、末尾の日時のみ「?toTS=XXXXXX(UNIXタイムスタンプ)」の形式で指定できます。

ただしどのような指定方法を使っても、直近の2000件以上を遡って取得することはできないようです。また「&limit=2000」と併用した場合は期間指定は無視されて合計2000件の取得となります。

1時間足の注意点

直近の足へのリアルタイム価格の反映は10分に1回しか行われていないようです。これはCryptowatchのAPIとの大きな違いです。

▽ 直近の足だけを20秒に1回取得してみた結果

そのため、リアルタイム価格を使って損切り等の何らかの判定をおこないたい場合は、同時にCryptoCompareの1分足のデータを取得するか、BitflyerのパブリックAPIを利用してリアルタイム価格を取得する必要があります。

「CryptoCompareのAPIを使ってBitflyerのBTCFX価格を取得しよう!」への2件のフィードバック

  1. いつも大変勉強にさせていただいています。
    よろしければmatplotlib.financeとcryptowatchのAPIを利用したロウソク足の描画についての記事も見てみたいです。

    1. コメントありがとうございます!^^
      リクエストありがとうございます、検討しますね!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です