量化开发人员如何使用 Claude 搞定量化交易(附表格)
2026/8/6 5:10:08 网站建设 项目流程
写于 2026 年 8 月。文中所有模型、价格、基准数据均截至 2026 年 8 月初核对,AI 这行半年就是一代,读到本文时请自行验证时效性。
免责声明:本文只讨论研发工程方法,不构成任何投资建议。文中所有收益、夏普数字均为示例或公开报道引用,不代表任何策略的实盘表现。

先说结论,省得你翻到底

我在量化和编程这行做了快十年,从 CTA 手工调参一路做到 A 股中低频多因子的全流程工程化。过去一年半,我把 Claude 深度接进了自己的研发流水线。结论只有一句:

Claude 不会给你 alpha,它给你的是杠杆。

杠杆的意思是:你原来一周能验证 3 个想法,现在能验证 15 个。但如果你的想法本身是垃圾,你只是更快地验证了 15 个垃圾——而且因为跑得快、报告漂亮,你更容易把过拟合的曲线当成信号。

考虑到国内订阅claude确实有点困难,可以参考一下这里:claudemax.shop

这篇文章讲的就是:怎么把这个杠杆架在正确的支点上


一、2026 年 8 月,你手上有哪些牌

先把工具盘清楚。很多人还停留在”打开网页版聊天问它写个策略”的阶段,那是在用一把手术刀削苹果。

现在 Anthropic 的模型分四档,价格和定位差异很大:

几个关键点:

  • Claude Opus 5(2026 年 7 月下旬发布)是目前复杂 agentic 编码和企业级工作的主力,1M 上下文,知识截止到 2026 年 5 月——这一点对量化很重要,它知道最近的库版本和 API 变更。
  • Claude Fable 5是能力更强的一档,适合”扔一个大任务进去让它自己跑两小时”的场景。贵一倍,别用它做日常。
  • Claude Sonnet 5是性价比之王,尤其是它的优惠价窗口(10)到 2026 年 8 月 31 日结束。日常写代码 80% 的活它就够了。
  • Claude Haiku 4.5用来干”读 5000 行回测日志找出哪根 K 线出了 NaN”这种脏活,一分钱一分货。

除了模型本身,真正改变工作方式的是外围工具层

工具量化场景下的用法
Claude Code终端里的 agent,直接读写你的因子库、跑回测、看报错。核心生产力工具
Agent Skills把”我们团队怎么写一个因子”沉淀成 SKILL.md,下次不用重新解释
Subagents独立上下文的子 agent,用来并行跑”数据质检”“过拟合审查”这类隔离任务
Hooks生命周期钩子,用确定性脚本兜底。PreToolUse 是拦截危险操作的最佳位置
MCP把行情源、数据库、回测引擎标准化接进来

Anthropic 在 2026 年 5 月 5 日还发了一批面向金融机构的 agent 模板(pitchbook 生成、KYC 筛查、财报审阅等),打包了 skills、connectors 和 subagents,能在 Claude Cowork 或 Claude Code 里直接跑。这批模板本身偏投行卖方场景,但它的工程结构值得抄——把领域知识拆成 skill、把数据源拆成 connector、把审查拆成 subagent,这个三层结构套到量化研发上完全成立。


二、Claude 在哪一环真正省时间

这是我认为最值得讲的一张图。同样是”用 AI”,用在不同环节的回报率差了 5 倍以上。

分环节说一下我的实际体感:

提效最猛的三个环节

1. 数据接入与清洗(约 4.5x)

这是最没有技术含量、最耗时间的活。”把这个 tick 数据按 5 分钟重采样,处理集合竞价,剔除涨跌停无法成交的样本,对齐复权因子”——这种活 Claude 一次成型的概率非常高,而且它会主动问你除权除息怎么处理。

2. 绩效归因与可视化(约 6x)

我的最高提效环节。以前写一套完整的绩效报告(分年度收益、回撤曲线、换手率、行业暴露、Barra 归因、IC 衰减图)要一天,现在半小时。因为这部分有标准答案,错了一眼能看出来。

