核心关键词:OKX API、行情接口、交易数据、永续合约、K 线、Tick、订单簿
无需登录、无需签名的公共接口,让开发者轻松调用 OKX 的实时行情、历史K线、订单簿深度与资金费率等核心数据。本指南将每一种“GET”请求提炼成可复制的代码片段,兼顾 Node.js 新手与量化老手。
极速起步:两条命令连接 OKX 行情
import { createExchange } from "./exchanges/exchange.js";
const okx = createExchange({
exchange: "okx",
authenticate: false, // 市场数据无需身份验证
label: "demo"
});把 authenticate 设为 false 就能立刻使用下文全部接口,降低测试门槛。
最新价 & 指数价:三大 Tick 接口对比
| 接口 | 英文名称 | 场景 | 示例参数 |
|---|---|---|---|
| 综合行情 | getTickers | 查看所有永续合约的最新成交价、24h 涨跌 | instType: "SWAP" |
| 单币行情 | getTicker | 实时监控 BTC 当前买一/卖一 | instId: "BTC-USD-SWAP" |
| 指数行情 | getIndexTickers | 获取标的指数,用于对冲或套利 | instId: "BTC-USDT" |
// 一键拉取所有永续合约快照
const tickers = await okx.getTickers({ instType: "SWAP" });深度与流动性:订单簿 Bash 级调用
做市、跟单或预测短期波动,都需要完整深度档位。
const depth = await okx.getOrderBook({
instId: "BTC-USDT",
sz: 400 // 深度档位数,最大 400
});
console.log(depth.asks.slice(0, 5), depth.bids.slice(0, 5));- bids、asks 均为数组,索引 0 为最优价。
- 在大行情前,请先监测价差变化,滑点当斩立决。
K 线 4 件套:历史、标记价、指数蜡烛一次取
| 接口名 | 典型粒度 | 用途 |
|---|---|---|
getCandles | 1m~1M | 经典OHLCV |
getCandleHistory | 同上 | 一次性拉历史全量,回测必备 |
getIndexCandles | 1m~1M | 指数K线,验证永续溢价 |
getMarkPriceCandles | 1m~1M | 标记价格K线,计算资金费率时参考 |
// 近 300 根 5m K 线
const kline = await okx.getCandles({
instId: "BTC-USDT-SWAP",
bar: "5m",
limit: 300
});撮合记录 & 大宗行情:从逐笔到秒级快照
1. 逐笔成交 Trade Feed
const trades = await okx.getTrades({ instId: "ETH-USD" });返回 时间戳、价格、成交量、方向,可直接写高频回测脚本。
2. 历史成交补齐
const tradesHistory = await okx.getTradesHistory({
instId: "ETH-USDT",
limit: 1000
});3. 大宗交易(Block Trade)
- 大单吃单不必盯盘口,调用
getBlockTickers可一键扫“异常强平”与“巨鲸建仓”。
const giants = await okx.getBlockTrades({ instId: "BTC-USDT" });宏观数据:24h 平台总成交量 & 预言机
- 平台总成交量适合写日报、周报,接口
get24HrPlatformVolume()无需参数。 - 预言机价格
getOracle()提供 BTC、ETH 多链喂价,可对比不同链上 DeFi。
const vol = await okx.get24HrPlatformVolume();
console.log(`今日期权+现货+永续总量:${vol.volUsd}`);汇率与指数成分
getExchangeRate():一键获取 USDC/USDT、USD/JPY 等法币汇率。getIndexComponents():查看指数内含资产及权重,对冲篮子、指数套利必备。
const components = await okx.getIndexComponents({ index: "BTC-USD" });
components.forEach(c => console.log(`${c.ccy}: ${c.weight}%`));常见问题 FAQ
Q1:调用频率限制是多少?
A:公共行情端点统一 20 次/2 秒,超出返回 429。建议在本地维护 1 秒级缓存。
Q2:K 线粒度最短可以到什么?
A:最短可设 "1m",完整列表见官方文档,部分老币对无 1s 粒度。
Q3:是否需要签名?
A:所有市场数据接口均无需 key/secret,将 authenticate: false 即可无门槛运行。
Q4:为什么拿到的深度只有 1 档?
A:getOrderBook 的 sz 默认为 20,需在参数里显式设为 400。
Q5:如何知道某标的能否开仓?
A:市场数据只展示价格与成交,如需交易限制(杠杆、限额),需切换到需要认证的接口。
Q6:如何拿到资金费率?
A:使用 getTickers 会得到 fundingRate 字段,或者单独用 getFundingRateHistory(需登录)。
实战小结
- tick → depth → klines 三步构成 90% 量化策略瓶颈。
- 通过
limit和bar参数灵活裁剪历史长度,节省带宽与 IO。 - 实时行情 + 历史数据库双轨同步,才能既快又稳。
将以上 18 套接口封装成自己的“行情网关”,立刻体验毫秒级市场脉搏!