カレーちゃんブログ

Kaggleや競技プログラミングなどのこと

coinexchageのapiを叩いて、XPのレートを表示してみる。

せっかく仮想通貨とPythonが軸のブログをやっているので、coinexchangeのapiを叩いてみたという記事を書いてみたいと思います。

今回やるのは、シンプルにターミナルからPythonのスクリプトを呼び出して、XP/BTCやXP/DOGEを表示するだけ。

Currently we are only providing a Public API which does not use authentication. We will be releasing API V2 with full trade and coin control functionality at a later stage.

とcoinchangeのapiのページにあるように、現時点では、トレードなどができる機能は提供していないようです。

apiの説明

coinchangeのapiについては、どのように公式にどのようにアクセスすれば、どのような値を取得できるか書いています。

'https://www.coinexchange.io/api/v1/getmarkets'の後ろに、以下の表の「URLに付加するURL」をつけてアクセスしてもらえば(クエリを投げると)、「内容」欄に書いてある内容が帰ってきます。

URLに付加するURL 内容
getmarkets 取り扱っているコインのIDなどを返す
getmarketsummaries 全てのコインのサマリーを返す
getmarketsummary?market_id=1 getmarketsummariesを一つのコインに特定
getorderbook?market_id=1 the top 50 buy and sell order for the market.
getcurrencies 全てのコインのオンライン、オフライン等を返す
getcurrency?currency_id=1 getcurrenciesを1つのコインに特定

(注)公式に記載がある、「the top 50 buy and sell order for the market.」とは何なんでしょう?

APIにアクセスしてみる。

ブラウザからhttps://www.coinexchange.io/api/v1/getmarketsummary?market_id=137にアクセスしてみましょう。以下のようにXP/DOGEの価格等が表示されるのがわかります。なおmarket_idを135にするとXP/BTCの価格が取得できます。 f:id:currypurin:20180221234822p:plain

Pythonで取得する。

今回は、詳しくは解説しませんが、以下のように、XP/DOGEの現在の価格、今日の高値、今日の安値、XP/BTCの現在の価格を表示するコードを書いてみました。

def xp():
    import requests
    from datetime import datetime
    print(datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
    response = requests.get('https://www.coinexchange.io/api/v1/getmarketsummaries').json()
    print(response['result'][84]['LastPrice'], '  (現在の価格)')
    print(response['result'][84]['HighPrice'], '  (今日の高値)')
    print(response['result'][84]['LowPrice'], '  (今日の安値)')
    print(response['result'][82]['LastPrice'], '  (BTC)')


if __name__ == '__main__':
    xp()

実行すると、以下のように、現在の価格などが表示されました。 f:id:currypurin:20180222000242p:plain

まとめ

とりあえずレートが表示できたので、次のstepに進めそうです。(slackのbotを作るとか、twitterのbotを作るとか)

機械学習で、値動きを分析するとか今後やりたいし、この続きはまた時間があるときに書きます。 '