Install
openclaw skills install quant-research-lab量化策略研发实验室 — 让 Claude 按顶级机构角色分工(高盛策略架构师、文艺复兴回测引擎、Two Sigma 风控、Citadel Alpha 研究、Jane Street 做市、AQR 因子模型...共 15 个角色)系统性地设计、验证、风控、执行量化交易策略。当用户要求设计量化策略、做回测、构建因子、风控建模、策略优化、执行算法设计时触发。用户可能提到:量化策略、回测、因子、alpha 信号、风控、仓位管理、做市、统计套利、配对交易、宏观交易、TWAP、VWAP、投资组合优化、交易系统架构。
openclaw skills install quant-research-lab| ID | 角色 | 机构 | 文件 | depends_on | complexity | Phase |
|---|---|---|---|---|---|---|
| 01 | 策略架构师 | Goldman Sachs | roles/01-gs-strategy-architect.md | - | high | 1 |
| 02 | 回测引擎 | Renaissance Technologies | roles/02-rentec-backtest-engine.md | 01 | normal | 1 |
| 03 | 风控经理 | Two Sigma | roles/03-twosigma-risk-manager.md | 01 | normal | 1 |
| 04 | Alpha 研究员 | Citadel | roles/04-citadel-alpha-researcher.md | - | high | 1 |
| 05 | 做市引擎 | Jane Street | roles/05-js-market-maker.md | 01 | normal | 3 |
| 06 | 因子模型 | AQR | roles/06-aqr-factor-builder.md | 02 | normal | 2 |
| 07 | 统计套利 | D.E. Shaw | roles/07-deshaw-stat-arb.md | 01 | normal | 2 |
| 08 | 宏观策略 | Bridgewater | roles/08-bridgewater-macro.md | 01 | normal | 3 |
| 09 | 数据管道 | Bloomberg | roles/09-bbg-data-pipeline.md | - | normal | 2 |
| 10 | 执行算法 | Virtu | roles/10-virtu-execution.md | 01 | normal | 1 |
| 11 | ML 研究员 | Point72 | roles/11-point72-ml-researcher.md | 01 | high | 3 |
| 12 | 组合优化 | Man Group | roles/12-man-portfolio-optimizer.md | 01,02,03,06 | normal | 2 |
| 13 | 交易系统 | Millennium | roles/13-millennium-trading-system.md | 10,12 | normal | 2 |
| 14 | 因子回测 | Dimensional | roles/14-dimensional-factor-backtest.md | 01 | normal | 3 |
| 15 | 合规框架 | Goldman Sachs | roles/15-gs-compliance.md | 13 | normal | 3 |
自然语言(推荐):直接描述量化需求,Skill 自动激活。例如:
显式加载:/quant-research-lab
| 你说 | 行为 |
|---|---|
| "启动流水线" / "pipeline" / "跑全流程" | 展示轨道选择菜单,用户选择后启动对应 Pipeline |
| "因子流水线" / "因子挖掘" / "执行流水线" / "宏观流水线" / "套利流水线" / "ML流水线" / "做市流水线" | 直接启动指定轨道 Pipeline |
| "全量流水线" / "完整流水线" | 启动全部 15 角色完整流程 |
| "从角色 03 恢复" / "继续流水线" | 从角色 NN 断点恢复(需 state 文件存在) |
| "从角色 02 重新执行" / "重跑风控" | 丢弃 NN 及之后输出,从 NN 重新开始 |
| "用高盛角色" / "做回测" / "风控分析" / "alpha 研究" / "执行算法" | 单独触发某个角色(Toolbox 模式) |
| "结合上次结果做回测" | 单独触发 + 注入最近完成角色的上下文 |
| "流水线进度" / "status" | 查看进度 |
| "重置流水线" / "reset" | 清空状态重新开始 |
当 Skill 被激活时(通过自然语言触发或 /quant-research-lab 显式加载):
## 角色注册表 表格中解析 ID、角色名、文件名、depends_on、complexity、Phase)state/research-context.md 是否存在:
status: in-progress → 提示用户可从断点恢复:检测到未完成的 Pipeline({pipeline_id}),已完成角色:{completed_roles}。说"从角色 {next_recovery} 恢复"即可继续。{user_market}){user_capital}){user_focus})
将答案填入 state 文件的 ## 项目上下文 区触发方式:用户说"用高盛角色"、"做回测"、"风控分析"、"alpha 研究"、"执行算法"等,或按角色名/关键词匹配
roles/{NN}-{role}.md,获取角色的完整 prompt 模板{user_market}, {user_capital}, {user_focus}{upstream_params} 和 {upstream_summary}depends_on 字段非空 → 从 state 文件中提取依赖角色的输出,注入为 {upstream_params} 和 {upstream_summary}CLAUDE.md → 提取架构约定注入 {project_architecture}{user_market}, {user_capital}, {user_focus}, {upstream_params}, {upstream_summary}, {project_architecture}subagent_type: "general-purpose",model: "sonnet"(注册表中 complexity: high 的角色使用 model: "opus"),注入替换后的完整 prompt[QAGATE]...[/QAGATE] 块(见下方"质量门检查")。有异常 → 追加标记([输出不完整], [数值异常] 等),必要时提示用户决定(重做 / 接受 / 手动修复)state/research-context.md:
<!-- ROLE_OUTPUT_START:{NN} -->
### {NN} {角色名} ✅
[subagent 输出内容]
<!-- ROLE_OUTPUT_END:{NN} -->
更新 frontmatter:current_role_id, completed_roles, next_recoverydepends_on 包含当前角色 ID 且 Phase 已实现的角色,提示:下一步建议:用"{next_role}"角色,或说"从角色 {next_NN} 启动流水线"Pipeline 是 Toolbox 的序列化封装,**按预设轨道(Track)**串行调用角色,而非跑全部 15 个。每个角色的执行复用 Toolbox 步骤 2-7(加载模板 → 收集上下文 → 替换占位符 → dispatch subagent → 质量门 → 写入 state)。
触发方式:用户说"启动流水线"、"pipeline"、"跑全流程",或指定轨道名如"因子流水线"、"执行流水线"。也支持"从角色 NN 恢复"、"从角色 NN 重新执行"。
15 个角色构成了一个有向无环图(DAG),而非一条线。不同策略场景走不同的角色序列:
| 轨道名称 | 触发关键词 | 角色序列 | 预估耗时 | 适用场景 |
|---|---|---|---|---|
| 核心流水线(默认) | "启动流水线" / "pipeline" | 01→02→03→04→10 | ~15min | 标准策略:设计→回测→风控→Alpha→执行 |
| 因子流水线 | "因子流水线" / "因子挖掘" | 01→02→06→14→12 | ~20min | 因子研究:构建→回测→因子验证→组合 |
| 执行流水线 | "执行流水线" / "交易系统" | 01→10→13→15 | ~18min | 系统落地:执行算法→交易系统→合规 |
| 宏观流水线 | "宏观流水线" / "宏观策略" | 01→08→03→12 | ~18min | 宏观策略+风控+组合配置 |
| 统计套利流水线 | "套利流水线" | 01→07→02→10 | ~18min | 配对交易/协整策略 |
| ML 流水线 | "ML流水线" / "机器学习" | 01→11→02→03 | ~18min | ML 驱动策略研发 |
| 做市流水线 | "做市流水线" | 01→05→10→13 | ~18min | 做市系统设计 |
| 全量流水线 | "全量" / "完整流水线" | 01→02→03→04→06→07→08→09→10→11→12→13→14→15 | ~40min | 端到端完整流程(慎用,建议分轨道跑) |
轨道设计原则:每个轨道以 01(策略架构师)为根节点,按依赖拓扑序串联。独立角色(09 数据管道)可按需单独 Toolbox 触发。用户也可以自定义轨道:"走 01→04→11 的流水线"——编排层按指定 ID 列表执行即可。
请选择流水线轨道:1)核心流水线(默认) 2)因子 3)执行 4)宏观 5)套利 6)ML 7)做市 8)全量。直接说编号或轨道名即可。current_role_id 开始(断点恢复逻辑见下方)轨道: {track_name}。执行序列: [01, 02, 03, 04, 10](共 5 个角色)。预计 {estimate} 分钟。确认开始?ROLE_OUTPUT_START:{$id} 标记)→ 有则跳过
b. 执行 Toolbox 步骤 2-7(加载模板 → 收集上下文 → 替换占位符 → dispatch subagent → 质量门检查 → 写入 state)
c. 上下文自动注入:当前角色完成后,提取 QAGATE 中的 downstream_fields 和 core_conclusion 注入下一个角色
d. 展示摘要 + 进度:[{i}/{total}] {id} {角色名} 完成 [QAGATE: PASS|WARN ...]
e. 用户中断处理:用户可随时说"暂停"。完成当前角色后写入 state,更新 frontmatter(含 pipeline_track),展示恢复命令status: complete。提示:轨道 {track_name} 完成({total}/{total})。如需落地为生产代码,说"实现这个"。也可继续其他轨道,如"因子流水线"。pipeline_track 轨道名ROLE_OUTPUT_START:NN 标记存在角色 {NN} 不在当前轨道 {pipeline_track} 中或无输出记录。D = {NN} ∪ {当前轨道中排在 NN 之后的所有角色 ID}<!-- ROLE_OUTPUT_START:{$id} --> 至 <!-- ROLE_OUTPUT_END:{$id} --> 块completed_roles 中移除 D 中的 IDPipeline 模式下每个角色完成后,自动复用 ### 质量门检查 中的检查流程:
[QAGATE]...[/QAGATE] 块[QAGATE 结果: PASS|WARN ...][{i}/{total}] {id} {角色名} 完成 [QAGATE: PASS]--strict → 遇到 WARN/FAIL 时暂停,提示用户选择:质量门警告 [{角色名}]: {标记列表}。选择: (C)ontinue 忽略继续 / (R)etry 重新执行当前角色 / (A)bort 中断 Pipeline每个角色 subagent 完成后,编排层从 [QAGATE]...[/QAGATE] 块提取数据进行以下检查:
| 检查项 | 适用 | 检查方式 | 不通过时 |
|---|---|---|---|
| 必填字段 | 全部 | [QAGATE] 块存在 + 自由文本含核心结论/关键参数/传给下游的字段 | 标记 [输出不完整] |
| 数值合理性 | 数值角色 | 默认模式:Sharpe < 50, MaxDD > -99% | 标记 [数值极端异常] |
| 双重签名 | 数值角色 | method_signature 和 data_signature 均非空 | 标记 [缺少签名] |
检查流程:
[QAGATE] 和 [/QAGATE](字面字符串匹配,非 markdown 解析)[QAGATE] 块 → 标记 [缺少QAGATE],跳过后续检查key: value 或 YAML 格式解析):
core_conclusion / 核心结论 — 自由文本字段,非空即通过key_params / 关键参数 — 含关键参数列表即通过downstream_fields / 传给下游 — 含下游字段即通过method_signature — 方法签名,数值角色必须非空data_signature — 数据签名,数值角色必须非空[QAGATE 结果: PASS | WARN 输出不完整]state/research-context.md 是 Pipeline 的单一真相源。格式:
---
pipeline_id: {project}-{date}
pipeline_track: "{track_name}"
status: in-progress | complete
current_role_id: "{NN}"
completed_roles: ["01", "02"]
next_recovery: "{next_role_id in track}"
created_at: {ISO 8601}
project: {basename}
---
Toolbox 模式下的行为:
ROLE_OUTPUT_START/END 分隔),不修改 statuscurrent_role_id 为最近完成的角色 IDcompleted_roles 追加当前角色 IDnext_recovery 指向下一个 depends_on 包含当前角色 ID 的角色status: complete初始模板(新 Pipeline 时创建):
---
pipeline_id: {project}-{date}
pipeline_track: "{track_name}"
status: in-progress
current_role_id: ""
completed_roles: []
next_recovery: ""
created_at: {now}
project: {project_basename}
---
## 项目上下文
- **交易市场/标的**:{user_market}
- **可用资金规模**:{user_capital}
- **当前核心问题**:{user_focus}
## 角色输出
<!-- 每个角色完成后由编排层追加 -->
Pipeline 模式下的行为:见上方 ### Pipeline 模式。
state/research-context.md 是否存在status: ready → 提示:尚无活跃 Pipeline。说"启动流水线"开始新 Pipeline。pipeline_id, pipeline_track, status, current_role_id, completed_roles, next_recovery, project## Pipeline: {pipeline_id}
- 轨道: {pipeline_track}
- 状态: {status}
- 项目: {project}
- 已完成角色 ({len(completed_roles)}): {completed_roles}
- 当前角色: {current_role_id}
status: in-progress,追加恢复提示:恢复命令:说"从角色 {next_recovery} 恢复"status: complete,追加:轨道 {pipeline_track} 已完成。可继续其他轨道,如"因子流水线"。state/research-context.md 是否存在 → 不存在则提示:尚无活跃 Pipeline,无需重置。确认重置 Pipeline "{pipeline_id}"?这将清除所有角色输出。输入 yes 确认。yes 后:
## 项目上下文 中的用户提供的信息({user_market}, {user_capital}, {user_focus}),清空 ## 角色输出 区所有 ROLE_OUTPUT_START/END 块,重置 frontmatter 为初始状态(status: ready, current_role_id: "", completed_roles: [], next_recovery: "")Pipeline 已重置。说"启动流水线"重新开始。