第 2 章 · 01 研究工作流:从提示到证据 本节摘要:第 1 章你认识了 Vibe-Trading 的六层结构,本章要把「一句话提示」真正变成「可复查的证据」。本节先拆解一条标准研究工作流的五步——Plan(规划技能与数据源)→ Ground(运行时拉取真实数据)→ Execute(跑回测/因子分析/导出)→ Validate(挂上指标、基准对比、蒙特卡洛、Bootstrap、Walk-Forward、run card)→ Deliver(返回答案 + 可检查的 artifacts)。重点讲清每一步的输入输出,以及为什么「artifact 痕迹」在金融研究里尤其重要——因为常常需要事后复查「三个月前那个回测到底用了什么参数」。读完本节,你会对研究问题在系统里如何流转有清晰的流程图。
本节摘要:第 1 章你认识了 Vibe-Trading 的六层结构,本章要把「一句话提示」真正变成「可复查的证据」。本节先拆解一条标准研究工作流的五步——Plan(规划技能与数据源)→ Ground(运行时拉取真实数据)→ Execute(跑回测/因子分析/导出)→ Validate(挂上指标、基准对比、蒙特卡洛、Bootstrap、Walk-Forward、run card)→ Deliver(返回答案 + 可检查的 artifacts)。重点讲清每一步的输入输出,以及为什么「artifact 痕迹」在金融研究里尤其重要——因为常常需要事后复查「三个月前那个回测到底用了什么参数」。读完本节,你会对研究问题在系统里如何流转有清晰的流程图。
内容来源:英文文档
core-concepts/research-workflow汉化,补充原项目中文入门教程第 4 章的研究流程视角。
阅读完本节,你应当能够:
金融研究最怕的不是「算错」,而是「算完就忘」——三个月后你想复盘「当时那个回测到底用了哪段时间、什么参数、哪个数据源」,如果没有留痕,就无从下手。Vibe-Trading 把一次研究运行拆成五个有明确边界的阶段,正是为了让每一步都看得见、留得下、查得到。
这五步不是凭空设计的,而是对应了一个研究问题从「想法」到「证据」的自然演化:
💡 五步与六层的关系:第 1 章的六层结构(loader/alpha/backtest/connector/tools/shadow)是结构视角——按代码模块分;本节的五步是流程视角——按时间顺序分。两者是正交的:一次研究的每一步,可能调用多个层的代码。
Plan 阶段是 agent 的「思考」环节。当你输入「回测一个 SP500 的动量策略」,agent 不会立刻去拉数据,而是先规划:这个任务需要动量因子、需要 SP500 成分股数据、需要 global_equity 引擎、需要 benchmark 对比……规划完成,才知道后续要调哪些工具。
你: Backtest a momentum strategy on SP500 from 2020 to 2025 │ ▼ Plan 阶段(agent 思考): - 技能:动量因子 - 数据源:SP500 成分股 → yfinance 或 Tushare - 工具:backtest - 引擎:global_equity - 验证:benchmark comparison + drawdown
💡 为什么 Plan 要显式:把规划步骤显式化,意味着你可以检查 agent 的计划是否合理——比如它选的数据源对不对、引擎选对没有、有没有遗漏 benchmark。如果计划错了,后面跑得再快也是错的。
Ground 阶段是「把计划落到真实数据上」。它在运行时拉取数据,而不是用预先固化的快照——这一点很重要:
为了对抗「两次运行数据不一致」的问题,Vibe-Trading 会把每次 Ground 拉到的数据沉淀到 run dir 里(作为 artifact),这样事后复查时,用的就是当时那份数据,而不是重新拉一份可能已经变化的。
💡 PIT 原则:Ground 阶段拉取数据时要遵守 Point-in-time(点在时间)——只用当时已公开、已可获得的数据,不能偷看未来。这是回测可信度的红线,第 2 章 04 会专门讲。
Execute 阶段是真正「干活」的环节。典型的执行动作包括:
backtest 工具,按 config.json 和 signal_engine.py 模拟历史交易。factor_analysis 工具,计算 IC、IR、t 统计。Ground 产出(真实数据) │ ▼ Execute 阶段(调用工具): - backtest → 净值曲线、回撤、turnover - factor_analysis → IC/IR 序列 - export → 策略代码、CSV - report → 报告草稿
Validate 阶段是研究工作流区别于「问答机器人」的关键。它不满足于「算出一个收益数字」,而是要在结果上挂载多角度的证据,让你能判断「这个结果到底有多可信」。
常见的验证工具包括:
⚠️ 验证工具是「证据助手」,不是「保证」:蒙特卡洛跑出来稳健,不代表未来一定稳健;Walk-Forward 通过,不代表实盘一定赚钱。所有验证结果都只是降低不确定性,不能消除不确定性。市场风格切换、黑天鹅事件都可能让历史验证失效。本教程所有内容均不构成投资建议。
Deliver 阶段不只是「返回一个数字」,而是把答案和全部产物一起交付:
signal_engine.py、run metadata、run card。把五步串起来,你会发现 Vibe-Trading 在每一步都强调「沉淀产物」。这不是繁琐,而是金融研究的内在要求:
💡 为什么 artifacts 痕迹重要:金融研究常常需要事后复查——三个月后你想知道「当时那个回测到底用了什么参数、跑了哪段时间、用的哪份数据」,如果没有留痕,就无从复盘。Vibe-Trading 把每个产物都沉淀到 run dir,这正是「研究工作台」区别于「问答机器人」的地方。
一次典型的 run dir 结构长这样:
my_run/ config.json ← Plan + Ground 的配置 code/ signal_engine.py ← Execute 的策略代码 data/ bars.parquet ← Ground 拉到的行情(沉淀下来) results/ equity_curve.csv ← Execute 的回测结果 metrics.json ← Validate 的指标 benchmark.csv ← Validate 的基准对比 report.html ← Deliver 的报告 run_card.json ← Deliver 的运行身份证
有了这套留痕,你可以做到三件「问答机器人」做不到的事:
把五步套到一条真实命令上:
vibe-trading run -p "Backtest an equal-weight SPY and BTC-USDT momentum rotation strategy for 2024 with benchmark comparison"
Plan → agent 规划:需要 SPY + BTC-USDT 行情、动量信号、composite 引擎、benchmark Ground → loader 拉 SPY(全球股票)+ BTC-USDT(加密)的 2024 年行情,沉淀到 run dir Execute→ Signal Engine 生成动量轮动信号,composite 引擎跑模拟,产出净值曲线 Validate→ 挂上 benchmark 对比、回撤、turnover、夏普、run card Deliver → 返回收益总结 + 报告 HTML + run card + 可复查 artifacts
💡 对照六层结构:这次运行调用了数据层(loader 拉 SPY 和 BTC-USDT)、回测层(composite 引擎)、工具层(backtest 工具被 agent 调用),还可能涉及券商层(如果读真实账户做对比)。五步流程把六层结构按时间串起来跑了。
⚠️ 本节所有研究流程描述均不构成投资建议。验证工具只能降低不确定性,不能消除,实盘前必须经过你自己的判断和模拟盘验证。
下一节,我们将深入策略与 Signal Engine,讲清研究想法如何变成可执行规则——
config.json与signal_engine.py的分工,以及新手最常犯的错:把「因子分数高」直接等同于「马上满仓买入」。