暗号通貨取引所のAPIライブラリ(Python)あれこれ
ブログ、ご無沙汰してました。
ツイッターbotの機能拡充をさぼり、何をしていたかと言うと、機械学習プログラミングの本を読んだり、暗号通貨で遊んだり、飲んだり、飲んだり、飲んだりしていたわけですが...。
ツイッターbotに関しては技術的発展が出来そうなので、数か月以内には機能拡充してブログ書きたいと思っていますがどうでしょう。機械学習プログラミングに関しても記事まとめたいなと思っていますが、これもどうでしょう。予定は未定。
というわけで、今回は最近遊んでいる暗号通貨について、プログラミング発注が(自動売買とまでは言えないレベルで)出来たんで、実際に使用した取引所のAPIライブラリのご紹介をしたいと思います。
私の見ている国内取引所3社(Zaif、bitFlyer、Coincheck)、海外取引所2社(Poloniex、Bittrex)はマーケット情報やアカウント情報取得、および発注等のためのAPIを提供してくれています。(ところで、coincheckなんですか?Coincheckなんですか?)
APIって何ぞやって人は例えばこのリンク
https://api.bitflyer.jp/v1/board
を踏んでもらうと、bitFlyerのBitcoin/円のbid-askいわゆる板の情報が(見にくいですが)見れると思います。たぶん。読み込みにちょっと時間かかるかもね。
こんな感じで取引所が自社のマーケット情報を提供し外部から容易に取得できるようにしてくれており、例えばPythonを使って情報を取得し用途に応じて加工出来たりします。
でも、加工前の情報って大体みんな同じように取得してきてるわけで。そこで親切な人がみんなの無駄なコーディング時間を省くため、かどうかは知りませんが、ライブラリ化して公開してくれてたりします。未熟なプログラマーである私なんかは有難くそれを使わせてもらってます。というわけで、私が利用している各取引所のPythonライブラリとついでにAPIドキュメントをご紹介。(複数人が別々にライブラリ化してる場合もありますが、ここでは私が実際に使用したものを。)
GitHub - techbureau/zaifapi: zaifのAPIを簡単にコール出来るようにしました。
ZaifAPI ドキュメント — Zaif api document v1.1.1 ドキュメント
まだ、API自体が現物にしか対応してないんですよね。信用取引、先物、AirFXには対応してません。素人考えでは簡単に対応出来そうなんですが違うんですかね。せめてポジションを把握する部分とかね...。中の人頑張って!
-
bitFlyer
GitHub - yagays/pybitflyer: Python wrapper for bitFlyer's REST API.
Python2.7ではエラー出ました。たぶんurllibの所で。(間違ってたらごめんなさい。指摘はコメントまで。)その点を除けば各種揃ったAPI及びライブラリなんじゃないかと。
-
Coincheck
GitHub - kmn/coincheck: Coincheck API Library for Python
取引所APIドキュメント | Coincheck(コインチェック)
これを作った人がどうやら現物にしか興味がないらしく、ライブラリも現物部分のみ。(間違ってたらごめんなさい。指摘はコメントまで。)APIはレバレッジ取引にも対応しているので、見様見真似で追加したらうまく動いて感動しました!私のはGitHubとか恐れ多いので、誰かAPIをフル活用したライブラリを作ってくれませんかね(チラッ
bitFlyerの件がありPython3系でしか試してません。
以下は海外取引所のものですが、私自身まだとりあえず実行できた事を確認したばかりです。使いこなしてから記事書こうかとも思いましたが、その頃には書く気力がなくなっていることを懸念して、今の時点で執筆することにしました。使えねえなこいつってなった場合には追記で対応しようと思います。あしからず。
-
Poloniex
GitHub - s4w3d0ff/python-poloniex: Poloniex API wrapper for Python 2.7 & 3
Poloniex - Bitcoin/Digital Asset Exchange - API
これから試していくぞっと。
-
Bittrex
GitHub - ericsomdahl/python-bittrex: Python bindings for bittrex
Bittrex.com - Developer's Guide - Api
普通に使おうとするとエラー出ませんかね?bittrexフォルダ内の__init__.pyを削除してbittrex.pyを__init__.pyに改名したら動くようになった気が。(間違ってたらごめんなさい。指摘はコメントまで。)
これに関してはGitHubの世界を体感したというか。たぶんndriって人が最初ライブラリ作ったけど https://github.com/ndri/python-bittrex Python3系に対応してくれないから、別の人が追加修正したって事ですよね。素晴らしい。(Coincheckの方も...)
これらを使って各取引所のbid-ask情報を取得したり、口座の残高一覧を吐き出させたり、さらには想定以上の価格差が開いていたら市場間裁定を行う発注プログラムを作ってみました。市場間裁定プログラムは現状は手動実行ですが、サーバーで実行出来たら濡れ手に粟だなとか妄想してますが、注文が一部約定とか空振ったりした時の対応が面倒だったり適切な価格差とはみたいな所で保留中です。
そんじゃーね! それじゃまた。
最後にCoincheckのアフィリエイト置いときますね!ね!