火币 期货 现货 API [Python3版]

一、Util.py,基础类,包括参数配置、签名,HTTP 请求方法,发送信息到API

  1. #coding=utf-8
  2. import hashlib
  3. import time
  4. import urllib
  5. import urllib.parse
  6. import urllib.request
  7.  
  8. #在此输入您的Key
  9. ACCESS_KEY = ""
  10. SECRET_KEY = ""
  11.  
  12. HUOBI_SERVICE_API="https://api.huobi.com/apiv3"
  13. ACCOUNT_INFO = "get_account_info"
  14. GET_ORDERS = "get_orders"
  15. ORDER_INFO = "order_info"
  16. BUY = "buy"
  17. BUY_MARKET = "buy_market"
  18. CANCEL_ORDER = "cancel_order"
  19. NEW_DEAL_ORDERS = "get_new_deal_orders"
  20. ORDER_ID_BY_TRADE_ID = "get_order_id_by_trade_id"
  21. SELL = "sell"
  22. SELL_MARKET = "sell_market"
  23.  
  24. '''
  25. 发送信息到api
  26. '''
  27. def send2api(pParams, extra):
  28. pParams['access_key'] = ACCESS_KEY
  29. pParams['created'] = int(time.time())
  30. pParams['sign'] = createSign(pParams)
  31. if(extra) :
  32. for k in extra:
  33. v = extra.get(k)
  34. if(v != None):
  35. pParams[k] = v
  36. #pParams.update(extra)
  37. tResult = httpRequest(HUOBI_SERVICE_API, pParams)
  38. return tResult
  39.  
  40. '''
  41. 生成签名
  42. '''
  43. def createSign(params):
  44. params['secret_key'] = SECRET_KEY;
  45. params = sorted(params.items(), key=lambda d:d[0], reverse=False)
  46. message = urllib.parse.urlencode(params)
  47. message=message.encode(encoding='UTF8')
  48. m = hashlib.md5()
  49. m.update(message)
  50. m.digest()
  51. sig=m.hexdigest()
  52. return sig
  53.  
  54. '''
  55. request
  56. '''
  57. def httpRequest(url, params):
  58. postdata = urllib.parse.urlencode(params)
  59. postdata = postdata.encode('utf-8')
  60.  
  61. fp = urllib.request.urlopen(url, postdata)
  62. if fp.status != 200 :
  63. return None
  64. else:
  65. mybytes = fp.read()
  66. mystr = mybytes.decode("utf8")
  67. fp.close()
  68. return mystr

