okcoinapi----现货美元版本
来源:互联网 发布:win7自动开关机软件 编辑:程序博客网 时间:2024/06/10 23:25
""" Created on Fri Jan 13 10:36:19 2017 @author: yunjinqi E-mail:yunjinqi@qq.com Differentiate yourself in the world from anyone else. """ #用于访问OKCOIN 现货REST API ############################################################################## import http.client import urllib import json import hashlib import time def buildMySign(params,secretKey): sign = '' for key in sorted(params.keys()): sign += key + '=' + str(params[key]) +'&' data = sign+'secret_key='+secretKey return hashlib.md5(data.encode("utf8")).hexdigest().upper() def httpGet(url,resource,params=''): conn = http.client.HTTPSConnection(url, timeout=10) conn.request("GET",resource + '?' + params) #print(resource + '?' + params) response = conn.getresponse() data = response.read().decode('utf8') #print (data) return json.loads(data) def httpPost(url,resource,params): headers = { "Content-type" : "application/x-www-form-urlencoded" } conn = http.client.HTTPSConnection(url, timeout=10) temp_params = urllib.parse.urlencode(params) #print("https://"+url+resource+"?"+str(temp_params)) conn.request("POST", resource,temp_params,headers) response = conn.getresponse() data = response.read().decode('utf-8') params.clear() conn.close() return data ############################################################################# import urllib class OKCoinSpot: def __init__(self,url,apikey,secretkey): self.__url = url self.__apikey = apikey self.__secretkey = secretkey print(self.__secretkey) #获取OKCOIN现货行情信息 def ticker(self,symbol = ''): TICKER_RESOURCE = "/api/v1/ticker.do" params='' if symbol: params = 'symbol=%(symbol)s' %{'symbol':symbol} return httpGet(self.__url,TICKER_RESOURCE,params) #获取OKCOIN现货市场深度信息 def depth(self,symbol = ''): DEPTH_RESOURCE = "/api/v1/depth.do" params='' if symbol: params = 'symbol=%(symbol)s' %{'symbol':symbol} return httpGet(self.__url,DEPTH_RESOURCE,params) #获取OKCOIN现货历史交易信息 def trades(self,symbol = ''): TRADES_RESOURCE = "/api/v1/trades.do" params='' if symbol: params = 'symbol=%(symbol)s' %{'symbol':symbol} return httpGet(self.__url,TRADES_RESOURCE,params) #获取用户现货账户信息 def userinfo(self): USERINFO_RESOURCE = "/api/v1/userinfo.do" params ={} params['api_key'] = self.__apikey params['sign'] = buildMySign(params,self.__secretkey) return httpPost(self.__url,USERINFO_RESOURCE,params) #现货交易 def trade(self,symbol,tradeType,price='',amount=''): TRADE_RESOURCE = "/api/v1/trade.do" params = { 'api_key':self.__apikey, 'symbol':symbol, 'type':tradeType } if price: params['price'] = price if amount: params['amount'] = amount params['sign'] = buildMySign(params,self.__secretkey) return httpPost(self.__url,TRADE_RESOURCE,params) #现货批量下单 def batchTrade(self,symbol,tradeType,orders_data): BATCH_TRADE_RESOURCE = "/api/v1/batch_trade.do" params = { 'api_key':self.__apikey, 'symbol':symbol, 'type':tradeType, 'orders_data':orders_data } params['sign'] = buildMySign(params,self.__secretkey) return httpPost(self.__url,BATCH_TRADE_RESOURCE,params) #现货取消订单 def cancelOrder(self,symbol,orderId): CANCEL_ORDER_RESOURCE = "/api/v1/cancel_order.do" params = { 'api_key':self.__apikey, 'symbol':symbol, 'order_id':orderId } params['sign'] = buildMySign(params,self.__secretkey) return httpPost(self.__url,CANCEL_ORDER_RESOURCE,params) #现货订单信息查询 def orderinfo(self,symbol,orderId): ORDER_INFO_RESOURCE = "/api/v1/order_info.do" params = { 'api_key':self.__apikey, 'symbol':symbol, 'order_id':orderId } params['sign'] = buildMySign(params,self.__secretkey) return httpPost(self.__url,ORDER_INFO_RESOURCE,params) #现货批量订单信息查询 def ordersinfo(self,symbol,orderId,tradeType): ORDERS_INFO_RESOURCE = "/api/v1/orders_info.do" params = { 'api_key':self.__apikey, 'symbol':symbol, 'order_id':orderId, 'type':tradeType } params['sign'] = buildMySign(params,self.__secretkey) return httpPost(self.__url,ORDERS_INFO_RESOURCE,params) #现货获得历史订单信息 def orderHistory(self,symbol,status,currentPage,pageLength): ORDER_HISTORY_RESOURCE = "/api/v1/order_history.do" params = { 'api_key':self.__apikey, 'symbol':symbol, 'status':status, 'current_page':currentPage, 'page_length':pageLength } params['sign'] = buildMySign(params,self.__secretkey) return httpPost(self.__url,ORDER_HISTORY_RESOURCE,params) def getKline(self,duration,size,since): kline_resourse = "/api/v1/kline.do" params = { #'api_key': self.__apikey, 'symbol': "btc_usd", 'type': duration, 'size': size, 'since': since } temp_params = urllib.parse.urlencode(params) #print(temp_params) return httpGet(self.__url, kline_resourse, temp_params)
阅读全文
0 0
- okcoinapi----现货美元版本
- 陈怡暖:现货黄金上涨信心缺乏,美元走软也无力回天
- 现货云
- 时更新 在线观察纸黄金价格 24小时黄金走势图使用现货买入价格 黄金价格历史走势图 全天显示黄金,银,钯 和 铂以及原油期货,美元指数的最新价格
- 什么是黄金现货投资
- 现货黄金完全入门
- 今天决定去做现货
- 现货黄金分时图
- 现货分时图
- 现货白银投资技巧
- 现货发展的前景
- 现货原油分析
- 什么是国际现货黄金
- 现货白银操作建议
- 51现货网
- 区间震荡-多空等待契机|现货开户|现货投资
- 【黄斤德】现货黄金、现货白银投资“三不要”
- 【黄斤德】现货黄金、现货白银技术分析之金蝉脱壳
- codeforces 158A Next Round
- 【esp8266】史上最详细的Arduino uno R3接入机智云教程
- 8
- Error:java: 服务配置文件不正确, 或构造处理程序对象javax.annotation.processing.Processor: Provider org.antlr.v4.runtime
- python计算txt文本有多少单词
- okcoinapi----现货美元版本
- [bzoj2648][kd-tree]SJY摆棋子
- FP风格以及并发的快速排序
- 9、ssm整合activeMQ、JAVAMail实现邮件异步注册和登陆功能
- 【跳棋、跳房子】与单调队列
- NKOJ 2409 田忌赛马 (DP)
- mysql root忘记密码重置
- 高数 03.05函数的极值与最大值最小值
- 使用 EasyUI 实现 MySQL 数据 简单的 增删改查