GMOコインは仮想通貨の価格や売買に関して、APIを提供しています。
今回はそちらを利用して、仮想通貨の金額を取得し、jsonファイルに記録しました。
GMOコイン
GMOコインは仮想通貨の売買を行うことができる、販売所、取引所、FX取引所を運営しています。
同時に、利用者向けのサポート機能として、仮想通貨の売買や現在の仮想通貨の価格を取得することができます。
利用できる言語としては、javascript(Node.js), python, go, ruby ,php kotlin C#, Rust Haskell, Swift があり、データ分析する際に困ること(あとはR言語くらい)は無いと思います。今回は、pythonについて記載していきたいと思います。
https://api.coin.z.com/docs/#end-point
利用上の注意
APIの利用には、アクセスキーが必要なのですがこちらは、他者に漏らさないように管理してください。間違ってもブログやgithubなどに開示しないようにしましょう。
また、APIの使用回数には上限があります。どのAPIについても言えることですが、特定のユーザーに提供するサービス負荷が高まることによって、他のユーザーが利用できなくることを避けるためなので、マナーを守ることをおすすめします。 悪質なアクセス負荷はセキュリティ攻撃とみなされ訴訟にも発展しかねません。 間違っても、継続的に利用したいと考えて、待ち時間関数を利用せずにwhileループなどをしないようにしましょう。
価格の取得URL
APIは、基本的にサービスを提供するドメインと要求内容を示すサブドメインから成ります。今回は、現在価格情報が欲しいので下記の通りになります。
価格情報はパブリックAPIなので、アクセスキーは必要無く、口座を開設していなくても試せるはずです。
endPoint = 'https://api.coin.z.com/public' path = '/v1/ticker?symbol=BTC'
レスポンスのパース
URLに対して、レスポンスを送ると、json形式で価格情報を取得することができます。jsonモジュールを用いることで、一行でパースすることができます。
import requests response = requests.get(endPoint + path) response_json=json.dumps(response.json(), indent=2)
jsonファイルとしての書き込み
あとは、ファイルに書き込むだけです。今回は、1リクエストを1ファイルに書き込みます。 好みによって、DataFrameなどで書き込んでも良いと思います。 pythonのファイル書き込みの際は、ファイルを閉じるのを忘れないようにするためにwithを使うのがおすすめです。
with open('test.json','w') as f: json.dump(response_json,f)
結果例
2年間くらい定期的に取り続けると、
下図のような図を作成することができます。
10分ごとに取り続けた結果です。
描画には、plotlyを利用しております。
簡単な、時系列機械学習に関しても記事書いてみようかな。