# 行情推送接入协议
# 版本说明
修改时间 | 版本 | 修改描述 |
---|---|---|
2019.12.30 | v1.0.0 | 初始化文档 |
2020.01.19 | v1.0.0 | 新增买卖盘推送说明 |
2020.02.26 | v1.0.0 | 实时行情新增字段 |
# 概述
盈立智投开放平台通过websocket与客户端保持长连接,从而提供实时行情推送服务,本文档为websocket长连接接入指引。
# 1. 接入地址
生产环境接入地址
wss://open-hz.usmartsg.com:8443/wss/v1
测试环境接入地址
wss://open-hz-uat.yxzq.com/wss/v1
接入协议
websocket
数据交互格式
json
# 2. 接入步骤
- 鉴权
- 心跳维持
- 订阅行情/取消订阅
- 接收推送
# 2.1 鉴权
客户端鉴权请求
{
"op": "auth",
"ts": 1575531634, //unix 时间戳
"reqId": 666666, //unix 请求序列号,
"accessToken": "4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o=" // 登录成功之后返回的token
}
服务器鉴权应答
{
"op": "auth",
"ts": 1575531634, //unix 时间戳
"reqId": 666666, //unix 请求序列号
"code": 0, //状态码 成功
"msg": "success" //状态描述
}
# 2.2 心跳维持
服务器ping
{
"op": "ping",
"ts": 1575531634, //unix 时间戳
"reqId": 666666 //unix 请求序列号
}
客户端pong
{
"op": "pong",
"ts": 1575531634, //unix 时间戳
"reqId": 666666 //unix 请求序列号
}
# 2.3 订阅行情
客户端订阅请求
{
"op": "sub",
"ts": 1575531634, //unix 时间戳
"reqId": 666666, //unix 请求序列号
"topiclist": ["$type.$market.$code",...] // 示例:["rt.hk.00700", "tk.hk.00700","ob.hk.00700"]
}
服务端订阅应答
{
"op": "sub",
"ts": 1575531634, //unix 时间戳
"reqId": 666666, //unix 请求序列号
"code": 0, //状态码 成功
"msg": "success" //状态描述
}
# 2.4 取消订阅
客户端取消订阅请求
{
"op": "unsub",
"ts": 1575531634, //unix 时间戳
"reqId": 666666, //unix 请求序列号
"topiclist": ["$type.$market.$code",...] // 示例:["rt.hk.00700", "tk.hk.00700","ob.hk.00700"]
}
服务端取消订阅应答
{
"op": "unsub",
"ts": 1575531634, //unix 时间戳
"reqId": 666666, //unix 请求序列号
"code": 0, //状态码 成功
"msg": "success" //状态描述
}
# 2.5 行情推送
订阅成功之后,服务端会主动推送实时行情
{
"op": "update",
"topic": "$type.$market.$code", //内容所属topic
"data": {} //更新内容,base64编码,根据实时,tick等具体业务定
}
# 3. 推送数据结构
# 3.1 实时行情
实时行情响应字段说明
参数名 | 类型 | 说明 |
---|---|---|
market | string | 市场标识 |
symbol | string | 证券代码 |
latestPrice | double | 最新价 |
open | double | 开盘价 |
low | double | 最低价 |
close | double | 收盘价 |
high | double | 最高价 |
latestTime | int64 | 最近行情时间 |
preClose | double | 昨收价 |
turnOver | double | 总成交额 |
volume | int64 | 总成交量 |
bidPrice | double | 买一价 |
bidSize | int64 | 买一量 |
askPrice | double | 卖一价 |
askSize | int64 | 卖一量 |
upLimit | double | 涨停价 |
downLimit | double | 跌停价 |
qtyUnit | double | 实时价差 |
trdStatus | int32 | 证券状态,具体参见下方的证券状态说明 |
实时响应示例:
{
"market": "sz",
"symbol": "000001",
"latestTime": 20191226103118000,
"latestPrice": 16.43,
"open": 16.34,
"close": 0,
"high": 16.48,
"low": 16.34,
"preClose": 16.3,
"volume": 11858618,
"turnOver": 194666461.75,
"askPrice": 16.43,
"askSize": 8103,
"bidPrice": 16.42,
"bidSize": 48300,
"trdStatus": 6
}
# 3.2 tick行情
tick响应说明
参数名 | 类型 | 说明 |
---|---|---|
seq | int32 | 行情序号 |
time | int64 | 行情时间 |
price | double | 价格 |
volume | double | 成交量 |
direction | double | 买卖方向, 0: 默认,1:买,2:卖 |
trdType | int64 | 逐笔类型,港股所特有,数值与类型之间的对应关系为:4:P 22:M 100:Y 101:X 102:D 103:U |
tick响应示例:
{
"market": "sz",
"symbol": "000002",
"seq": 1,
"time": 20191226103118000,
"price": 31.25,
"volume": 4600,
"direction": 2,
"trdType": 0
}
# 3.3 买卖盘
买卖盘说明
参数名 | 类型 | 说明 |
---|---|---|
bidPrice | double | 买盘价 |
bidVolume | int64 | 买盘量 |
bidOrderCount | int64 | 买委托订单个数 |
askPrice | double | 卖盘价 |
askVolume | int64 | 卖盘量 |
askOrderCount | int64 | 卖委托订单个数 |
响应示例:
[
{
"bidPrice": 9.31,
"bidVolume": 12000,
"bidOrderCount": 5,
"askPrice": 9.32,
"askVolume": 21600,
"askOrderCount": 3
}
]
# 4. 常见错误码定义
值 | 说明 |
---|---|
0 | 成功 |
800001 | 鉴权失败 |
800002 | 参数错误 |
800003 | 内部错误 |
800004 | 订阅/取消订阅topic超限 |
800005 | 非法请求 |
800006 | token正在使用中 |
800007 | topic格式错误 |
800008 | token被占用 |
# 5. 接口限制
- 订阅请求限制每秒最多能订阅10个topic
- 订阅请求限制最大订阅topic数为10
- 取消订阅限制每秒最多能取消订阅10个topic
# 6. 市场标识
值 | 说明 |
---|---|
hk | 香港市场 |
us | 美股市场 |
sh | 上海市场 |
sz | 深圳市场 |
# 7. 行情类型
值 | 说明 |
---|---|
rt | realtime, 实时行情 |
tk | tick, 逐笔成交 |
ob | orderbook, 买卖盘 |
# 8. 证券状态说明
取值 | 说明 |
---|---|
0 | 未知 |
1 | 停牌 |
2 | 港股波动中断 |
3 | 未上市 |
4 | 暂停上市(A股) |
5 | 退市 |
6 | 交易中 |