「美国 CPI 超预期了吗?EUR/USD 在公布之后怎么走?」这句话看起来像是在查一条新闻,实际要对齐三份数据:官方公布值、发布前的市场预期,以及以发布时间为起点的汇率行情。核心 CPI 和整体 CPI 可以给出不同的答案,发布后 5 分钟和 1 小时的走势也可能相反。 我做了 FX Context MCP,把这些查询做成 AI 客户端可以调用的工具。MCP(Model Context Protocol)负责把工具接到客户端,服务端负责查找事件、校验预期快照、计算价格变化,再把来源和数据覆盖情况一并返回。 架构设计 这张图展示工具接口和数据之间的关系。 AI 客户端通过 Streamable HTTP 连接 /mcp,按用户的问题选择工具。以 CPI 为例,get_event_context 返回各项指标的公布值、预期和预期差,get_market_reaction 返回指定货币对在各个窗口的收益率和区间高低点。客户端可以单独查其中一项,也可以把两份结果组合成一段回答。 同一场发布有一个事件 ID。 数据所属月份用来定位发布,实际发布时间用来对齐预期截点和行情窗口。以本文查询为例,事件工具返回的 eventId 与行情工具返回的 targetId 一致,客户端可以据此确认两份结果指向同一次发布。分开保存所属月份与发布时间,也让「8 月 CPI 在 9 月发布」这类情况在接口里表达得很清楚。 每个行情窗口有自己的覆盖状态。 工具固定提供 5 分钟、15 分钟、1 小时、4 小时和 24 小时的窗口定义,并返回已经计算的窗口和不可用窗口的原因。客户端可以展示已取得的价格变化,同时解释休市或数据缺失的窗口。 从一次 CPI 发布说起 以 2026 年 8 月美国 CPI 为例。这期数据在 9 月 11 日 12:30 UTC 发布,所以调用 get_event_context 时,referencePeriod 要传数据所属月份 2026-08。 ...
我如何用 OMC Ralph 搜索 Alpha:以 IBS 均值回归为例
我用 Claude Code 的 oh-my-claudecode(OMC) 插件跑了几轮量化研究。我的目标是让 Ralph 持续提出假设、写策略、跑回测,然后把每一次成功或失败留下来。最后选出的跨资产 IBS 候选,在覆盖 2016–2024 年的 2,264 个交易日里,扣费后年化收益为 12.51%,验证期为 8.86%。IBS 是已有的指标,这次研究要发现的是:它搬到新的 ETF 组合之后,什么样的入场、离场和仓位规则还能通过事先设定的检验? OMC Ralph 技能文档 我怎样给 Ralph 设任务 我先把资产范围、训练与验证切分、交易成本、比较基线和通过门槛写进研究简报。策略只提交目标仓位,统一由同一个引擎计算收益和成本。下面是根据第五轮简报整理的启动指令: /oh-my-claudecode:ralph 按 ROUND5_BRIEF.md 研究跨资产日线均值回归。 每个想法先写假设,只用 TRAIN 选参数,再实现一个策略文件。 每个文件跑一次 python -m lab.check,记录成绩与失败项。 最多 20 个策略文件。按事先写好的规则选择候选,汇报所有结果。 若没有候选通过,写明没有改善。独立留出评估由我执行。 Ralph 每轮先在 results/ideas.md 写下为什么可能有优势,再实现返回目标权重的 weights(data, ...)。python -m lab.selftest 检查工具链,python -m lab.check strategies/<idea>.py 才对策略评分。评分器把训练和验证的指标、参数、通过状态以及策略文件的哈希写到 results/checks.jsonl。它会看扣费后 Sharpe、相对等敞口买入持有的超额收益、剔除最佳十天后的结果,以及改动参数后表现是否还能过线。 可以把整个循环压成一行: 研究简报 → 记录假设 → 训练期选参数 → 实现仓位函数 → 固定规则评分 → 记录通过或失败 与 IBS 有关的研究轮次 轮次 核心想法 结果与下一步 1 · 开放搜索 试波动率择时、月末效应和 ETF 动量轮动。 30 个文件,0 个通过。后半轮的标的和参数受验证期结果影响,后来固定了资产池,并规定每个想法只正式评分一次。 3 · 改进日线 IBS 在固定 12 只美股 ETF 上测试入场阈值和离场逻辑。 20 个文件,16 个通过。选中 IBS < 0.12、最多持仓 7 日的版本。验证 Sharpe 从 0.91 升至 1.02,年化净收益从 9.18% 降至 8.66%。 4 · 改测分钟线 用 SPY 分钟线测试早盘均值回归、跳空回补和尾盘策略。 11 个文件,0 个通过。训练期最高 Sharpe 为 0.71。 5 · 跨资产迁移 在 16 只 ETF 上测试收紧 IBS 阈值、换离场规则和按波动率配仓。 10 个文件,5 个通过。按训练期 Sharpe 选中 IBS < 0.08、最多持仓 5 日、逆波动率配仓的版本。 从失败记录到 IBS 候选 IBS 衡量什么 IBS(Internal Bar Strength)=(收盘价 − 最低价)÷(最高价 − 最低价)。如果当天最低 100、最高 110、收盘 100.7,IBS 就是 0.07,收盘落在当天区间底部的 7% 处。这个位置只描述当天的价格区间,前一日收盘价没有参与计算。遇到最高价等于最低价的日线,代码把 IBS 记为缺失,当天不触发新的入场。这个指标在股票 ETF 上已有研究。 Pagonidis,《The IBS Effect》 ...