スポンサードリンク
QUOINEのAPIを使ってビットコインの板情報、資産情報を取得
bitFlyer、coincheck、Zaifに引き続いて
QUOINEのAPIを使ってビットコインの
板情報、資産情報を取得、
また新規注文を出す処理を実装してみました。
前回の記事でQUOINEのAPIへの接続が上手くいかないと書きましたが、
本日再度試したところ何事もなく接続できました。
特にソースコードを書き換えることなく
「どういうエラーが出てたっけ?」
ということを確認するために
動かしてみたら接続できてしまったという経緯です。
ということでソースコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# -*- coding: utf-8 -*- """ Created on Thu Mar 9 12:00:27 2017 @author: ichizo """ import json import requests import time import jwt import util class quoineApi: def __init__(self): self.token_id = 'トークンID' self.api_secret = 'APIシークレット' self.api_endpoint = 'https://api.quoine.com' def get_api_call(self,path): timestamp = str(int(time.time())) auth_payload = { 'path': path, 'nonce': timestamp, 'token_id': self.token_id } sign = jwt.encode(auth_payload, self.api_secret, algorithm='HS256') request_data=requests.get( self.api_endpoint+path ,headers = { 'X-Quoine-API-Version': '2', 'X-Quoine-Auth': sign, 'Content-Type': 'application/json' }) return request_data def post_api_call(self,path,body): body = json.dumps(body) timestamp = str(int(time.time())) auth_payload = { 'path': path, 'nonce': timestamp, 'token_id': self.token_id } sign = jwt.encode(auth_payload, self.api_secret, algorithm='HS256') request_data=requests.post( self.api_endpoint+path ,data = body ,headers = { 'X-Quoine-API-Version': '2', 'X-Quoine-Auth': sign, 'Content-Type': 'application/json' }) return request_data def get_board(self): api = quoineApi() result = api.get_api_call('/products/5/price_levels').json() bids = util.util.list_to_pd(result['buy_price_levels'],'qo',False) asks = util.util.list_to_pd(result['sell_price_levels'],'qo',True) return bids,asks def get_balance(self): api = quoineApi() result = api.get_api_call('/accounts/balance').json() data = {} for row in result: if (row['currency'] == 'JPY'): data['jpy_amount'] = float(row['balance']) data['jpy_available'] = float(row['balance']) elif (row['currency'] == 'BTC'): data['btc_amount'] = float(row['balance']) data['btc_available'] = float(row['balance']) return data def order(self,data): api = quoineApi() result = api.post_api_call('/orders/',data).json() return result |
スポンサードリンク