二、HuobiService.py,火币现货API

  1. #coding=utf-8
  2. from Util import *
  3.  
  4. '''
  5. 获取账号详情
  6. '''
  7. def getAccountInfo(method):
  8. params = {"method":method}
  9. extra = {}
  10. res = send2api(params, extra)
  11. return res
  12. '''
  13. 获取所有正在进行的委托
  14. '''
  15. def getOrders(coinType,method):
  16. params = {"method":method}
  17. params['coin_type'] = coinType
  18. extra = {}
  19. res = send2api(params, extra)
  20. return res
  21. '''
  22. 获取订单详情
  23. @param coinType
  24. @param id
  25. '''
  26. def getOrderInfo(coinType,id,method):
  27. params = {"method":method}
  28. params['coin_type'] = coinType
  29. params['id'] = id
  30. extra = {}
  31. res = send2api(params, extra)
  32. return res
  33.  
  34. '''
  35. 限价买入
  36. @param coinType
  37. @param price
  38. @param amount
  39. @param tradePassword
  40. @param tradeid
  41. @param method
  42. '''
  43. def buy(coinType,price,amount,tradePassword,tradeid,method):
  44. params = {"method":method}
  45. params['coin_type'] = coinType
  46. params['price'] = price
  47. params['amount'] = amount
  48. extra = {}
  49. extra['trade_password'] = tradePassword
  50. extra['trade_id'] = tradeid
  51. res = send2api(params, extra)
  52. return res
  53.  
  54. '''
  55. 限价卖出
  56. @param coinType
  57. @param price
  58. @param amount
  59. @param tradePassword
  60. @param tradeid
  61. '''
  62. def sell(coinType,price,amount,tradePassword,tradeid,method):
  63. params = {"method":method}
  64. params['coin_type'] = coinType
  65. params['price'] = price
  66. params['amount'] = amount
  67. extra = {}
  68. extra['trade_password'] = tradePassword
  69. extra['trade_id'] = tradeid
  70. res = send2api(params, extra)
  71. return res
  72.  
  73. '''
  74. 市价买
  75. @param coinType
  76. @param amount
  77. @param tradePassword
  78. @param tradeid
  79. '''
  80.  
  81. def buyMarket(coinType,amount,tradePassword,tradeid,method):
  82. params = {"method":method}
  83. params['coin_type'] = coinType
  84. params['amount'] = amount
  85. extra = {}
  86. extra['trade_password'] = tradePassword
  87. extra['trade_id'] = tradeid
  88. res = send2api(params, extra)
  89. return res
  90.  
  91. '''
  92. 市价卖出
  93. @param coinType
  94. @param amount
  95. @param tradePassword
  96. @param tradeid
  97. '''
  98. def sellMarket(coinType,amount,tradePassword,tradeid,method):
  99. params = {"method":method}
  100. params['coin_type'] = coinType
  101. params['amount'] = amount
  102. extra = {}
  103. extra['trade_password'] = tradePassword
  104. extra['trade_id'] = tradeid
  105. res = send2api(params, extra)
  106. return res
  107.  
  108. '''
  109. 查询个人最新10条成交订单
  110. @param coinType
  111. '''
  112. def getNewDealOrders(coinType,method):
  113. params = {"method":method}
  114. params['coin_type'] = coinType
  115. extra = {}
  116. res = send2api(params, extra)
  117. return res
  118. '''
  119. 根据trade_id查询oder_id
  120. @param coinType
  121. @param tradeid
  122. '''
  123. def getOrderIdByTradeId(coinType,tradeid,method):
  124. params = {"method":method}
  125. params['coin_type'] = coinType
  126. params['trade_id'] = tradeid
  127. extra = {}
  128. res = send2api(params, extra)
  129. return res
  130.  
  131. '''
  132. 撤销订单
  133. @param coinType
  134. @param id
  135. '''
  136.  
  137. def cancelOrder(coinType,id,method):
  138. params = {"method":method}
  139. params['coin_type'] = coinType
  140. params['id'] = id
  141. extra = {}
  142. res = send2api(params, extra)
  143. return res

三、HuobiMain.py,客户端调用方法

  1. #coding=utf-8
  2.  
  3. '''
  4. 本程序在 Python 3.3.0 环境下测试成功
  5. 使用方法:python HuobiMain.py
  6. '''
  7.  
  8. from Util import *
  9. import HuobiService
  10.  
  11. if __name__ == "__main__":
  12. print ("获取账号详情")
  13. print (HuobiService.getAccountInfo(ACCOUNT_INFO))
  14. print ("获取所有正在进行的委托")
  15. print (HuobiService.getOrders(1,GET_ORDERS))
  16. print ("获取订单详情")
  17. print (HuobiService.getOrderInfo(1,68278313,ORDER_INFO))
  18. print ("限价买入")
  19. ","0.01",None,None,BUY))
  20. print ("限价卖出")
  21. ","0.2",None,None,SELL))
  22. print ("市价买入")
  23. ",None,None,BUY_MARKET))
  24. print ("市价卖出")
  25. print (HuobiService.sellMarket(2,"1.3452",None,None,SELL_MARKET))
  26. print ("查询个人最新10条成交订单")
  27. print (HuobiService.getNewDealOrders(1,NEW_DEAL_ORDERS))
  28. print ("根据trade_id查询order_id")
  29. print (HuobiService.getOrderIdByTradeId(1,274424,ORDER_ID_BY_TRADE_ID))
  30. print ("取消订单接口")
  31. print (HuobiService.cancelOrder(1,68278313,CANCEL_ORDER))

下载地址

http://files.cnblogs.com/files/fangbei/huobi-api-python3.zip

