火币网现货API[Python3版]
火币 期货 现货 API [Python3版]
一、Util.py,基础类,包括参数配置、签名,HTTP 请求方法,发送信息到API
#coding=utf-8 import hashlib import time import urllib import urllib.parse import urllib.request #在此输入您的Key ACCESS_KEY = "" SECRET_KEY = "" HUOBI_SERVICE_API="https://api.huobi.com/apiv3" ACCOUNT_INFO = "get_account_info" GET_ORDERS = "get_orders" ORDER_INFO = "order_info" BUY = "buy" BUY_MARKET = "buy_market" CANCEL_ORDER = "cancel_order" NEW_DEAL_ORDERS = "get_new_deal_orders" ORDER_ID_BY_TRADE_ID = "get_order_id_by_trade_id" SELL = "sell" SELL_MARKET = "sell_market" ''' 发送信息到api ''' def send2api(pParams, extra): pParams['access_key'] = ACCESS_KEY pParams['created'] = int(time.time()) pParams['sign'] = createSign(pParams) if(extra) : for k in extra: v = extra.get(k) if(v != None): pParams[k] = v #pParams.update(extra) tResult = httpRequest(HUOBI_SERVICE_API, pParams) return tResult ''' 生成签名 ''' def createSign(params): params['secret_key'] = SECRET_KEY; params = sorted(params.items(), key=lambda d:d[0], reverse=False) message = urllib.parse.urlencode(params) message=message.encode(encoding='UTF8') m = hashlib.md5() m.update(message) m.digest() sig=m.hexdigest() return sig ''' request ''' def httpRequest(url, params): postdata = urllib.parse.urlencode(params) postdata = postdata.encode('utf-8') fp = urllib.request.urlopen(url, postdata) if fp.status != 200 : return None else: mybytes = fp.read() mystr = mybytes.decode("utf8") fp.close() return mystr
二、HuobiService.py,火币现货API
#coding=utf-8 from Util import * ''' 获取账号详情 ''' def getAccountInfo(method): params = {"method":method} extra = {} res = send2api(params, extra) return res ''' 获取所有正在进行的委托 ''' def getOrders(coinType,method): params = {"method":method} params['coin_type'] = coinType extra = {} res = send2api(params, extra) return res ''' 获取订单详情 @param coinType @param id ''' def getOrderInfo(coinType,id,method): params = {"method":method} params['coin_type'] = coinType params['id'] = id extra = {} res = send2api(params, extra) return res ''' 限价买入 @param coinType @param price @param amount @param tradePassword @param tradeid @param method ''' def buy(coinType,price,amount,tradePassword,tradeid,method): params = {"method":method} params['coin_type'] = coinType params['price'] = price params['amount'] = amount extra = {} extra['trade_password'] = tradePassword extra['trade_id'] = tradeid res = send2api(params, extra) return res ''' 限价卖出 @param coinType @param price @param amount @param tradePassword @param tradeid ''' def sell(coinType,price,amount,tradePassword,tradeid,method): params = {"method":method} params['coin_type'] = coinType params['price'] = price params['amount'] = amount extra = {} extra['trade_password'] = tradePassword extra['trade_id'] = tradeid res = send2api(params, extra) return res ''' 市价买 @param coinType @param amount @param tradePassword @param tradeid ''' def buyMarket(coinType,amount,tradePassword,tradeid,method): params = {"method":method} params['coin_type'] = coinType params['amount'] = amount extra = {} extra['trade_password'] = tradePassword extra['trade_id'] = tradeid res = send2api(params, extra) return res ''' 市价卖出 @param coinType @param amount @param tradePassword @param tradeid ''' def sellMarket(coinType,amount,tradePassword,tradeid,method): params = {"method":method} params['coin_type'] = coinType params['amount'] = amount extra = {} extra['trade_password'] = tradePassword extra['trade_id'] = tradeid res = send2api(params, extra) return res ''' 查询个人最新10条成交订单 @param coinType ''' def getNewDealOrders(coinType,method): params = {"method":method} params['coin_type'] = coinType extra = {} res = send2api(params, extra) return res ''' 根据trade_id查询oder_id @param coinType @param tradeid ''' def getOrderIdByTradeId(coinType,tradeid,method): params = {"method":method} params['coin_type'] = coinType params['trade_id'] = tradeid extra = {} res = send2api(params, extra) return res ''' 撤销订单 @param coinType @param id ''' def cancelOrder(coinType,id,method): params = {"method":method} params['coin_type'] = coinType params['id'] = id extra = {} res = send2api(params, extra) return res
三、HuobiMain.py,客户端调用方法
#coding=utf-8 ''' 本程序在 Python 3.3.0 环境下测试成功 使用方法:python HuobiMain.py ''' from Util import * import HuobiService if __name__ == "__main__": print ("获取账号详情") print (HuobiService.getAccountInfo(ACCOUNT_INFO)) print ("获取所有正在进行的委托") print (HuobiService.getOrders(1,GET_ORDERS)) print ("获取订单详情") print (HuobiService.getOrderInfo(1,68278313,ORDER_INFO)) print ("限价买入") ","0.01",None,None,BUY)) print ("限价卖出") ","0.2",None,None,SELL)) print ("市价买入") ",None,None,BUY_MARKET)) print ("市价卖出") print (HuobiService.sellMarket(2,"1.3452",None,None,SELL_MARKET)) print ("查询个人最新10条成交订单") print (HuobiService.getNewDealOrders(1,NEW_DEAL_ORDERS)) print ("根据trade_id查询order_id") print (HuobiService.getOrderIdByTradeId(1,274424,ORDER_ID_BY_TRADE_ID)) print ("取消订单接口") print (HuobiService.cancelOrder(1,68278313,CANCEL_ORDER))
下载地址
http://files.cnblogs.com/files/fangbei/huobi-api-python3.zip
火币网现货API[Python3版]的更多相关文章
- OKCoin期货现货API[Python3版]
OKCoin 期货 现货 API [Python版] 一.HttpMD5Util.py,基础类,包括MD5签名,HTTP Post及HTTP Get方法 #!/usr/bin/python # -*- ...
- 聚币网API[Python3版]
代码 #!/usr/bin/env python # -*- coding:utf-8 -*- import hashlib import requests import time import ur ...
- 聚币网API[Python2版]
聚币 现货 API [Python2版] 一.utils.py,基础类,包括HTTP 请求.签名等 # -*- coding: utf-8 -*- import hashlib import hmac ...
- RESTful API终极版序列化封装
urls: from django.conf.urls import url from app01 import views urlpatterns = [ # url(r"comment/ ...
- 百度地图 JavaScript API 极速版 开发体会
前段时间百度地图API推出了 JavaScript API 极速版 1.0 简单看了一下,从产品定位来说真是挺好. 把开发人员细分成普通web开发人员和移动web开发人员.正好用到了手机地图这块决定尝 ...
- 阿里大鱼短信接口(Python3版)
近期由于须要用到短信接口,选型的的结果是用阿里大鱼的短信服务,然而淘宝开放平台(TOP)的SDK已经非常多年没有更新了.不支持python3.自己动手改了半天,还是不太正常,索性不用它,自己写一个算了 ...
- ffmpeg 部分api delphi 版
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把部分api 翻译成了dephi版的 记录一下 地址 ffmpegvcl.zip
- 百度翻译新API C#版在 winform,Asp.Net的小程序
3月的下午,在C#群里日常装逼(聊天), 一兄弟说百度翻译有没有winfrom上用的Demo,问了一天 嫌烦了 我就干脆自己写个: PS 百度上的部分代码害死人啊 api地址都换的不成样了, 还 ...
- Git项目代码统计-Python3版gitstats
gitstats是一个Git项目统计工具,可以统计git项目代码提交量,提交者的贡献量及活动热力图等信息,如下图. gitstats基于Python2.7,使用git log命令生成统计信息,基于gn ...
随机推荐
- 实时音视频互动系列(下):基于 WebRTC 技术的实战解析
在 WebRTC 项目中,又拍云团队做到了覆盖系统全局,保证项目进程流畅.这牵涉到主要三大块技术点: 网络端.服务端的开发和传输算法 WebRTC 协议中牵扯到服务端的应用协议和信令服务 客户端iOS ...
- Ambari部署时问题之Ambari Metrics无法启动
首先,我的问题是如下: Traceback (most recent call last): File , in <module> AMSServiceCheck().execute() ...
- 微信小程序 瀑布流布局
今天做小程序的时候,碰到一个比较常见的需求,就是要瀑布流布局,两列,交错分布,大概如下图 最终要实现的结果就是如左图所示. 不过在微信小程序里面,不能通过JavaScript来直接操作dome,所以一 ...
- Longest Palindromic Substring - 字符串中最长的回文字段
需求:Given a string S, find the longest palindromic substring in S. You may assume that the maximum le ...
- 机器学习 —— 基础整理(四)特征提取之线性方法:主成分分析PCA、独立成分分析ICA、线性判别分析LDA
本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...
- iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)
项目中各个地方都会用到TextField,textField的输入也会有各种需求,各种限制,每次用到的时候要重写一遍这些限制,导致各种垃圾代码,各种重复,有一天,我终于看不下去了,于是把textFie ...
- 安装j2ee开发环境
先安装jdk,再安装eclipse ,再安装myeclipse. eclipse与myeclipse必须在图形化界面安装. 1. 挂载光驱/硬盘 mount /mnt/cdrom/ 挂载光驱 ...
- windows系统查看支持最大内存
1.使用快捷键:win+r打开命令窗口. 按回车到命令界面 2.弹出如下命令界面,在界面C:\Users\Administrator>处输入wmic memphysical get maxcap ...
- MySQL学习笔记(二):MySQL数据类型汇总及选择参考
本文主要介绍了MySQL 的常用数据类型,以及实际应用时如何选择合适的类型. ******几个通用的简单原则:******* 1. 更小的通常更好.但是要确保没有低估需要存储的值的范围,如果无法确定 ...
- CSS样式----盒子模型(图文详解)
盒子模型 盒子中的区域 一个盒子中主要的属性就5个:width.height.padding.border.margin.如下: width:内容的宽度.CSS中 width 指的是内容的宽度,而不是 ...