3. 策略研报撰写(约 5.5x)

把回测结果丢给它,让它写成给投委会看的文档。注意:它写的是描述,不是判断。判断必须你自己下。

提效有限但风险最高的三个环节

参数寻优、组合优化、因子逻辑创新——这三个我建议你把 AI 当成”结对编程的实习生”而不是”自动驾驶”。

原因很简单:这三个环节的错误不会报错。回测代码写错了会崩,参数选错了不会崩,它会给你一条特别漂亮的净值曲线。

我踩过的最惨的一个坑:让 Claude 实现一个”动态调整持仓周期”的逻辑,它写的代码里用了df.rolling(20).mean()但没有.shift(1),导致因子值里混进了当日收盘价。回测夏普 3.8,我兴奋了半天,第二天复核才发现是前视偏差。

这类错误 AI 自己检查不出来,因为代码在语法和逻辑上都是”对”的


三、工程化配置:把它从聊天机器人变成流水线

下面是干货。这套配置我用了大半年,基本定型了。

3.1 CLAUDE.md:一次写好,永久生效

CLAUDE.md放在项目根目录,Claude Code 每次会话都会自动加载。这是投入产出比最高的一个文件。

我的量化项目模板大致长这样:

# 项目:A股中低频多因子研究框架 ## 交易约束(任何代码必须遵守) - 市场:A股,T+1,无融券做空 - 涨跌停:主板 ±10%,创业板/科创板 ±20%,ST ±5% - 涨跌停板不可成交:开盘价 == 涨停价时买入订单必须被拒绝 - 双边成本:佣金 0.025%(单边,最低 5 元)+ 印花税 0.05%(卖出单边) + 冲击成本按成交额 0.05% 估计,合计双边约 0.13% - 停牌股票:持仓保留,不参与调仓,权重顺延 ## 数据约定 - 所有价格字段默认为**后复权**,字段名 `close_hfq` - 财务数据必须使用 `ann_date`(公告日)而非 `report_date`(报告期)对齐 - 因子值在 T 日收盘后计算,T+1 开盘执行,代码中必须体现 shift(1) ## 代码规范 - 因子函数签名统一为 `def factor_xxx(data: pd.DataFrame) -> pd.Series` - 禁止在因子函数内部调用任何 IO - 所有回测必须走 `backtest/engine.py` 的 `run()`,禁止手写循环 - 新因子必须附带 `tests/test_factor_xxx.py`,至少覆盖前视检查 ## 绝对禁止 - 禁止使用未来数据:任何 rolling/expanding 计算后必须 shift(1) - 禁止在训练集上做参数选择后直接汇报样本内结果 - 禁止用当前成分股列表回溯历史(幸存者偏差) - 禁止修改 `data/raw/` 下的任何文件

这个文件的价值在于:你不用在每次对话里重复”记得 A 股是 T+1”。更重要的是,当 Claude 写出违反约束的代码时,你可以直接说”看 CLAUDE.md 第 3 条”,它会自己改。

3.2 Skill:把团队方法论固化下来

Skill 是一个文件夹,里面有SKILL.md加可选的脚本资源。Claude 每次会话只读描述,匹配到任务时才加载正文——所以你可以写得很详细而不担心污染上下文。

我建了一个叫factor-review的 skill,专门做因子审查:

