プログラムの質問を結構受けてまして、その中でBTCの価格は、どこで取得するのか?というご質問を多く頂きます。pythonでビットコインの価格を取得する方法と、そのデータの扱い方について解説してみます。
価格取得はCryptocompareのAPIを使う
仕様
cryptocompareの仕様は公式サイトに書いてあるんだけど、意外と情報が少ない。通貨ペアは何が使えるのかとか、書いていないんですよ。
ソースコード
以下は、BTCUSDTの1時間足を2,000件取得して、JSON形式に変換するソースコードです。
パラメーターで、対象通貨(fsym)、基準通貨(tsym)、件数(limit)を渡します。日本円でみたい場合は、tsymの箇所を”JPY”にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
params = { "fsym":"BTC", "tsym":"USDT", "limit":2000 } response = requests.get("https://min-api.cryptocompare.com/data/histohour" ,params, timeout = 10) #JSONに変換 data = response.json() #表示 display(data) |
histohourの箇所を、1分足の場合はhistominute、日足の場合はhistoday
結果
Responseを確認して、Successなら中身を見るというロジックで書くとよいです。たまにエラーが返ってくるので、この処理は必須。
確認出来た通貨
fsymに調べたい通貨名を入れるわけですが、cryptocompareの公式サイトには一覧が書いていないので、自分で手探りで調べるしかないです。僕の方で調べてわかったのは以下の感じ
fsym(仮想通貨)
- BTC
- BCH
- ETH
- BNB
- XRP
- LTC
仮想通貨は多分、新規通貨以外は全部いけそう。
fsym(FIAT)
- USD
- GBP
- EUR
- AUD
- NZD
- CAD
- CHF
- NOK
- SEK
クローネとかも取得出来たので、たぶん大体取得出来るかと思います。
課題
日経やダウ平均、ゴールドも取得出来ると思うんですが、いまいち分からない。ゴールドはXAUだと思ったんですが、値段が全然違う。
もし知ってる方がいらしたら、コメント欄で教えてください。
ご質問はコメント欄からお願いします