2018/02/24
2020/04/14
【Python】Zaifで仮想通貨の自動売買をする方法
仮想通貨取引所のZaifはビットコインやその他の仮想通貨をプログラムで売買するためのAPIを提供しています。このAPIを使えば、非常に簡単に自動売買システムを実現できてしまうのです。当記事ではこのAPIの使い方を、Python3のサンプルプログラムを交えながら解説していきます。APIの詳細な情報はこちら→ZaifAPI ドキュメント
ZaifのAPIをコールするにあたって、今回はこちらのページの方(ZaifのAPIを簡単にコール出来るようにしました→https://github.com/techbureau/zaifapi)が作成してくれたライブラリを利用しています。非常に便利なので使わせていただきました。(現時点では非公式ライブラリらしいです。)
ビットコインを売買するプログラム
100万円で買って105万円でリミット売り
以下のPythonプログラムで0.0001ビットコインを価格100万円で買うという注文ができます。また、買えたと同時に105万で売り注文を出します。keyとsecretにはzaifで発行したご自身のキーをご入力ください。
from zaifapi.impl import ZaifTradeApi #取引情報の定義 key = "YourAPIKey" secret = "YourSecretKey" zaif = ZaifTradeApi(key, secret) zaif.trade(currency_pair="btc_jpy", action="bid", price=1000000, amount=0.0001,limit=1050000)
サーバーへの負荷などによって、一時的に注文が通らない場合もあります。その場合は下記のようなエラーが発生します。この場合はしばらく待機してから再度注文するようにしましょう。
zaifapi.api_error.ZaifApiError: trade temporarily unavailable.
105万円で売って、100万円でリミット買い
買い注文のプログラムのaction=”bid”をaction=”ask”に変更することで売り注文が指せます。
from zaifapi.impl import ZaifTradeApi #取引情報の定義 key = "YourAPIKey" secret = "YourSecretKey" zaif = ZaifTradeApi(key, secret) zaif.trade(currency_pair="btc_jpy", action="ask", price=1050000, amount=0.0001,limit=1000000)
最終取引価格を取得するプログラム
ZaifのAPIの機能としては、トレードの実行だけではなく、板情報や最終取引価格の取得もできます。例として最終取引価格を取得するプログラムを以下に掲載いたします。こちらは公開APIなので、APIキーや特別なライブラリなどは必要ありません。
import requests import json #ビットコインの日本円価格を取得 url = "https://api.zaif.jp/api/1/last_price/btc_jpy" response = requests.get(url) print(json.loads(response.text)) print(json.loads(response.text)['last_price']) #価格のみを表示
実行画面の方は以下のようになります。
{'last_price': 1118100.0} 1118100.0
まとめ
いかがでしたでしょうか。zaifのトレード画面で出来ることのほとんどが、Pythonプログラムでもできてしまいます。あとは、これらとwhile文やif文組み合わせていけば、条件が揃った時に自動的に売買をしてくれる自動売買システムが完成します。プログラムを途中で止めたく無い場合は、try,except文を使いましょう。仕事などで忙しくて手が離せないけど、取引はしたい、というようなタイミングに使えるかもしれませんね。
Recommended