--- name: factor-review description: 审查一个新因子的实现代码,检查前视偏差、幸存者偏差、 过拟合风险、极值处理和行业中性化。当用户提交新因子代码、 要求 review 因子、或回测结果异常优秀时使用。 --- # 因子审查清单 按顺序执行以下检查,每一项都必须给出「通过 / 不通过 / 需人工确认」的明确结论。 ## 1. 前视偏差(Look-ahead Bias) - [ ] 所有 rolling / expanding / ewm 计算后是否 shift(1)? - [ ] 财务数据是否用 ann_date 对齐?用 report_date 直接判不通过 - [ ] 是否使用了当日 close 计算信号并在当日成交? - [ ] 标准化/中性化时的截面统计量是否只用了截面内数据(不跨时间)? ## 2. 幸存者偏差 - [ ] 股票池是否为**历史时点**的成分股,而非当前成分股? - [ ] 是否包含了已退市股票的历史数据? ## 3. 过拟合信号(红旗清单) 以下任一出现,必须标记为高风险并要求走 walk-forward 验证: - 样本内夏普 > 3.0 - 因子有超过 3 个可调参数 - 参数在小范围变动时绩效剧烈变化(缺乏参数高原) - 回测区间不足 3 年,或未覆盖至少一次完整牛熊 ## 4. 极值与缺失 - [ ] 是否做了 winsorize(推荐 MAD 3 倍或分位数 1%/99%)? - [ ] NaN 是否被静默填充为 0?(这会把缺失当成中性信号,通常是错的) - [ ] 停牌、ST、上市不满 60 日的样本是否剔除? ## 5. 输出格式 最后输出一个表格,列出每项结论,并给出**是否建议进入下一阶段验证**的明确判断。 不要为了让用户高兴而弱化风险结论。

最后那句”不要为了让用户高兴而弱化风险结论”很关键。模型天然有讨好倾向,你不明确要求,它容易把”中等风险”说成”整体不错,注意一下 XX 就好”。

3.3 Hook:模型靠不住的地方,用脚本兜底

Skill 是”我希望它这么做”,Hook 是”它必须这样”。PreToolUse钩子在每次工具调用前执行,退出码 2 表示拒绝这次调用。

我用它做两件事:

#!/bin/bash # .claude/hooks/pre_tool_use.sh # 1. 保护原始数据目录 2. 拦截明显的前视偏差写法 INPUT=$(cat) TOOL=$(echo "$INPUT" | jq -r '.tool_name') # 任何试图写入 data/raw 的操作,直接拒绝 if echo "$INPUT" | jq -r '.tool_input.file_path // ""' | grep -q "data/raw/"; then echo "拒绝:data/raw/ 为只读原始数据目录" >&2 exit 2 fi # 写入因子代码时,扫描高危模式 if [ "$TOOL" = "Write" ] || [ "$TOOL" = "Edit" ]; then CONTENT=$(echo "$INPUT" | jq -r '.tool_input.content // .tool_input.new_string // ""') # rolling 后紧跟 mean/sum 且同一行没有 shift,标记警告 if echo "$CONTENT" | grep -Pq '\.rolling\([^)]*\)\.\w+\((?![^)]*\))[^\n]*$' \ && ! echo "$CONTENT" | grep -q 'shift('; then echo "警告:检测到 rolling 计算但未见 shift(),请人工确认是否存在前视偏差" >&2 exit 1 # 退出码 1 = 放行但把警告返回给模型 fi fi exit 0

正则不可能覆盖所有情况,但它能拦住 80% 的低级错误,而且它不会累、不会忘、不会被上下文冲掉

3.4 Subagent:把审查和实现分开

这是我最近半年最有效的一个改动。

核心思路:写代码的 agent 和审查代码的 agent 不能是同一个上下文。

因为主会话里 Claude 刚写完一段代码,你让它 review,它会倾向于认为自己写得对。Subagent 有独立的上下文窗口,它只看到代码,看不到”是我写的”这个前提。

我的.claude/agents/下有三个:

  • bias-hunter:只读权限,专门找前视/幸存者偏差,输出结论不改代码
  • data-validator:跑数据质检脚本,检查缺失率、异常值、时间戳连续性
  • overfit-critic:拿到回测结果后,专门唱反调,要求解释每个参数的经济学含义

用法很简单,在主会话里说:”用 bias-hunter 审一下factors/momentum_v3.py“。

3.5 MCP:把数据源标准化接进来

MCP 让 Claude 能直接调用你的行情源和回测引擎,而不是每次都让它写一段pd.read_csv

生态里现成的东西不少:有覆盖 A 股行情、财报、估值、板块、宏观指标的cn-financial-mcp;也有社区做的 TradingView 系 MCP server,暴露实时行情、技术指标、选股器和回测工具,2026 年年中的版本还加了 walk-forward 验证和过拟合检测。