火币网现货API[Python3版]的更多相关文章

  1. OKCoin期货现货API[Python3版]

    OKCoin 期货 现货 API [Python版] 一.HttpMD5Util.py,基础类,包括MD5签名,HTTP Post及HTTP Get方法 #!/usr/bin/python # -*- ...

  2. 聚币网API[Python3版]

    代码 #!/usr/bin/env python # -*- coding:utf-8 -*- import hashlib import requests import time import ur ...

  3. 聚币网API[Python2版]

    聚币 现货 API [Python2版] 一.utils.py,基础类,包括HTTP 请求.签名等 # -*- coding: utf-8 -*- import hashlib import hmac ...

  4. RESTful API终极版序列化封装

    urls: from django.conf.urls import url from app01 import views urlpatterns = [ # url(r"comment/ ...

  5. 百度地图 JavaScript API 极速版 开发体会

    前段时间百度地图API推出了 JavaScript API 极速版 1.0 简单看了一下,从产品定位来说真是挺好. 把开发人员细分成普通web开发人员和移动web开发人员.正好用到了手机地图这块决定尝 ...

  6. 阿里大鱼短信接口(Python3版)

    近期由于须要用到短信接口,选型的的结果是用阿里大鱼的短信服务,然而淘宝开放平台(TOP)的SDK已经非常多年没有更新了.不支持python3.自己动手改了半天,还是不太正常,索性不用它,自己写一个算了 ...

  7. ffmpeg 部分api delphi 版

    ffmpeg 是一套强大的开源的多媒体库  一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把部分api 翻译成了dephi版的 记录一下 地址   ffmpegvcl.zip

  8. 百度翻译新API C#版在 winform,Asp.Net的小程序

    3月的下午,在C#群里日常装逼(聊天), 一兄弟说百度翻译有没有winfrom上用的Demo,问了一天  嫌烦了  我就干脆自己写个: PS 百度上的部分代码害死人啊  api地址都换的不成样了, 还 ...

  9. Git项目代码统计-Python3版gitstats

    gitstats是一个Git项目统计工具,可以统计git项目代码提交量,提交者的贡献量及活动热力图等信息,如下图. gitstats基于Python2.7,使用git log命令生成统计信息,基于gn ...

随机推荐

  1. SSH连不上虚拟机的问题解决

    这几天工作任务不重,今早上班打算在liunx下运行下python脚本.打开VM,SSH突然连不上虚拟机了.网上试了很多方法都不行,最后花费2个小时解决了这一问题. 结合我的实际情况,问题解决如下: 1 ...

  2. Python怎么样入门?Python基础入门教程

    给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...

  3. C语言代码训练(一)

    今天我们先来讲解一道C语言的经典例题,也是从零开始系列中的一道课后练习题. 请用控制台程序绘制如下图案. 循环经典例题 分析情况 这个题目是要求打印30行"*",每行打印的个数不同 ...

  4. Work 1(导游类)(2017.06.27)

  5. 【Spring】关于SpringMvc监听的知识点

    一,在使用Spring系列框架时,我们需要在Web.xml配置Spring的监听:ContextLoaderListener ContextLoaderListener的作用就是,在Web容器初始化时 ...

  6. (转)xml

    1  XML理论回顾 1.1 XML概述 1.XML是可扩展标记语言.是由W3C指定并维护的,目前最新的版本是1.0 2.XML作用: 2.1传输数据,它是一种通用的数据交换格式 2.2配置文件. 1 ...

  7. linux下怎么卸载自带的JDK和安装想要的JDK

    linux下怎么卸载自带的JDK和安装想要的JDK   安装linux系统后,系统有自带jdk的版本,因为系统中的有些软件需要使用此环境.但时候我们安装eclipse和tomcat的时候,使用此jdk ...

  8. Mybatis 调用存储过程,使用Map进行输入输出参数的传递

    做个记录,以备后用 java代码: public String texuChange() throws Exception {        try {                         ...

  9. C#语言入门详解(002)

    c# 所編寫的不同應用程序 Console.WriteLine("Hello World!"); ///console textBoxShowHellow.Text = " ...

  10. Linux的nginx环境的vue 部署

    1.使用WebStrom编程好的vue 进入到Terminal运行npm run build           2.使用WinSCP进入到nginx 目录配置文件下面,找到nginx.conf文件: ...