火币网现货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 ...
随机推荐
- FZU 2256 迷宫
https://vjudge.net/problem/FZU-2256 题意:略 思路: 在比赛的时候想到了一次dfs,一次bfs但是样例都过不了...赛后才知道,距离的更新必须同步,不能先把时光机的 ...
- ARM开发(2)基于STM32的蜂鸣器
基于STM32的蜂鸣器 一 蜂鸣器原理: 1.1 本实验实现1个蜂鸣器间隔1S鸣叫. 1.2 实验思路:根据电路图原理,给蜂鸣器相关引脚赋予高低电平,实现电路的导通,使蜂鸣器实现鸣叫或不鸣. 1 ...
- Ubuntu彻底删除/卸载mysql,php,apache
一.卸载删除 mysql 1 sudo apt-get autoremove --purge mysql-server-5.02 sudo apt-get remove mysql-server3 s ...
- SetConsoleScreenBufferSize 函数--设置控制台屏幕缓冲区大小
SetConsoleScreenBufferSize函数 来源:https://msdn.microsoft.com/en-us/library/windows/desktop/ms686044(v= ...
- (转)关于java.lang.UnsupportedClassVersionError解决方法总结
背景:在服务器部署程序是后总是怀疑jdk安装不正确,所以打算运行一个小程序进行测试. 通过这样一个方法 ,可以测试jdk是否正确安装. 1 问题描述 首先编写了个Hello.java的代码: 这里我本 ...
- Infer 在 Mac 上的安装和环境配置
Infer 在 Mac 上的安装和环境配置 Infer 介绍 Infer 是一个静态分析工具.Infer 可以分析 Objective-C, Java 或者 C 代码,报告潜在的问题. 任何人都可以使 ...
- Android学习笔记-TextView(文本框)(二)
2.4 使用autoLink属性识别链接类型 当文字中出现了URL,E-Mail,电话号码,地图的时候,我们可以通过设置autoLink属性:当我们点击 文字中对应部分的文字,即可跳转至某默认APP, ...
- TCP/IP 2MSL
TCP/IP连接包括两个端A和B 假如A首先终止连接,发送FIN,此时A进入FIN_WAIT_1: 收到来自B的ACK:进入FIN_WAIT_2,等待接收对方FIN,如果收到,进入2MSL状态 收到来 ...
- LindAgile~大叔新宠~一个无所不能框架
关于她 LindAgile是大叔在这两年里的新宠儿,它主推模块化,插件化,敏捷化,主要于LindAgile基础项目,LindAgile.Http项目,LindAgile.Modules项目和几个扩展模 ...
- 使用我的编译器,下面的代码 int i=7; printf("%d\n", i++ * i++); 返回 49?不管按什么顺序计算, 难道不该打印出56吗?
尽管后缀自加和后缀自减操作符 ++ 和 -- 在输出其旧值之后才会执行运算, 但这里的"之后"常常被误解.没有任何保证确保自增或自减会在输出变量原值之 后和对表达式的其它部分进行计 ...