但我的建议是:行情数据用现成的,回测引擎自己封。因为回测引擎里的交易成本、撮合规则、涨跌停处理是你的核心资产,用别人的默认参数等于在别人的假设上做研究。

自己封一个 MCP server 其实很简单:

# mcp_backtest_server.py from mcp.server.fastmcp import FastMCP from backtest.engine import run_backtest mcp = FastMCP("quant-backtest") @mcp.tool() def backtest_factor( factor_path: str, start_date: str, end_date: str, universe: str = "csi500", n_groups: int = 10, ) -> dict: """对指定因子文件运行分层回测,返回绩效指标。 使用项目标准的交易成本(双边 0.13%)和 T+1 撮合规则。 返回:各分组年化收益、多空夏普、IC 均值、ICIR、换手率、最大回撤。 """ result = run_backtest(factor_path, start_date, end_date, universe, n_groups) return result.to_summary_dict() @mcp.tool() def check_data_quality(table: str, start_date: str, end_date: str) -> dict: """检查指定数据表在时间区间内的质量:缺失率、异常值、时间戳连续性。""" ... if __name__ == "__main__": mcp.run()

接进 Claude Code 之后,你就可以直接说”把这个因子在中证 500 上跑 2018 到 2024 的分层回测”,它会自己调用、自己解读结果。


四、一个完整的工作流:从想法到 walk-forward 报告

讲了这么多零件,串一遍实际怎么用。

第 1 步:把模糊想法变成明确规格(人做)

错误示范:“帮我写一个动量策略”

正确示范:

在 A 股中证 500 成分股上实现一个因子: 定义:过去 20 日收益率,按过去 60 日已实现波动率标准化 (即 ret_20d / std_60d),再做行业市值中性化。 约束: - 遵循 CLAUDE.md 的所有交易约束 - 因子值在 T 日收盘后计算,T+1 开盘执行 - 剔除:ST、上市不满 60 日、T+1 开盘涨停 输出:写入 factors/vol_adj_momentum.py, 附带 tests/test_vol_adj_momentum.py 覆盖前视检查 先不要跑回测,写完代码后停下来等我 review。

最后那句”先不要跑回测,停下来等我 review”很重要。Opus 5 有个特点:你不约束它,它会过度交付——你要一个因子,它给你因子、回测、报告、三个变体和一份 PPT 大纲。在研究阶段,这些额外产出会让你失去对细节的控制。

第 2 步:并行审查(AI 做,隔离上下文)

用 bias-hunter 审查 factors/vol_adj_momentum.py, 同时用 />

三条最有效的省钱手段:

1. Prompt caching(省得最多)

缓存命中只要输入价的 10%。你的仓库结构、CLAUDE.md、因子库接口定义这些东西每次会话都一样,把它们放在 prompt 的固定前缀里缓存起来,输入成本直接掉一个数量级。5 分钟缓存写入是 1.25 倍基础输入价,1 小时是 2 倍——只要同一份上下文在窗口期内被读两次以上就回本了

2. 模型分层路由

  • 读日志、找 NaN、批量重命名 → Haiku 4.5
  • 写因子、改回测、跑测试 → Sonnet 5
  • 架构重构、疑难 bug、方案设计 → Opus 5
  • 通宵跑的大型自主任务 → Fable 5

在 Claude Code 里换模型就是一个命令的事,养成习惯就行。

3. Batch API

批处理有 5 折优惠,而且能和缓存折扣叠加。适合”晚上批量跑 200 个因子的分层回测报告”这种不急着看结果的活。

图 3 里那个 83% 的降幅不是理论值,是把这三招叠加起来的实际量级。我自己的账单从三位数掉到了两位数。


六、边界在哪里:一张必须看懂的图

最后这部分是我最想强调的。

Claude Opus 5 在软件工程基准上的成绩已经高得离谱——SWE-bench Verified 97%。但在真实的金融分析师任务上,它是什么水平?

