cryptocompare(クリプトコンペア)の API を使ってbotを作っていますが、ビットコインの価格をどうやって取得しているのかという質問が届いたので、C使いやすいように関数化してみました。ご参考ください。
ソース
引数にチェックする通貨シンボル、基軸のシンボル、時間軸を文字列で渡すと、JSON形のリストで、OHLCVを返す関数です。
インポートするライブラリ
1 |
import requests |
関数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# # CryptoCompareの価格データを取得する関数 # # 引数 # my_fsym = チェックする通貨シンボル(BTC) # my_tsym = 基軸シンボル(JPY, USD) # my_time = 時間軸(histominute,histohour,histoday) # def get_price_cryptocompare(my_fsym,my_tsym,my_time): price = [] params = {"fsym":my_fsym,"tsym":my_tsym,"limit":2000 } #リクエスト response = requests.get("https://min-api.cryptocompare.com/data/" + my_time,params, timeout = 10) #JSONに変換 data = response.json() #レスポンス成功? if data["Response"] == "Success": for ii in data["Data"]: my_week = int(datetime.datetime.fromtimestamp(ii["time"]).weekday()) my_date = datetime.datetime.fromtimestamp(ii['time']) #リストに追加 price.append({"date" : my_date, "open_price" : ii["open"], "high_price" : ii["high"], "low_price" : ii["low"], "close_price": ii["close"], "volume":ii["volumefrom"]}) return price else: print("エラー") return None |
この API を使うにあたっては特にcryptocompareでの登録は必要なくてそのまま呼び出せば OK です。ただし使用制限があるので、短時間に高頻度の呼び出しは禁物です。
呼び出し例
1 2 |
#cryptocompareからOHLCV取得 data_ohlcv = get_price_cryptocompare("BTC","JPY","histoday") |
cryptocompareについて
APIについて
cryptocompareで取得できる時間軸
cryptocompareで取得可能な時間軸は3つです。1分足のOHLCVデータを取得可能な場所は、ほとんどないので、かなり貴重です。
- histominute:1分足
- histohour:1時間足
- histoday:日足
5分足を取得したい場合
5分足のデータは直接取得出来ません。使いたい場合は、一旦1分足で取得した後に、リストを5本ずつまとめ直す必要があります。まあまあ面倒。
BTC以外の通貨を取得したい場合
最初の引数のmy_fsymを以下の様に変更すればOKです。
- ドル = “USD”
- ポンド = “GBP”
- ユーロ = “EUR”
調べてもよく分からなかったのですが、日経や、その他、株価も、シンボル名さえ分かれば取得できると思います。
ご質問はコメント欄からお願いします