WS-API

Table of Contents

Examples

Common

所有请求均可加 crid 字段, 若主动附带此字段, 则返回值中 CRID 会与此保持一致, 若忽略该字段, 则为随机 uuid

PUBLIC 消息

不需要签名和任何 common 字段

GetActiveContracts

获取当前所有开放的交易对信息, 仅需要 action 字段

{
  "action": "GetActiveContracts"
}

Response

GetActiveContractsResponse

GetTrades

查询特定交易对历史成交记录

ParameterRequiredTypeExplanation
symbolYESstring交易对 (例:'BTC_USD')
countYESnumber订单数量:上限 100
{
  "action": "GetTrades",
  "symbol": "BTC_USD",
  "count": 50
}

Response

GetTradesResponse

SubscribeAllTickers

订阅所有交易对的 Tickers, 每秒推送所有 ticker 数组

{
  "action": "SubscribeAllTickers"
}

Response

{
  "MsgType": "AllTickersResponse",
  "data": ["...tickers"]
}

UnSubscribeAllTickers

取消订阅所有交易对的 Tickers

{
  "action": "UnSubscribeAllTickers"
}

Subscribe

订阅特定交易对的 tickerorderbook

params

ParameterRequiredTypeExplanation
symbolYESstring交易对 (例:'BTC_USD')
{
  "action": "Subscribe",
  "symbol": "BTC_USD"
}

Response

会持续推送该交易对的2.2 Ticker的消息

UnSubscribe

取消订阅特定交易对的 ticker

params

ParameterRequiredTypeExplanation
symbolYESstring交易对 (例:'BTC_USD')
{
  "action": " UnSubscribe",
  "symbol": "BTC_USD"
}

SubOrderBook

订阅特定频道 档位的 orderbook, 不同档位推送时间间隔不同

params

ParameterRequiredTypeExplanation
symbolYESstring交易对, eg: 'BTC_USD'
lenYESstring档位, eg:10、25、100
{
  "action": "SubOrderBook",
  "symbol": "BTC_USD",
  "len": 100
}

Response

FieldValue/Explanation
MsgTypeSubOrderBookResponse
Symboltrading pair (eg: 'BTC_USD')
Data.AsksAsks array[0] is price, array[1] = volume
Data.BidsBids array[0] is price, array[1] = volume
Timestamp
{
    "MsgType":"OrderBook.BTC_USD.10",
    "Symbol":"BTC_USD",
    "Data":{
        "Asks":[
            [
                7458.8,
                0.0974
            ],
            [
                7459,
                0.0054
            ],
            [
                7459.4,
                0.0494
            ]
        ],
        "Bids":[
            [
                7458.7,
                0.0001
            ],
            [
                7458.3,
                0.0003
            ],
            [
                7457.4,
                0.0001
            ]
        ]
    },
    "Timestamp":1533106907345
}

UnSubOrderBook

取消订阅特定频道 档位的 orderbook,

params

ParameterRequiredTypeExplanation
symbolYESstring交易对, eg: 'BTC_USD'
lenYESstring档位, eg:10、25、100
{
  "action": "UnSubOrderBook",
  "symbol": "BTC_USD",
  "len": 100
}

PRIVATE 消息

common

common 为每种请求均必须附带的字段

params

ParameterRequiredTypeExplanation
timestampYEStimestamp (13)13 位时间戳, 服务端不会请求过期2s以上的请求
nonceYESstring 或 number8 位随机数字
public_keyYESstring用户 public key (非用户名, 在个人中心申请)
signYESstring签名(详见sign.md
actionYESstring消息类型( 支持的类型见下方)
cridYESstring若主动附带此字段, 则返回值中 CRID 会与此保持一致, 若忽略该字段, 则为随机 uuid
  action: {
    type: 'string',
    enum: [
      'Login',
      'Logout',
      'PlaceOrder',
      'GetOpenOrders',
      'GetClosedOrders',
      'GetAllOrders',
      'CancelOrder',
      'CancelAllOrders',
      'RetrieveOrder',
      'GetAccountInfo',
      'CancelReplaceOrder'
    ]
  }

Login

订阅帐号相关消息推送

params

仅需要 common 字段

Response

LoginResponse

并会在账户订单状态变动时推送 ExecReport, 在账户资产变动时推送 AccountInfo

Logout

取消订阅帐号相关消息推送

params

仅需要 common 字段

Response

LogoutResponse

PlaceOrder

下单操作

params

ParameterRequiredTypeExplanation
symbolYESstring交易对 (例:'BTC_USD')
sideYESenum ('SELL', 'BUY')买或者卖
order_typeYESenum ('LIMIT', 'MARKET', 'STOP')订单类型: 市价单、限价单或止损单
stop_priceNOnumber止损价格: >0, order_type 为 STOP 时,required 变为 YES
priceYESnumber价格: >0
quantityYESnumber订单交易量: >0(具体根据 GetActiveContracts 获取不同交易对配置)

Response

PlaceOrderResponse

GetOpenOrders

获取自己当前正在进行的订单记录, symbolnull 时,可查询所有交易对的记录

params

ParameterRequiredTypeExplanation
symbolNOstring交易对 (例:'BTC_USD')
beginNOtimestamp查询开始时间戳,默认值0
endNOtimestamp查询结束时间戳, 默认值Date.now()

Response

GetOrdersResponse

CancelOrder

取消订单

params

ParameterRequiredTypeExplanation
symbolYESstring交易对 (例:'BTC_USD')
order_idYESstring订单号: OID

Response

Cancel replace order response

CancelReplaceOrder

更新未成交的订单信息

params

ParameterRequiredTypeExplanation
symbolYESstring交易对 (例:'BTC_USD')
order_idYESstring订单号: OID
priceYESnumber价格: >0
stop_priceNOnumber止损价格: >0, order_type 为 STOP 时,required 变为 YES
quantityYESnumber订单交易量: >0(具体根据 GetActiveContracts 获取不同交易对配置)
old_quantityYESnumber下单后,未成交的订单

Response

Cancel replace order response

GetAccountInfo

获取账户余额详情

params

仅需要 common 字段

Response

GetAccountInfoResponse

ERROR RC CODE

exports.TIME_IN_FORCE = {
  DAY: '0',
  GTC: '1'
}

exports.ERROR_REPONSED = {
  INVALID_JSON_PAYLOAD: {
    RC: '-2001',
    data: 'invalid json payload'
  },
  WS_NOT_OK: {
    RC: '-2002',
    data: 'ws not ok, try again later'
  },
  AUTH_ERROR: {
    RC: '-2003',
    data: 'auth error'
  },
  NEED_LOGIN: {
    RC: '-2004',
    data: 'action need login first'
  },
  INVALID_ACTION: {
    RC: '-2005',
    data: 'invalid action'
  },
  INVALID_SYMBOL: {
    RC: '-2007',
    data: 'invalid symbol'
  }
}

exports.VALIDATE_ERROR_CODE = '-2006'