长尾猴量化 API
  1. 金融数据行情接口
  • 金融数据行情接口
    • 快速入门
    • 接口枚举值
    • 基础数据接口(免费)
      • 账户套餐查询
      • 期货主力对应真实合约(CN)
      • 美股期权链
      • 获取symbol列表
    • 美股财务数据
      • 新闻
      • 财报
      • 曾用名
    • A股财务及市场数据
      • 股票基础信息
      • 指数成分股
      • 强势股
      • 复权因子
      • 板块代码查询
      • 板块成分股
      • 资金流向
      • 涨停榜
      • 跌停榜
      • 报表-年报季报
      • 报表-资产负债表
      • 报表-现金流量表
      • 报表-利润表
      • 财务-主要指标
      • 财务-估值指标
      • 财务-市值指标
    • 技术指标-http
      • 指标indicator
    • K线行情-http
      • 获取最新N条k线historyN
      • 获取历史k线history
    • Tick行情(L1)-http/ws
      • 行情快照Snapshot
      • 最新K线Current
    • T&Q行情(深度)-ws
      • A股、基金等返回结构
      • cn期货5档返回结构
      • 美股/ETF返回结构
      • CME期货返回结构
      • 外汇返回结构
      • 加密币返回结构
  • 数据模型
    • Schemas
      • key
      • BaseResponse
      • File
      • ResponseEntityFileSystemResource
      • HistoryOrder
      • BaseResponseString
      • InputStream
      • URI
      • ResponseEntityResource
      • UserPermissionRequest
      • UserPackage
      • UserPermissions
      • BaseResponseListUserPermissions
      • BasicBarVO
      • OrderItem
      • PageBasicBarVO
      • BaseResponsePageBasicBarVO
      • BaseResponseListBasicBarVO
      • SymbolInfoVO
      • BaseResponseListSymbolInfoVO
      • TickBasicInfoVO
      • BaseResponseListTickBasicInfoVO
      • FinancialVO
  1. 金融数据行情接口

Tick行情(L1)-http/ws

快速开始#

1.
确认权限与订阅上限:GET https://rest.vvtr.com/v1/my/permissions?mobile={手机号}&apikey={apiKey}
2.
建立 WebSocket 连接(必须启用 permessage-deflate 压缩)
3.
每 50 秒发送文本 ping 保活,持续接收推送

接口说明#

协议类型: WebSocket(wss),URL 参数 apiKey 鉴权
连接限制: 每个 apiKey 仅允许维持 1 个有效连接
心跳机制: 文本 ping 续命 + Ping/Pong 探活,详见下方"心跳与连接探测"
推送范围: 仅盘中交易推送,不含集合竞价
压缩协议: 强制 permessage-deflate(RFC 7692)
握手必须携带 Sec-WebSocket-Extensions: permessage-deflate,否则返回 HTTP 400,不建立连接
协商结果统一为 permessage-deflate; server_no_context_takeover; client_no_context_takeover
400 响应示例:
{
  "code": 400,
  "msg": "WebSocket连接必须启用permessage-deflate压缩",
  "detail": "请使用支持RFC 7692的客户端,并在握手中提供兼容的Sec-WebSocket-Extensions",
  "required_extension": "permessage-deflate"
}

心跳与连接探测#

服务端 60 秒内未收到任何消息会自动断开连接。心跳分两种,作用不同,必须配合使用:
方式客户端动作服务端行为用途
续命心跳每 50 秒发送文本 ping刷新读超时与连接有效期,不回复保活,必须
探活(协议层)发送 WebSocket 协议 Ping 帧自动回复 Pong 帧检测连接与网络是否存活
探活(应用层)发送 {"type":"ping"}回复 {"type":"pong"}同上,适合 JSON 客户端
文本 ping 没有任何回复,客户端不应等待回复来判断连接状态
探活超时未收到 Pong / pong(建议 20 秒),应主动断开并重连
协议层 Ping 不会延长连接有效期,不能替代文本 ping 续命

订阅规则#

