数字货币交易所数据标准格式

本文介绍比特量化的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
原文地址:https://www.cnblogs.com/bitquant/p/Exchange-RESTful-API.html