看这张图的正确姿势:

左边那几根蓝色的柱子,是你应该重仓使用 AI 的地方。写代码、查文档、处理长文本、终端操作——这些能力已经接近或超过熟练工程师。

右边那几根,是你必须自己扛的地方。Vals AI 的 Finance Agent v2 上 Opus 5 拿了第一,58.63%,但这个”第一”的绝对值只有五成多。另一个独立评测 FrontierFinance 上,能力最强的 Claude Fable 5 也只完成了 49.2% 的投研任务,所有前沿模型都在 50% 以下。两个独立设计的评测得出一致结论,这说明这个天花板是真实的能力差距,不是某一家评测方法的偏差

翻译成人话:

AI 现在是一个能写出 97 分代码的工程师,同时是一个只能考 50 分的分析师。

所以我的分工原则是:

交给 Claude自己扛
实现你已经想清楚的逻辑想清楚逻辑本身
生成绩效报告和可视化决定看哪些指标、多少算好
审查代码里的技术性偏差判断因子有没有经济学意义
批量执行验证协议设计验证协议
写文档、写测试、重构决定这个策略上不上实盘

还有一条铁律:Claude 的输出不接实盘下单。那批官方金融 agent 模板的文档里,Anthropic 自己也写明了这些 agent 只产出草稿供有资质的人复核,不执行交易、不直接写入账簿。这个边界是对的,抄过来用。


七、五条踩坑经验

1. 越漂亮的曲线越要怀疑。AI 提效之后,你会看到更多漂亮曲线。这不是因为你变强了,是因为你搜索空间变大了,多重检验问题随之放大。样本内夏普超过 3,先默认它是错的,再去找错在哪。

2. 不要让它”顺便优化一下”。最危险的一句话是”帮我跑一下看哪个参数最好”。这是在让 AI 帮你过拟合。参数选择必须在明确的样本外协议下进行。

3. 上下文要定期清。一个会话跑了三小时之后,模型的上下文里混着十几个失败的尝试。它会开始”记得”一些已经被推翻的假设。研究阶段每完成一个子任务就开新会话,把结论写进文件而不是留在对话里。

4. 让它先说”不知道”。在系统提示里加一句”当你对某个数据字段的含义不确定时,必须先问我,不要猜”。省下的 debug 时间比你想象的多。

5. 定期人工重跑一遍关键路径。每个季度,我会挑一个已经跑了很久的因子,从数据读取开始完全手工复核一遍。至今为止,每次都能找到至少一处问题。


写在最后

回到开头那句话。

十年前我们的瓶颈是”实现不出来”——想到一个因子,写代码、调 bug、搭回测框架,两周过去了。现在这个瓶颈基本没了。

新的瓶颈是“想不出来”,以及更隐蔽的——“分不清好想法和好看的曲线”

AI 把工程门槛砸到了地板上。这意味着靠”我会写代码”的护城河没了,靠”我知道该写什么代码”的护城河反而变宽了。市场认知、微观结构理解、对交易成本的直觉、判断一个信号是真是假的品味——这些东西 Claude 现在还给不了你,短期内也给不了。

所以答案是:把工程交出去,把判断留下来。

那些真正被 AI 淘汰的,从来不是”不会用 AI 的人”,而是”除了实现之外没有别的东西的人”。


附:数据来源

  • 模型规格与定价:Anthropic 官方文档platform.claude.com/docs/en/about-claude/models/overview/pricing(2026 年 8 月核对)
  • 基准分数:Vals AI 独立评测榜单(Claude Opus 5,2026 年 7–8 月快照)
  • FrontierFinance 结果:2026 年 7 月公开报道
  • Anthropic 金融 agent 模板:2026 年 5 月 5 日官方发布
  • 图 2 的提效倍数为作者自有研发流水线上的经验估计,非公开基准数据
  • 图 3 的成本测算基于官方公开单价与文中标注的负载假设,为示意性计算

如果这篇文章对你有用,欢迎在评论区聊聊你的配置。尤其想听听大家 CLAUDE.md 里写了什么。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询