-
Notifications
You must be signed in to change notification settings - Fork 0
market WebSocket API
githubdev2020 edited this page Apr 7, 2020
·
5 revisions
行情服务说明文档
wss://www.bitforex.com/mkapi/coinGroup1/ws
- 本服务支持标准websocket心跳模式,即ping和pong
- 由于当前,尤其是浏览器各个版本实现有一些差异,为保证服务端和客户端连接活跃,所以本系统需要客户端定时发送心跳到本服务端,支持两种模式:
- 标准websocket心跳模式
- 字符串ping模式 websocket.send(“ping_p”);服务端返回"pong_p"
-
在进行websocket连接时,需要进行accessKey的认证,参数需要包含accessKey,timestamp(标准时间戳),sign签名
-
sign签名,参数是:accessKey=xxxx1×tamp=xxxxx2,则签名算法为:sign=MD5(accessKeyxxxx1timestampxxxxx2apisecret) 整个url为:/mkapi/ws?accessKey=xxxx1×tamp=xxxxx2&sign=MD5(accessKeyxxxx1timestampxxxxx2apisecret)
-
websocket订阅参数为:
[
{
"type": "subHq", //订阅业务类型,行情固定为subHq,以后扩展使用
"event": "ticker", //订阅事件,ticker 实时行情
"param": { //参数,每个事件参数不一定相同
"symbol": "usdt-eth"
}
}
]
以上是订阅eth/usdt交易对的参数
- 订阅支持一次订阅多个事件,比如,订阅 ticker和深度
[
{
"type": "subHq", //订阅业务类型,行情固定为subHq,以后扩展使用
"event": "ticker", //订阅事件,ticker 实时行情
"param": { //参数,每个事件参数不一定相同
"symbol": "usdt-eth"
}
},
{
"type": "subHq", //订阅业务类型,行情固定为subHq,以后扩展使用
"event": "depth", //订阅事件,ticker 实时行情
"param": { //参数,每个事件参数不一定相同
"symbol": "usdt-eth"
}
}
]
- 取消订阅接口,type定义为:subHq_cancel, 其他参数不变
[
{
"type": "subHq_cancel", //订阅业务类型
"event": "ticker", //订阅事件,ticker 实时行情
"param": { //参数,每个事件参数不一定相同
"symbol": "usdt-eth"
}
},
]
- 取消所有订阅接口,type定义为:subHq_cancel_all, 其他参数(此接口不允许和其他订阅一起发送)
[
{
"type": "subHq_cancel_all", //订阅业务类型,行情固定为subHq,以后扩展使用
"param": { //参数,每个事件参数不一定相同
}
},
]
- websocket.send(“[{"type":"subHq","event":"ticker","param":{"businessType":"coin-usdt-btc"}}]”);
取得产品的最新行情数据
参数
参数名 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
businessType | String | 是 | - | 业务合约类型代码 e.g. coin-usdt-btc (详见附录1) |
响应 (json)
示例:
{
"success": true,
"code": 200,
"version": "0.0.1",
"event": "ticker",
"param": {"businessType":"coin-usdt-btc"},
"data": {
"startdate":<开始时间>,
"enddate":<结束时间>,
"high":<最高价>,
"last":<最新价>,
"low":<最低价>,
"open":<开盘价>,
"productvol":<量>,
currencyvol: <交易额>,
allVol: <总量>,
allCurrencyVol: <总交易额>,
rate: <24小时涨跌>
}
}
- websocket.send(“[{"type":"subHq","event":"depth10","param":{"businessType":"coin-usdt-btc", "dType":0}}]”);
推送产品的最新行情深度
参数
参数名 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
businessType | String | 是 | - | 业务合约类型代码 e.g. coin-usdt-btc (详见附录1) |
dType | int | 是 | - | 深度类型 e.g. 0,1 |
响应 (json)
说明:
1、每次返回买卖盘150档行情
示例:
{
"success": true,
"code": 200,
"version": "0.0.1",
"event": "depth10",
"param": {"businessType":"coin-usdt-btc", "dType":0},
"data": {
"asks":[
{"price":<数字货币价格>,"amount",<数字货币数量>},
{"price":<数字货币价格>,"amount",<数字货币数量>},
{"price":<数字货币价格>,"amount",<数字货币数量>},
...
],
"bids":[
{"price":<数字货币价格>,"amount",<数字货币数量>},
{"price":<数字货币价格>,"amount",<数字货币数量>},
{"price":<数字货币价格>,"amount",<数字货币数量>},
...
]
}
}
asks为卖盘,bids为买盘
- websocket.send(“[{"type":"subHq","event":"trade","param":{"businessType":"coin-usdt-btc", "size":20}}]”);
推送产品的最新交易数据
参数
参数名 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
businessType | String | 是 | - | 业务合约类型代码 e.g. coin-usdt-btc (详见附录1) |
size | int | 是 | - | 第一次返回的数量 e.g. 20 最大 1000 |
响应 (json)
说明:
第一次返回,参数要求的size数量,以后增量返回,数据格式一致
示例:{
"success": true,
"code": 200,
"version": "0.0.1",
"event": "trade",
"param": {"businessType":"coin-usdt-btc"},
"data":[
{
"price":<成交价格>,
"amount",<成交量(数字货币)>,
"direction",<成交方向>,
"time",<成交时间>
},
{
"price":<成交价格>,
"amount",<成交量(数字货币为单位)>,
"direction",<成交方向>,
"time",<成交时间>
},
...
]
}
Direction: 1买 2卖 , time为long型
说明:
第一次返回最新的size条
推送数据返回最新的50条数据
- websocket.send(“[{"type":"subHq","event":"kline","param":{"businessType":"coin-usdt-btc", "kType":"1min", "size":20}}]”);
取得产品的K线数据
参数
参数名 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
businessType | String | 是 | - | 业务合约类型代码 e.g. coin-usdt-btc (详见附录1) |
size | int | 是 | - | 返回最新的数量 e.g. 20 最大1500 |
kType | String | 是 | - | 枚举定义如下表,参数如一分钟,参数值1min |
kType说明:
- 1min:一分钟K线 ,
- 5min:五分钟K线 ,
- 15min:十五分钟K线 ,
- 30min:三十分钟K线 ,
- 1hour:一小时K线 ,
- 2hour:二小时K线 ,
- 4hour:四小时K线 ,
- 12hour:十二小时K线 ,
- 1day:每日K线,
- 1week:每周K线,
- 1month:每月K线
响应 (json)
说明:
第一次返回最新的size条
推送数据返回最新的两条数据
示例:
{
"success": true,
"code": 200,
"version": "0.0.1",
"event": "kline",
"param": {"businessType":"coin-usdt-btc", "kType":"1min"},
"data":[
{
"time":<时间戳>,
"open",<开盘价>,
"high",<最高价>,
"close",<收盘价>,
"low",<最低价>,
"vol",<成交量>
},
{
"time":<时间戳>,
"open",<开盘价>,
"high",<最高价>,
"close",<收盘价>,
"low",<最低价>,
"vol",<成交量>
},
...
]
}
{
"success": false,
"code": 20002,
"version": "0.0.1",
"msg": "Request params not valid"
}
//错误代码映射
public static final String[] PARAM_ERROR = {"MK100", "param is invalid"};//未知参数错误,例:传入的json串不对
public static final String[] PARAM_BUSS_TYPE = {"MK101", "business type is invalid"};//businessType参数错误
public static final String[] PARAM_DTYPE_PARAM = {"MK102", "dType type is invalid"};//dType参数错误
public static final String[] PARAM_KTYPE_PARAM = {"MK103", "kType type is invalid"};//kType参数错误
public static final String[] PARAM_SIZE_PARAM = {"MK103", "SIZE type is invalid"};//size参数错误
- coin-usdt-btc