暗号資産APIを使って価格取得してみる

はじめに

 こんにちは。前回はOANDA APIを利用して価格を取得しました。

 今回は暗号資産APIを使って価格取得をしてみます。Pythonまでのインストールがされていることが前提となります。Pythonのインストールについては以下をご覧ください。

準備

 まず準備として、暗号資産の口座の開設とAPIへのアクセスに必要なAPIキーとAPIシークレットを取得します。

暗号資産の口座開設

 APIを公開している暗号資産取引所に口座を開設します。
 以下、「CCXT」という暗号資産取引ライブラリ(後ほど説明します)を使うことを前提に進めていきますので、CCXTに対応した取引所の口座を開設してください。対応した取引所のリストは以下のリンクをご覧ください。

 金融庁に認定された国内暗号資産取引所としては、bitFlyer 、 Coincheck 、 bitbank 、 Liquidなどで使えます。海外の取引所だと、日本でも有名なところではBinance、Bybit、Huobi、Bittrexなどで使えるようです。
 以下、bitFlyerを前提に解説します。

bitFlyerのAPI keyとAPI secretの取得

 bitFlyerのAPIでは認証が不要なPublic APIと認証が必要なPrivate APIがありますが、今後売買を行うという前提でPrivate APIを使います。認証のためのAPI keyとAPI secretを取得しましょう。
 bitFlyer Lightningのページからログインして取引画面が出たら、左側の横3本線のアイコンをクリックしてメニューを表示し、「API」を選択してください。

 APIの画面に遷移した後、一番下の「新しいAPIキーを追加」ボタンをクリックすると設定画面が出ます。
 「ラベル」の入力は不要です。
 「APIキーの権限」では「資産」の全部、「トレード」の全部にチェックを入れ、「入出金」については一旦チェックを外しておきましょう。「入出金」について外す理由は万が一、キーが外部に流出した際に出金などされることを防ぐためです。設定した後でも編集は可能なので、慣れてきたら必要に応じて追加削除されるとよいでしょう。
 設定後、画面にAPI KeyとAPI Secretが表示されます。

APIを利用して最新の為替レートを取得する

 それでは、いよいよAPIを利用して最新の為替レートを取得してみます。

仮想環境の設定

 condaによる仮想環境を設定します。AWS Cloud9のターミナルで次のように入力してください。

$ conda create -n cc python=3
$ . activate cc
(cc) ユーザー名:~/environment $

 1行目のコマンドで仮想環境を設定しています。-nの後が仮想環境の名前で、任意の名前で構いません。ここでは「cc」(Cryptocurrency:暗号資産の略)としています。
 2行目のコマンドで仮想環境「cc」に入ります。
 3行目のように、プロンプトの先頭に丸カッコに囲われた仮想環境名が表示されていれば、仮想環境に入ったことを表しています。

CCXTのインストール

 先ほど触れたとおり、「CCXT」というのは暗号資産取引ライブラリです。数多くある取引所のAPIを取りまとめて代表的な機能については同じ関数で操作できますので、複数の取引所を使う場合は非常に便利です。デメリットとしては、全ての関数が共通しているわけではないので、取引所固有の機能を使う場合は少し面倒ということです。以下でインストールしてください。

$ pip install ccxt

最新為替データを取得するプログラムのファイルを作成

 AWS Cloud9で最新為替データを取得するプログラムを記述したファイルを作成します。左上メニューのFile-New Fileをクリックすると、ターミナルの上のペインに「Untitle1」というタブが作られます。

 次に以下のコードをコピペしてください。4行目、6行目のAPI keyとAPI secretは先ほど取得した値に書き換えてください。実はティッカー情報の取得は認証が不要なPublic APIなので、API keyとAPI secretは不要です。セキュリティに不安な方はまずはAPI keyとAPI secretを設定している行(赤色表示)は無くても良いです。

import ccxt

# API key
api_key = "---"
# API secret
api_secret = "---"


def fetch_ticker(api, ins):
    """
    最新レートの取得
    """
    ticker = api.fetch_ticker(ins)
    return ticker


if __name__ == "__main__":

    import pprint

    ins = "BTC/JPY"

    api = ccxt.bitflyer()
    api.apiKey = api_key
    api.secret = api_secret
    res = fetch_ticker(api, ins)

    pprint.pprint(res)

 プログラムのコピペと書き換えが終わったら、ファイルを保存します。左上のメニューからFile-Save asをクリックすると、以下の画面が出ますので、ファイル名を適当に(ここでは[「ccxtAPItest.py」)入力します。念のため、保存先のディレクトリが作業用(ここでは「environment」)になっているかを確認して「Save」をクリックします。

 保存先のディレクトリがenvironmentではない場合には下記を実行してください。作業ディレクトリであるenvironmentに移るコマンドです。

$ cd ~/environment

実行

 ファイルを保存出来たら、実行します。ターミナルから、以下のコマンドを入力します。

$ python ccxtAPItest.py

 または、「ccxtAPItest.py」のタブを選択した状態で「Run」ボタンをクリックしても実行できます。

 実行結果は以下のようなものが出ると思います。ビットコインの最新のレートが取得できました。データの詳細の内容についてはまた別の機会にご説明します。

{'ask': 4684555.0,
 'askVolume': None,
 'average': None,
 'baseVolume': 1714.62647986,
 'bid': 4678519.0,
 'bidVolume': None,
 'change': None,
 'close': 4682280.0,
 'datetime': '2021-09-26T04:58:39.923Z',
 'high': None,
 'info': {'best_ask': '4684555.0',
          'best_ask_size': '0.69598382',
          'best_bid': '4678519.0',
          'best_bid_size': '0.04',
          'ltp': '4682280.0',
          'market_ask_size': '0.0',
          'market_bid_size': '0.0',
          'product_code': 'BTC_JPY',
          'state': 'RUNNING',
          'tick_id': '11211938',
          'timestamp': '2021-09-26T04:58:39.923',
          'total_ask_depth': '699.4816111',
          'total_bid_depth': '689.31457465',
          'volume': '8413.0866124',
          'volume_by_product': '1714.62647986'},
 'last': 4682280.0,
 'low': None,
 'open': None,
 'percentage': None,
 'previousClose': None,
 'quoteVolume': None,
 'symbol': 'BTC/JPY',
 'timestamp': 1632632319923,
 'vwap': None}

おわりに

 CCXTというライブラリでAPIを使って、暗号資産の最新レートを取得するまでを説明しました。

コメント

タイトルとURLをコピーしました