订阅在建立连接时通过 URL 参数 type、symbols 指定,连接后不支持动态订阅/退订
symbols 多个用 , 分隔;* 表示订阅该品种全部 symbols(需开通对应权限)
同时订阅多个品种时,symbols 用 [...] 分组并与 type 顺序一一对应:
type=11,22&symbols=[000001,600000],[AAPL,TSLA]
type=14(国内期货)支持交易所代码与主力/次主力/指数简写:
symbols=CZCE,8888(郑商所全部合约 + 商品指数)
单连接最多 100 个合约,或单个品种全部 symbols(以套餐 limit 为准)

请求#

wss://rest.vvtr.com/v1/connect?apiKey={apiKey}&type={type}&symbols={symbols}
参数类型必填说明
apiKeystring是你的 apiKey
typestring是品种类型代码,多个用 , 隔开,如 11,22
symbolsstring是证券代码,多个用 , 分隔,* 表示全部;多 type 时用 [a,b],[c,d] 分组且顺序与 type 一致

客户端示例(均已启用压缩)#

Python(websockets 库)#

Java(Java-WebSocket)#

wscat#

# 较新版本的 wscat(基于 Node ws)默认启用压缩
# 若连接返回 400,请先升级 wscat:npm install -g wscat@latest
wscat -c "wss://rest.vvtr.com/v1/connect?apiKey=abcdefg&type=11&symbols=*"

Go(gorilla/websocket)#

浏览器#

浏览器自动协商压缩,无需配置:

返回数据结构说明#

推送为对象数组,字段顺序固定:
[
  {
    "t": "2025-08-04 14:37:53:785",
    "s": "603602",
    "o": 15.86,
    "h": 15.91,
    "l": 15.58,
    "p": 15.66,
    "cV": 5447681,
    "cA": 85392549.0,
    "cP": 0,
    "tt": 1,
    "lV": 500,
    "lA": 7830.0,
    "iopv": 0.0,
    "quotes": [
      { "bP": 15.68, "bV": 3630, "aP": 15.69, "aV": 17100 }
    ]
  }
]
字段类型说明
tstring更新时间,精确到毫秒
sstringsymbol,证券代码
ofloatopen,日线开盘价
hfloathigh,日线最高价
lfloatlow,日线最低价
pfloatprice,最新价(集合竞价成交前为 0)
cVlongcumVolume,累计总成交量(日线)
cAfloatcumAmount,累计总成交额(日线)
cPintcumPosition,合约持仓量(仅期货,股票为 0)
ttinttradeType,交易类型(仅期货)1双开 2双平 3多开 4空开 5空平 6多平 7多换 8空换
lVintlastVolume,最新瞬时成交量
lAfloatlastAmount,最新瞬时成交额(郑商所不支持)
iopvfloat基金份额参考净值(仅基金)
qlistquotes 盘口,见下表

quotes#

字段类型说明
bPfloatbidP,买价
bVintbidV,买量
aPfloataskP,卖价
aVintaskV,卖量
股票提供买卖 5 档(list[0]~list[4]),期货提供买卖 1 档(list[0])
涨跌停时对应档位报价可能缺失(价格为 0、量为 0)

注意事项#

1.
🔔 心跳组合:文本 ping 每 50 秒续命(服务端不回复)+ 探活心跳检测死链,两者缺一不可,详见"心跳与连接探测"
2.
📌 订阅仅在连接时生效:如需更换订阅,请断开后用新参数重连(每个 apiKey 同时只允许 1 个连接)
3.
🛡️ 权限:超出套餐权限或 limit 上限时连接会被拒绝或断开,请先通过 /v1/my/permissions 确认
4.
🗜️ 压缩开关速查:Python websockets、Node ws、浏览器默认已开启;Go 必须设 EnableCompression=true;Java 必须使用 PerMessageDeflateExtension
5.
✅ 验证协商结果:连接成功后检查握手响应的 Sec-WebSocket-Extensions,应包含 permessage-deflate
修改于 2026-08-28 10:02:34
上一页
获取历史k线history
下一页
行情快照Snapshot