これまでbitFlyerとcoincheckのAPIから注文する方法をご紹介しました。
今回はZaifのAPIから注文する
サンプルプログラムをご紹介します。
ただ、Zaifはビットコインの流出事件の影響で
運営会社のテックビューロが解散することになりました。
仮想通貨取引所の事業はフィスコに
譲渡されることになるそうですが、
未だ状況は不透明ですのでご注意ください。
私が実際に使用しているソースコードになります。
Zaif APIのドキュメントは以下をご参照ください。
Zaif APIサンプルプログラム
実装したのは、Python 3.6です。
Zaif APIソースコード
ではさっそくサンプルプログラムです。
import json import urllib import requests import time import hmac import hashlib import util class zaifApi: def __init__(self): self.api_key = 'APIキー' self.api_secret = 'APIシークレットキー' self.api_get_endpoint = 'https://api.zaif.jp/api/1/' self.api_endpoint = 'https://api.zaif.jp/tapi' def get_api_call(self,method,path=''): url = self.api_get_endpoint + method if (path != ''): url = url + '/' + path request_data = requests.get(url) return request_data def post_api_call(self,method,req={}): #body = json.dumps(body) req['method'] = method req['nonce'] = int(time.time()) post_data = urllib.parse.urlencode(req).encode() sign = hmac.new(str.encode(self.api_secret), post_data, hashlib.sha512).hexdigest() #sign = hmac.new(bytes(self.api_secret.encode('ascii')), bytes(text.encode('ascii')), hashlib.sha512).hexdigest() request_data=requests.post( self.api_endpoint ,data= post_data ,headers = { 'key': self.api_key, 'sign': sign, }) return request_data def get_board(self): zaif = zaifApi() result = zaif.get_api_call('depth','btc_jpy').json() bids = util.util.list_to_pd(result['bids'],'zf',False) asks = util.util.list_to_pd(result['asks'],'zf',True) return bids,asks def get_balance(self): zaif = zaifApi() result = zaif.post_api_call('get_info').json() data = {} funds = result['return']['funds'] deposit = result['return']['deposit'] data['jpy_amount'] = round(float(funds['jpy']), 2) data['jpy_available'] = round(float(deposit['jpy']), 2) data['btc_amount'] = round(float(funds['btc']), 8) data['btc_available'] = round(float(deposit['btc']), 8) return data def order(self,data): zaif = zaifApi() result = zaif.post_api_call('trade',data).json() return result
使用方法
以下のソースをzaifApi.pyというファイル名で保存します。
APIを呼び出すプログラム例
呼び出すプログラム側で以下のように実装します。
import zaifApi api = zaifApi.zaifApi() bids,asks = api.get_board()
これは、板情報を取得する場合です。