本文介绍比特量化的SDK返回的数据货币交易所标准格式。
一、统一规范
1、货币对
交易币在前,计价币在后,中间以下划线隔开,如“BTC_USDT”,全部大写,传参使用该格式。
注:交易所接口调用交易对时,内部再使用_x_symbol接口转为交易所的交易对格式。
2、时间规范
K线接口返回为秒级时间戳(因为K线最小周期1分钟)
其他接口返回时间为毫秒级时间戳,如订单相关接口。不是毫秒级的转成毫秒级,秒级的加000
2、长度规范
长短不一以短为准
深度同时返回买卖单,但以短者为准。如买单长50,卖单长60,则总体返回50条记录
4、数据类型
交易对:string
价格:float
数量:float
时间:10位秒时间或13位毫秒时间戳
订单ID:string 或 int 注:大部分交易所为int,极少部分为string,此处两种皆可
5、打印输出精度
币量:8
价格:10
数量:4
6、命名
订单ID:orderid
交易对:symbol
价格:price
数量:quantity
交易方向:direction 取值:BUY / SELL
交易类型:type 取值:MARKET / LIMIT
交易状态:status 取值:提交:SUBMITTED,部分成交:PARTIALLY_FILLED,成交:FILLED,取消:CANCELED
订单时间:time 取值毫秒时间戳
7、K线时间周期
分钟级:1min, 3min, 5min, 10min, 15min, 30min,
时间级:1hour, 2hour, 3hour, 4hour, 6hour, 8hour, 12hour,
日周月:1day, 3day, 1week, 2week, 1month
8、返回错误时参数定义
result 结果,False
errcode 错误代码
errmsg 错误原因
{ \'result\': False, \'errcode\': 2022, \'errmsg\': \'order amount low min limit\' }
9、接口定义
api网址:https://api.bitcoinex.com 结尾不带斜杠
接口:/ticker?symbol=btc_usdt 开头带斜杠
10、长度默认值
depth: 30
trades: 60
kline: 120
11、交易状态定义
# (0:已提交,1:已完成,2:已撤销, 3:部分成交 其他部分未成交, 4:部分成交 其他部分取消 types = { 0:"SUBMITTED", 1:"FILLED", 2:"CANCELED", 3:"PARTIALLY_FILLED", 4:"PARTIALLY_CANCELED", }
二、参数列表
1、市场markets
由symbol,base,quote三部分组成,
- symbol:交易对
- base:交易币
- quote:计价币
比特量化 地址:https://dcep.000webhostapp.com/api/v1/markets
格式如下
[ { "symbol":"BTC_USDT", "base":"BTC", "quote":"USDT" }, { "symbol":"ETH_USDT", "base":"ETH", "quote":"USDT" }, { "symbol":"ETH_BTC", "base":"ETH", "quote":"BTC" } ]
格式化打印如下,第1为币列,后续列表示支持的交易对
1 BTC USDT --- 2 BCH USDT BTC 3 ETH USDT BTC 4 ETC USDT BTC 5 LTC USDT BTC 6 ADA USDT BTC 7 EOS USDT BTC 8 XRP USDT BTC 9 XLM USDT BTC 10 XEM USDT BTC 11 DASH USDT BTC
2、精度precisions
返回字典,键为交易对,值为字典
- price:价格精度
- quantity:数量精度
比特量化 地址:https://dcep.000webhostapp.com/api/v1/precisions
{ "BTC_USDT":{ "price":2, "quantity":4 }, "ETH_USDT":{ "price":2, "quantity":3 }, "ETH_BTC":{ "price":8, "quantity":3 } }
格式化打印如下
SYMBOL PRICE QUANTITY BTC_USDT 2 4 BCH_USDT 2 3 ETH_USDT 2 3 ETH_BTC 8 3
3、行情ticker
由bid,ask,last组成
- bid:买一价
- ask:卖一价
- last:最新价
比特量化 地址:https://dcep.000webhostapp.com/api/v1/ticker?symbol=BTC_USDT
{ "bid":7206.02, "ask":7207.69, "last":7207.21 }
4、深度depth
bids在前,asks在后
bids:买单深度,列表为 [价格、数量],价格由大到小
asks:卖单深度,列表为 [价格、数量],价格由小到大
比特量化 地址:https://dcep.000webhostapp.com/api/v1/depth?symbol=BTC_USDT
{ "bids":[ [ 7206.02, 3.1015 ], [ 7198.1, 5.9285 ], [ 7188.98, 5.8473 ] ], "asks":[ [ 7207.69, 9.338 ], [ 7211.71, 3.8617 ], [ 7217.11, 5.7787 ] ] }
格式化打印
BIDS-PRICE BIDS-AMOUNT SUM-BUY ASKS-PRICE ASKS-AMOUNT SUM-SELL
1 7206.0200000000 3.1015 22349.4710 7207.6900000000 9.3380 67305.4092
2 7198.1000000000 5.9285 65023.4069 7211.7100000000 3.8617 95154.8697
3 7188.9800000000 5.8473 107059.5296 7217.1100000000 5.7787 136860.3833
4 7174.5700000000 3.1857 129915.5573 7218.9800000000 6.6727 185030.4711
5 7158.4400000000 4.7412 163855.1530 7224.4100000000 6.2684 230315.9628
6 7148.7800000000 6.6608 211471.7468 7226.5000000000 5.0172 266572.7586
7 7148.5600000000 6.3328 256742.1476 7235.1700000000 6.8392 316055.5332
8 7120.2500000000 6.6531 304113.8829 7245.1300000000 5.5874 356536.9726
9 7114.9500000000 3.0118 325542.6893 7253.4800000000 6.4741 403496.7275
10 7106.5000000000 5.9600 367897.4293 7262.0400000000 3.4438 428505.7408
5、交易记录trades
- orderid 订单ID
- time 交易时间
- price 价格
- quantity 数量
- direction 交易方向
比特量化 地址:https://dcep.000webhostapp.com/api/v1/trades?symbol=BTC_USDT
[ { "orderid":"1577343636", "time":1577343636000, "price":7207.21, "quantity":0.0212, "direction":"SELL" }, { "orderid":"1577343617", "time":1577343617000, "price":7208.47, "quantity":0.9, "direction":"SELL" }, { "orderid":"1577343605", "time":1577343605000, "price":7208.53, "quantity":0.0013, "direction":"SELL" } ]
格式化打印输出
ORDERID TIME PRICE QUANTITY DIERCTION 1577343636 2019-12-26 15:00:36 7207.21 0.0212 SELL 1577343617 2019-12-26 15:00:17 7208.47 0.9 SELL 1577343605 2019-12-26 15:00:05 7208.53 0.0013 SELL 1577343584 2019-12-26 14:59:44 7208.68 0.4 BUY 1577343573 2019-12-26 14:59:33 7208.64 0.1924 SELL 1577343560 2019-12-26 14:59:20 7208.74 0.016 SELL 1577343550 2019-12-26 14:59:10 7208.69 1.0 SELL 1577343549 2019-12-26 14:59:09 7208.72 3.9917 BUY 1577343534 2019-12-26 14:58:54 7210.87 0.0728 SELL
6、K线kline
numpy array格式
依次为 stamp, open, high, low, close, volume
比特量化 地址:https://dcep.000webhostapp.com/api/v1/kline?symbol=BTC_USDT
( array([1577329200, 1577332800, 1577336400, 1577340000, 1577343600, 1577347200]), array([7200.37, 7182.84, 7182.51, 7188.31, 7206.57, 7209.2 ]), array([7203.67, 7197. , 7195. , 7223.15, 7218.06, 7235.23]), array([7177.14, 7180. , 7176.8 , 7182.92, 7198. , 7206.27]), array([7183.01, 7182.26, 7188.31, 7207.34, 7209.2 , 7230.52]), array([ 583.251854, 494.59289 , 532.669462, 1002.302363, 874.400744, 549.985543]) )
格式化打印输出(从小到大,正序排列,时间最近在最下面) [npa = npa[np.lexsort(npa[:,::-1].T)] ]
2019-12-26 11:00:00 O:7200.37000000 H:7203.67000000 L:7177.14000000 C:7183.01000000 V:583.25185400 2019-12-26 12:00:00 O:7182.84000000 H:7197.00000000 L:7180.00000000 C:7182.26000000 V:494.59289000 2019-12-26 13:00:00 O:7182.51000000 H:7195.00000000 L:7176.80000000 C:7188.31000000 V:532.66946200 2019-12-26 14:00:00 O:7188.31000000 H:7223.15000000 L:7182.92000000 C:7207.34000000 V:1002.30236300 2019-12-26 15:00:00 O:7206.57000000 H:7218.06000000 L:7198.00000000 C:7209.20000000 V:874.40074400
以下为高级接口,一般需要api密钥参数认证才能获取
11、账号account
币种为键,币量为值
- free 可用
- locked 冻结
- total 总共
{ "BTC":{ "free":0.1, "locked":0.2, "total":0.3 }, "ETH":{ "free":0, "locked":0, "total":0 }, "USDT":{ "free":2786.636222, "locked":583.279809, "total":3369.916031 } }
格式化打印输出
1 BTC 0.10000000 0.20000000 0.30000000 2 USDT 2786.63622200 583.27980900 3369.91603100
12、下单order
输入参数
symbol 交易对,如BTC_USDT side 交易方向,取值 "BUY", "SELL" type 交易类型,取值 "LIMIT", "MARKET" quantity 数量 price 价格 **kwargs 可变参数,用于交易所要求的其他参数
输出参数
result 结果,取值 True, False
orderid 订单ID,result为True时
样例
{ \'result\': True, \'orderid\': \'E6618043078911565824\' }
13、订单查询 order_query
输入参数
symbol 交易对,如BTC_USDT
orderid 订单ID
输出参数
symbol 交易对,如BTC_USDT orderid 订单ID quantity 数量 price 价格 side 交易方向,取值 "BUY", "SELL" type 交易类型,取值 "LIMIT", "MARKET" time 交易时间,毫秒级时间戳
返回样例
{ \'symbol\': \'BTC_USDT\', \'orderid\': \'E6615092017452130304\', \'price\': 0.001822, \'quantity\': 222.0, \'status\': \'FILLED\', \'side\': \'SELL\', \'type\': \'LIMIT\', \'time\': 1577160839427 }
14、订单取消 order_cancel
输入参数
symbol 交易对,如BTC_USDT
orderid 订单ID
输出参数
result 结果,取值 True, False
orderid 订单ID,result为True时
样例
{ \'result\': True }
15、订单未成交记录 order_open
[ { "orderid":"3785624934", "symbol":"DOGE_USDT", "time":1578639942000, "price":0.015, "quantity":400, "direction":"BUY" }, { "orderid":"3785624829", "symbol":"DOGE_USDT", "time":1578639942000, "price":0.0452, "quantity":200, "direction":"SELL" } ]
16、订单已成交记录 order_history
格式同上
三、常用签名方法
# 签名函数
def signature(self, params):
params = sorted(params.items(), key=lambda d:d[0]) # 对字典按键排序,d[0]表示按键,d[1]表示按值
paramsurl = urllib.parse.urlencode(params) # 元组组成的列表转字符串
sign = hmac.new(self._secret.encode("utf8"), paramsurl.encode("utf8"), hashlib.md5).hexdigest() # HMAC-MD5签名值
return sign