1. 快速概览:1 秒级 K 线推送
通过 WebSocket 行情 API 的 dex-token-candle1s 频道,你可以在 Dex 交易中体验到最高 1 秒的推送频率。开发者只需一条长连接,即可用最低延迟捕捉“价格波动”、“交易量突增”、“买卖盘异动”三大实时信号,从而更快响应 行情价格 变化。
2. 如何开始:连接、订阅、解析
2.1 建立 WebSocket 连接
- 统一入口:
wss://ws.okx.com:8443/ws/v5/public - 保持心跳:每 30 秒发送
{"op":"ping"},确保服务器不断开长连接。
2.2 核心参数拆解
| 关键词 | 含义 | 示例 |
|---|---|---|
| channel | 频道名,决定 K 线周期 | dex-token-candle1s、dex-token-candle1D |
| chainIndex | 链 ID,1=Ethereum | "1" |
| tokenContractAddress | 合约地址 | "0xa0b86a33e6776808dc56eb56d2d81cd1c7069981"(小写) |
2.3 订阅消息模板
{
"op": "subscribe",
"args": [
{
"channel": "dex-token-candle1s",
"chainIndex": "1",
"tokenContractAddress": "0xa0b86a33e6776808dc56eb56d2d81cd1c7069981"
}
]
}服务器立即返回:
{
"event": "subscribe",
"arg": { "channel":"dex-token-candle1s",... },
"code":"0",
"msg":""
}2.4 推送数据一览
- ts:开始时间(毫秒级 Unix 时间戳)
- o / h / l / c:开盘后 1 秒内的高低点与收盘
- vol / volUsd:两种单位方便不同策略
- confirm=0 时,可据实时数据做插针风控;confirm=1,则认为这根 K 线最终形成
3. 频道全部粒度速查
15 种常见、10 种 UTC 对齐周期任你选
关键词:行情价格 API、DEX API、秒级 K 线、WebSocket、实时行情
| 周期 | 粒度 |
|---|---|
| 秒级 | 1s |
| 分钟级 | 1m,3m,5m,15m,30m |
| 小时级 | 1H,2H,4H,6H,12H |
| 日级 | 1D,2D,3D,5D |
| 周级 | 1W |
| 月级 | 1M,3M |
UTC 对齐版(结尾带 utc)适用于量化回测与复盘,可避免夏令时误差。
4. 实战示例:双链监控
假设项目方需要同时监听 Ethereum(主网) 和 Polygon(链 ID = 137)上同一 Token 的 1 分钟 K 线:
{
"op": "subscribe",
"args": [
{
"channel": "dex-token-candle1m",
"chainIndex": "1",
"tokenContractAddress": "0x6b175474e89094c44da98b954eedeac495271d0f"
},
{
"channel": "dex-token-candle1m",
"chainIndex": "137",
"tokenContractAddress": "0x8f3cf7ad23cd3cadbd9735aff958023239c6a063"
}
]
}在代码中监听 event 类型:
event=error立即重连,避免数据丢失;- 出现
confirm=1时,计算上根 K 线的平均成交额(volUsd 均值策略)。
5. 错误码对照与排查思路
| 常见错误码 | 含义 | 解决 |
|---|---|---|
30001 | 参数为空 | 检查 JSON 合法性与必填字段 |
30007 | 未知 Token | 确认合约地址是否已收录到 DEX API |
30012 | 限频 | 单 IP 每秒订阅 ≤ 100 次 |
30014 | 断开 | 区间 60 s 无心跳,自动重连即可 |
6. FAQ:开发者最关心的 5 个问题
Q1:WebSocket 的推送能保证序号连续性吗?
A:字段 ts 作为唯一时间戳,不保证编号递增,但同周期内 ts 不会重复,用于矫正乱序即可。
Q2:如何火把大量的 1 秒数据降级成 5 秒?
A:在前端做滑动时间窗口,取每 5 条确认 K 线的数据聚合即可(高开低收 vol 求和)。
Q3:为什么有时会先收到 confirm=0 后又再收到一次 0?
A:这是服务器提前推送的“部分成交帧”,官方称 预推送设计,好处是让你得到 “快 + 实时” 的双重体验;等返回 confirm=1 才真正完结。
Q4:可以同时监听 30 个以上频道吗?
A:可以,但请分批发送;集中一次性发送>500 条 subscribe 会被限频。
Q5:如果想用 Python 的 async 版本,有什么样例?
A:参考官方 GitHub 的 examples/async_depx_ws_kline.py,利用 websockets 库配合 asyncio.Queue 在 100 行以内即可跑通实时策略。
7. 小结与下一步
你现在已掌握 行情价格 API 的全部细节:建立 WebSocket 长连接、动态订阅 DEX API 里的 秒级/分钟级 K 线、快速解析高并发推送,并通过 FAQ 扫清常见陷阱。
把这套链路接入你的个人量化脚本或产品面板,即可获得第一手行情价格、低延迟信号与老练用户的青睐。