自動車エンジニアのアップデート

自動車エンジニアのアップデート

自動車部品メーカー勤務ソフトエンジニアの情報発信ブログ

~ 車載 ソフト エンジニア の 情報発信 ブログ ~

【Python学習】ビットコイン自動売買プログラム#1 ~ requestsでAPIにアクセス~

f:id:Vefortec:20220209181440p:plain

こんにちは。

 

前回からビットコイン自動売買プログラムの作成を決意したレオハルです。

 

~前回記事~

 

 

今回は、APIを使ってビットコインの最新情報を取得したいと思います。

APIへのアクセスには、「requests」のライブラリを利用します。 

 

 

 

APIについて

まずAPIとは、なんでしょうか?

APIApplication 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が使えるところは多いようです!