【Python学習】ビットコイン自動売買プログラム#1 ~ requestsでAPIにアクセス~
こんにちは。
前回からビットコイン自動売買プログラムの作成を決意したレオハルです。
~前回記事~
今回は、「API」を使ってビットコインの最新情報を取得したいと思います。
APIへのアクセスには、「requests」のライブラリを利用します。
APIについて
まずAPIとは、なんでしょうか?
API=Application Programming Interface(アプリケーション プログラミング インターフェース)
です。
APIという用語は、車載ソフトの世界でも登場しますね。
アプリケーション"A"とアプリケーション"B"をつなぐための架け橋のようなものです。
「別のアプリケーションのある機能を使いたい!」というときに、簡単に、便利に使えるようにしてくれるものになります。
今回の場合で言うと、
「自作Pythonプログラム」で「ビットコイン最新情報取得機能」を使いたいので、APIを利用するということになります。
RequestsでAPIへアクセス
今回は、松田翔太さんのCMでおなじみのcoincheck(コインチェック)を利用したいと思います。
コインチェックのAPIについては、下記URLに公式ドキュメントが記載されています。
https://coincheck.com/ja/documents/exchange/api
大きく分類すると、2つの種類の分かれるようです。
「Pablic API」
取引所の注文状況や公開されている取引の履歴、板情報を参照する
「Private API」
取引所での新規注文やそのキャンセル、自分の残高などを確認する
まずは、PublicAPIの一つであるティッカーと呼ばれるAPIにアクセスして、各種最新情報を取得したいと思います。
API利用方法
今回のAPI利用方法ですが、「簡単に言うとURLにアクセスして情報を取得する」のと同じことになります。
コインチェックのURL( https://coincheck.com/ )の後ろに目的のURLを指定することで利用できます。
ティッカーの情報の場合、後ろに /api/ticker を付ければいいようです。
PythonによるURLへのアクセス
Pythonで先ほどのURLへアクセスし情報を取得するためには、
requests を利用します。
requestsで取得したtiker情報を表示するプログラムを作成しました。
import requests import pprint as pp url = 'https://coincheck.com' def ticker(): endpoint = url + '/api/ticker' r=requests.get(endpoint) pp.pprint(r.json()) if __name__ == '__main__': ticker()
pprintを利用することで、見やすく表示しています。
データの中身は、JSON形式と呼ばれる形式で格納されているので、これをpythonの辞書型に変換するためjson()を利用しています。
実行した結果が以下のように出力されました。
{'ask': 5032000.0, 'bid': 5031214.0, 'high': 5311666.0, 'last': 5033654.0, 'low': 4956262.0, 'timestamp': 1644563352, 'volume': 3282.96584376}
それぞれのデータの説明は次のようになります。
- last 最後の取引の価格
- bid 現在の買い注文の最高価格
- ask 現在の売り注文の最安価格
- high 24時間での最高取引価格
- low 24時間での最安取引価格
- volume 24時間での取引量
- timestamp 現在の時刻
これでビットコインの最新情報が取得できるようになりました。
引き続き自動売買に向けて実装を進めていきたいと思います。
coincheck以外の取引所でもAPIが使えるところは多いようです!