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


    本文介绍比特量化的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
  • 相关阅读:
    java 执行 jar 包中的 main 方法
    seven habits of highly effective people 高效能人士的七个习惯
    支付系统对账算法优化方案 转
    iso 培训笔记
    Android日常开发总结的技术经验60条 转
    ANDROID学习之路 转
    Businessworks的设计思想
    JVM内存模型和性能优化 转
    高可用架构设计与实践
    大规模分布式存储实战
  • 原文地址:https://www.cnblogs.com/bitquant/p/Exchange-RESTful-API.html
Copyright © 2020-2023  润新知