本文介紹比特量化的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