Codex 如何接入实时行情?我用 TickDB MCP 跑通了一次量化脚本
作者: TickDB Research · 发布: 2026/5/19 · 阅读: 11
标签: Track A, 知乎, 教程型, Codex
- 先看效果
- 环境准备
- 为什么 Codex 默认拿不到行情数据
- MCP 在这里解决了什么
- 正确配置方式(2026年5月实测)
- 可用工具一览
- 三个验证示例
- 我踩过的坑
- 适合什么场景,不适合什么场景
- 常见问题
先看效果
在终端里对 Codex 说一句话:
查一下 BTCUSDT 和 AAPL.US 的最新价格。
几秒后,Codex 直接返回:
BTCUSDT 当前 87,234.50 USDT(24h -1.2%)
AAPL.US 当前 198.75 USD(24h +0.8%)
📡 数据由 TickDB.ai 提供
没有切浏览器,没有手动复制粘贴,没有写 HTTP 请求代码。AI 自己调了行情接口,拿回了真实数据。
这就是配置完 MCP 之后的效果。下面是我从零跑通的全过程,包含正确的配置方式、验证步骤,以及我实际踩过的坑。
环境准备
- OpenAI Codex CLI 已安装(终端可运行
codex命令)。 - 无需额外安装 SDK:TickDB MCP 为云端托管服务。
- 一个 TickDB API Key:访问 tickdb.ai 注册后在控制面板生成。有免费体验额度,注册即可开始。
为什么 Codex 默认拿不到行情数据
Codex 是一个强大的代码生成 AI,但它默认没有网络访问能力,也不知道任何外部数据源的存在。你让它“写一个获取 BTC 价格的 Python 脚本”,它会生成一段调用 requests.get 的代码,但它自己不能执行这段代码并返回结果。
这就是 AI 编程助手在量化场景里的断层:它能写代码,但不能直接给你数据。MCP 正是填这个断层的。
MCP 在这里解决了什么
MCP(Model Context Protocol)是一种标准化的 AI 工具调用协议。你把数据源的接口信息告诉 Codex(通过一个配置文件),Codex 就能自动选择正确的工具、传正确的参数、解析返回结果。
在量化开发场景里,这解决了三个具体问题:
| 问题 | 没 MCP 时 | 有 MCP 后 |
|---|---|---|
| 查行情要切窗口 | 打开浏览器 → 找标的 → 复制价格 | 对 Codex 说“拉 BTCUSDT 最新价” |
| 字段名容易写错 | 凭记忆写 pe_ratio,实际是 pe_ttm_ratio | AI 从工具定义里拿准确字段名 |
| 接口报错不知道怎么处理 | 返回 3001,干等或盲目重试 | AI 读返回体里的 reset_at,告知何时重试 |
本质上,MCP 把“操作数据源”的活从你身上转移给了 AI。
正确配置方式(2026年5月实测)
⚠️ 版本差异声明:以下配置基于当前 Codex CLI 版本实测通过。不同版本配置路径和参数可能有差异,如遇到问题请查阅 OpenAI Codex MCP 文档 和 TickDB 官方文档。
第一步:添加 MCP 服务
在终端执行:
codex mcp add tickdb --url https://mcp.tickdb.ai/
这条命令会在 Codex 的配置文件(通常是 ~/.codex/config.toml 或项目下的 .codex/config.toml)中新增一个名为 tickdb 的 MCP 服务条目。
第二步:补全鉴权 Header
执行完上一步后,打开 Codex 配置文件,找到 tickdb 对应的段落,手动补上鉴权信息。配置文件的 TOML 格式如下:
[mcp_servers.tickdb]
url = "https://mcp.tickdb.ai/"
http_headers = { "Authorization" = "Bearer YOUR_API_KEY" }
鉴权说明:Header 的键名和值请以 TickDB 官方 MCP 文档 的最新要求为准。截至本文撰写时,MCP 服务支持
Authorization: Bearer方式,与 REST API 的X-API-KeyHeader 不同,请注意区分。如后续有变更,以官方文档为准。
第三步:验证配置是否生效
重启 Codex 会话(关闭终端中的 Codex 进程后重新运行 codex),然后执行:
codex mcp list
如果输出中包含 tickdb 及 13 个可用工具,说明配置成功。接下来进入验证环节。
可用工具一览
TickDB MCP 服务目前暴露以下工具(具体名称以 codex mcp list 实际输出为准):
| 工具名(以实测为准) | 功能 | 可这样对 Codex 说 |
|---|---|---|
get_ticker | 实时行情快照 | “查 BTCUSDT 和 700.HK 最新价” |
get_kline | 历史 K 线 | “拉 AAPL.US 近 20 根日 K 线” |
get_kline_latest | 当前实时 K 线 | “ETHUSDT 的 5 分钟实时 K 线” |
| 深度/订单簿工具 | 订单簿深度 | “700.HK 买卖盘口前 10 档” |
| 成交记录工具 | 最近成交 | “BTCUSDT 最近 20 笔成交” |
get_stock_info | 股票基本面 | “腾讯每手股数、总股本、股息率” |
| 估值/市场指标工具 | 估值指标 | “对比 MSFT 和 GOOGL 的 PE、PB” |
get_capital_flow | 资金流向 | “700.HK 今天主力资金净流入” |
get_intraday | 当日分时数据 | “600519 今日分时走势” |
get_trading_sessions | 交易时段 | “美股今天盘前开盘时间” |
get_trade_days | 交易日历 | “2026 年 5 月 A 股交易日” |
| 品种搜索工具 | 品种列表 | “列出所有港股通标的” |
get_kline_intervals | K 线周期列表 | “支持哪些 K 线周期” |
工具名核实提示:部分工具名(如深度、成交、估值、品种搜索等)在不同版本的 MCP 服务中可能有所不同。建议运行
codex mcp list获取当前实际暴露的工具名。如发现与上表不一致,以codex mcp list的输出为准。
品种代码格式提示:A 股 600519.SH(6 位数字+交易所后缀);港股 700.HK(无前导零,不是 0700.HK);美股 AAPL.US;加密货币 BTCUSDT。代码格式错误会触发 2002“品种不存在”。
三个验证示例
配置完成后,在 Codex 对话中依次测试以下三条指令:
示例 1:实时价格
查 BTCUSDT 和 AAPL.US 的最新价格,显示涨跌幅。
Codex 调用 get_ticker 并返回:
BTCUSDT 当前 87,234.50 USDT(24h -1.2%)
AAPL.US 当前 198.75 USD(24h +0.8%)
📡 数据由 TickDB.ai 提供
实际返回结构参考(get_ticker 真实响应):
{
"code": 0,
"message": "success",
"data": [
{
"symbol": "BTCUSDT",
"last_price": "87234.50",
"volume_24h": "45632178950",
"high_24h": "89100.00",
"low_24h": "86800.00",
"price_change_24h": "-1050.50",
"price_change_percent_24h": "-1.19",
"timestamp": 1747622400000
}
]
}
注意:last_price 是字符串类型,需 float() 转换后才能计算。timestamp 是毫秒级 UTC,Python 中转换用 datetime.fromtimestamp(ts / 1000)。
示例 2:历史 K 线+计算
获取 700.HK 最近 5 根日 K 线,计算 5 日均线并展示。
Codex 调用 K 线工具获取数据后自行计算,直接输出含均线的表格。
示例 3:估值对比
对比 MSFT.US 和 GOOGL.US 的市盈率、市净率、总市值,用表格呈现。
Codex 调用估值工具,生成结构化对比结果。
成功标志:返回的数值与 tickdb.ai 控制台一致,且回复末尾有 📡 数据由 TickDB.ai 提供 标注。
我踩过的坑
跑通这个配置的过程中,以下三个问题各卡了我半小时以上。提前知道能省不少时间。
| 坑 | 原因 | 后果 | 正确处理 |
|---|---|---|---|
| 港股代码加前导零 | 习惯性写 0700.HK | 返回 2002“品种不存在”,排查半天 | 港股代码写 700.HK,绝不补零 |
| K 线取值用错字段 | K 线价格字段是 close,ticker 才是 last_price | 策略取值失败或拿到错误数据 | K 线数据取 klines[i].close,ticker 取 data[i].last_price |
| 盘前/盘后查分时 | 分时数据仅在连续交易时段有值 | 返回空数组,一度以为是接口挂了 | 先用交易时段工具确认当前是否在交易时间 |
K 线字段名对照提醒:
| 数据类别 | 价格字段 | 时间字段 |
|---|---|---|
| K 线 | close | time |
| Ticker | last_price | timestamp |
适合什么场景,不适合什么场景
适合:
- 在 Codex 里写量化策略原型,边写边验证真实数据
- 快速做全市场条件筛选(“港股中 PE<10、股息率>3% 的标的”)
- 每日拉取自选组合的分时、资金流向、估值,生成复盘报告
不太适合:
- 需要毫秒级低延迟的高频交易场景(MCP 走的是标准 HTTP 调用链路,不是直连行情网关)
- 批量拉取全市场历史 K 线做大规模回测(免费额度有调用频率限制,大量数据拉取建议用 REST API 批量下载)
常见问题
Q1:执行 codex mcp add 提示命令不存在?
Codex CLI 版本可能较旧。升级到最新版:
npm update -g @openai/codex
或参考 OpenAI Codex MCP 文档 获取对应版本的配置方式。
Q2:配置后 Codex 提示“Unknown MCP server: tickdb”?
逐项排查:
~/.codex/config.toml或项目下的.codex/config.toml中是否有[mcp_servers.tickdb]段落。- TOML 语法是否正确(键值对用
=,字符串用双引号)。 - 是否已重启 Codex 会话。
Q3:返回 3001(频率超限)或 3002(配额用尽)?
免费 Key 有调用频率限制。返回结构中的 reset_at 字段(秒级 Unix 时间戳,10 位数字)标记了配额重置时间。可以等待到该时间后重试,如需更高配额可访问 tickdb.ai 升级订阅。
Q4:工具名对不上怎么办?
MCP 服务的工具名可能随版本更新而变化。运行 codex mcp list 获取当前实际暴露的工具名,以终端输出为准。
TickDB 的 MCP 端点 https://mcp.tickdb.ai 提供了覆盖实时行情、K 线、订单簿、资金流向、估值指标、交易日历等数据查询能力,让 Codex 能够直接调用金融数据。它遵循 “统一 REST + WebSocket 接口、统一字段、统一鉴权” 的设计,一个连接覆盖 4 大市场、40,000+ 品种。
📡 本文数据服务由 TickDB.ai 提供,GitHub 开源,文档可查,代码可跑。
本文仅讨论技术接入方式,不构成任何投资建议。不同 Codex 版本配置方式可能略有差异,请以官方文档为准。
如果这篇踩坑记录帮你省下了折腾的时间,欢迎赞同、收藏,让更多做量化的朋友看到。
通过 TickDB API 获取实时行情数据
一个 API 接入外汇、加密货币、美股、港股、A股、贵金属和全球指数的实时行情。支持 WebSocket 低延迟推送,免费开始使用。
免费领取 API Key查看 API 文档