【CE】簡単、CoinExchangeのAPIを使った情報取得方法を公開!(Python)

CoinExchange Image

今回はCoinExchangeのAPIとPythonを使って価格情報を取得するプログラムをご紹介いたします!

CoinExchangeのAPI
URL「https://www.coinexchange.io/api/v1/getmarkets」の様な形でブラウザから
投げて価格を取得する方法が紹介されておりますが
より利用しやすいようにPythonを使って取得することにしました。



コインエクスチェンジで公開されているAPI

CoinExchangeにて公開されているAPIはこちらから見ることが出来ます。
紹介文にはこう書かれております。

バージョンV1

CoinExchange.io APIへようこそ! APIを使用してCoinExchange.io APIエンドポイントにアクセスすることができます。このAPIエンドポイントは、当社のデータベースからマーケット情報を取得するために使用できます。

現在、認証を使用しないパブリックAPIのみを提供しています。

私たちは、フルトレードとコインコントロール機能を備えたAPI V2を後でリリースする予定です。

APIコールの応答の例は、右側の画面に表示されております。

この内容から、CEでは現在、価格の取得や取引量などのデータ取得だけで
現在はBinanceのようにAPIを使ってトレードするまでの機能は提供していないようです。

しかし、価格情報や取引量を取得することは可能なので
APIを利用することによって、取引を有利にすることは出来そうです!

というわけでBinanceの時と同じくPythonという言語を用いて
情報を取得してみましょう!!

Windowsを使っている方で、まだPythonの環境を用意されていない方は
こちらを参考にしてみてください。

また、BinanceトレードのAPIを使って実際のトレードまでを
ブログに書きましたのでご覧になりたい方は
・準備編はこちら
・実践編はこちら
からどうぞ。

Pythonを使ってデータを取得

今回はCEから1つの銘柄の
・「ペア名」
・「最終取引価格」
・「24h中の最高価格」
・「24h中の最低価格」
・「24h中の取引量」
を取得するプログラムを作成します。
※他の情報を取ることも可能ですが、今回は主に使用されると思われる
 5項目に絞りました。

コードはGithubのこちらの「src/getMarket.py」に公開しておりますので、
ご自由にご利用ください。

最初にも書きましたが、CEのAPIはウェブリクエストの形で
「https://www.coinexchange.io/api/v1/getmarkets」というURLを
ブラウザから投げて情報を取得することが可能です。

ただし、プログラムから呼んであげると
データを保存したりする事が可能になり
汎用性が高くなりますのでPythonから取得します。

まずはPythonにてウェブリクエストを投げられるように、
・「urllib.request」
をimportします。
また、CEから受け取るデータがJson形式なので
・「json」
もimportします。

メモ帳等のテキストエディタを使って下のようにコードを記述し
ファイルを保存します。
今回は「getMarket.py」というファイル名で保存することにしました。

import urllib.request
import json

次に、コードからURLをリクエストして帰ってきたデータを変数に
格納します。

import urllib.request
import json

# マーケットデータ
market = json.loads(urllib.request.urlopen("https://www.coinexchange.io/api/v1/getmarkets").read())

# マーケット 概要、ID
summary = json.loads(urllib.request.urlopen("https://www.coinexchange.io/api/v1/getmarketsummaries").read())

「urllib.request.urlopen…」ではURLをリクエストしています。
帰ってくるデータがJSON形式なので、
load 関数を使って JSON オブジェクトとして保存します。これで JSON を行うことが出来ます。

次にPrintにて先ほどの5項目を出力するように
記載します。

import urllib.request
import json

# マーケットデータ
market = json.loads(urllib.request.urlopen("https://www.coinexchange.io/api/v1/getmarkets").read())

# マーケット 概要、ID
summary = json.loads(urllib.request.urlopen("https://www.coinexchange.io/api/v1/getmarketsummaries").read())

print(
    "ticker: ", market['result'][0]['MarketAssetCode'], market['result'][0]['BaseCurrencyCode'], 
    "LastPrice: ", summary['result'][0]['LastPrice'], 
    "HighPrice: ", summary['result'][0]['HighPrice'], 
    "LowPrice: ", summary['result'][0]['LowPrice'], 
    "Volume: ", summary['result'][0]['Volume']
    )

このようにJson要素を指定してあげれば取得することが可能になります。

ここまでのコードを保存し、
コマンドプロンプトで保存したディレクトリに移動して
下記のコマンドを打ってみてください。

python getMarket.py

すると情報を取得して表示されるはずです。

おわりに

お疲れ様でした。

CEのAPIは現在、登録なしで使うことが可能ですので、
一度使い方を覚えてしまえば使いやすいことがメリットです。

今回は1つの銘柄のみの取得データを表示するプログラムでしたが、
こちらの「getMarket-2.py」を参照いただければ
全ての銘柄のデータを取得できますので
チャレンジされる方は参考にしていただければと思います。

3 件のコメント

  • 自分の環境で、実際に試してみた所、
    無事に実行ができました。
    ありがとうございます。

    しかし、実際の価格などの数字と実際のサイトの数字が

    全く違います。

    API側の不具合で、IDと、銘柄の価格の紐付が
    うまくいってないのでは?と考えています。

    せっかくなのに、残念です。

    • EnuZettoさん

      情報を共有頂きありがとう御座います。
      実際の数字が違ったのですね。。

      私の調査不足もあり、
      そこまで把握しておりませんでした。

      APIの今後の更新に期待するしかなさそうです。。

      また何かありましたら、私も情報発信させて頂きます!

      • 有益な情報を、本当にありがとうございます。

        自分一人では、全くの不可能からの
        貴重な第一歩となりました。

        これからの、ひたらくさんの良い続報に
        期待してます!

  • コメントを残す

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

    ABOUTこの記事をかいた人

    日々、ひたすららくして生きる為に試行錯誤しながら生きております。

    ブログでは主に仮想通貨やコンピュータの話題が中心と
    なりますがたまにそれた内容を書くこともしばしば。

    温かい目で見守ってくだされば幸いです。