Python システムトレード ビットコイン

QUOINEのAPIを使ってビットコインの板情報、資産情報を取得してみたよ

スポンサードリンク

Contents

QUOINEのAPIを使ってビットコインの板情報、資産情報を取得

bitFlyer、coincheck、Zaifに引き続いて
QUOINEのAPIを使ってビットコインの
板情報、資産情報を取得、
また新規注文を出す処理を実装してみました。

前回の記事でQUOINEのAPIへの接続が上手くいかないと書きましたが、
本日再度試したところ何事もなく接続できました。

特にソースコードを書き換えることなく
「どういうエラーが出てたっけ?」
ということを確認するために
動かしてみたら接続できてしまったという経緯です。

ということでソースコードです。

# -*- 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

-Python, システムトレード, ビットコイン
-, , ,

© 2024 FX・ビットコイン・オプションのシステムトレード開発と取引録 Powered by AFFINGER5