策略配置 → 量化筛选 → LLM 多章深度分析 → 多基准回测验证
Thesis Backtester 是一个开源引擎,用 LLM 驱动的盲测分析来回测定性投资思路。传统量化回测只能验证数值化规则("PE<10 就买入"),而本工具验证的是真实投资者的判断:
- "这个高股息能持续吗,还是在透支未来?"
- "低 PE 是真便宜还是价值陷阱?"
- "管理层是在创造价值还是做资本运作?"
- "这个商业模式能撑过下行周期吗?"
用价值投资策略(低PE + 低PB + 高股息 + AI 深度分析)在 2020-2025 年 12 个半年截面、600 只候选中精选 120 只做了完整验证。
| 基准 | 样本 | 平均收益 | 胜率 | vs 沪深300 |
|---|---|---|---|---|
| 沪深300 | 12 | +0.9% | 42% | — |
| 筛选池等权 | 600 | +4.0% | 53% | +3.0pp |
| 筛选池 Top (金龟) | 56 | +4.0% | 57% | +3.0pp |
| Agent 买入 | 43 | +8.1% | 65% | +7.1pp |
| Agent Top5 | 60 | +6.7% | 65% | +5.7pp |
沪深300 +0.9% ← 全市场基准
│ +3.0pp ← 量化筛选 alpha
筛选池等权 +4.0%
│ +4.1pp ← Agent 增量 alpha
Agent 买入 +8.1% ← 端到端 alpha: +7.1pp
- 量化筛选有效:低估值+高股息组合跑赢沪深300 3.0pp,胜率 53%
- Agent 有增量价值:在筛选基础上再加 4.1pp,胜率从 53% 提升到 65%
- 12 个月 alpha 更强:Agent 买入 12m 均收益 +13.9%(vs 沪深300 +1.1%,alpha +12.8pp)
- 回避信号有效:Agent 回避的股票实际表现更差
完整报告:backtest_report | 结构化数据:backtest_summary
传统回测: 数值规则 → 历史价格 → 损益
思路回测: 投资理念 → AI盲测分析 → 对比实际结果
# Step 1: 生成截面日期 + 逐截面筛选 + 保存 CSV(秒级)
python -m src.engine.launcher strategies/v6_value/strategy.yaml backtest-screen
# Step 2: 并发 Agent 分析 + 进度/重试/增量(小时级)
python -m src.engine.launcher strategies/v6_value/strategy.yaml backtest-agent
python -m src.engine.launcher strategies/v6_value/strategy.yaml backtest-agent --dry-run # 查看任务量和成本
# Step 3: 采集前向收益 + 五基准绩效评估 + 收益曲线(分钟级)
python -m src.engine.launcher strategies/v6_value/strategy.yaml backtest-eval每步独立,可随时中断/续跑。Agent 自动跳过已完成的分析。
# 量化筛选
python -m src.engine.launcher strategies/v6_value/strategy.yaml screen 2024-06-30
# 单股 Agent 盲测分析(需要 LLM_API_KEY + LLM_BASE_URL)
python -m src.engine.launcher strategies/v6_value/strategy.yaml agent-analyze 601288.SH 2024-06-30
# 批量:筛选 + Agent 分析
python -m src.engine.launcher strategies/v6_value/strategy.yaml batch-analyze 2024-06-30┌─────────────────────────────────────────────────────────────────┐
│ Strategy Instance │
│ strategy.yaml (筛选 + 章节 + 算子组合 + 评分体系 + LLM 配置) │
└─────────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────────▼───────────────────────────────────────┐
│ Engine Layer (src/engine/) │
│ StrategyConfig · Launcher · FactorRegistry · OperatorRegistry │
└──────┬──────────┬──────────┬────────────────────────────────────┘
│ │ │
┌──────▼───┐ ┌───▼────┐ ┌──▼────────────────────────────────────┐
│ Screener │ │ Agent │ │ Backtest Pipeline │
│ 量化筛选 │ │ 盲测分析│ │ screen → agent → eval (三步独立) │
└──────┬───┘ └───┬────┘ └──┬────────────────────────────────────┘
│ │ │
┌──────▼─────────▼─────────▼─────────────────────────────────────┐
│ Data Layer (src/data/) │
│ Provider(抽象) · Storage(Parquet) · Snapshot(时点快照) · API │
└─────────────────────────────────────────────────────────────────┘
- 算子驱动:21 个分析算子(
.md文件),策略通过 YAML 组合,输出 Schema 自动生成 - 六章分析框架:数据核查 → 基本面 → 现金流 → 估值 → 压力测试 → 投资决策
- 盲测:隐藏公司名称,消除 AI 品牌偏见和记忆污染
- 三层评分:思考步骤引导推理 + 评分锚点校准 + 决策边界强制一致
- 五基准对比:沪深300 + 筛选池等权 + 金龟 + Agent 买入 + Agent Top5
- 时间边界:数据层硬过滤(按公告日)+ Prompt 注入 + Agent 工具沙盒
- 策略即配置:
strategy.yaml一站式定义,无需编写代码
pip install -e .
export TUSHARE_TOKEN="your_token_here" # Tushare Pro 账号
export LLM_API_KEY="your_key_here" # OpenAI 兼容 API
export LLM_BASE_URL="https://api.deepseek.com" # 推荐 DeepSeekpython -m src.engine.launcher data init-basic # 股票列表 + 交易日历
python -m src.engine.launcher data init-market 2020-01-01 # 日线行情 + 指标 + 因子
python -m src.engine.launcher data daily-update # 日常增量更新- 创建
strategies/<name>/strategy.yaml(参考 v6_value 的完整注释版) - 在
screening部分定义量化筛选条件 - 在
framework.chapters部分组合已有算子(或在operators/创建新算子) - 运行
backtest-screen→backtest-agent→backtest-eval
无需编写代码,输出 Schema 从算子 outputs 字段自动生成。
src/
├── engine/ # 引擎层:配置 + 启动器 + 注册表
├── data/ # 数据层:Provider + Parquet + 快照
│ └── tushare/ # Tushare Provider 实现
├── agent/ # Agent层:LLM盲测(DAG调度 + tool_use)
├── screener/ # 筛选层:声明式量化筛选
├── backtest/ # 回测层:三步 Pipeline + 五基准评估
└── web/ # Web层:Streamlit 工作台
factors/ # 量化因子定义(.py, 截面+时序)
operators/ # 定性分析算子(.md, 21个)
strategies/ # 策略实例
└── v6_value/ # V6 价值投资(含完整回测数据)
├── strategy.yaml # 配置(带完整注释)
└── backtest/ # 回测结果
├── agent_reports/ # 120份 Agent 分析报告
├── screen_results/ # 12个截面筛选 CSV
└── backtest_chart_*.png # 收益曲线图
- 整体架构 — 系统分层与模块职责
- Agent 运行时 — DAG 调度、Prompt 组装、工具沙盒
- 数据层 — Provider 抽象、Parquet 存储、时点快照
- 算子与因子 — 21 个算子清单、自动 Schema、行业门控
- 筛选层 — 声明式量化筛选引擎
- 回测层 — 三步 Pipeline、五基准评估
- 评分设计 — 三层评分哲学
- 扩展计划 — 从 120 到 600+ 样本的路线图
| 组件 | 技术选型 |
|---|---|
| 语言 | Python 3.9+ |
| 数据存储 | Parquet (zstd 压缩, 月/股票分区) |
| LLM 接口 | OpenAI 兼容 API (async, tool_use) |
| 数据源 | Tushare Pro API (Provider 抽象) |
| Web | Streamlit |
项目早期阶段,欢迎参与:
- 新策略实例 — 带上你自己的投资理念,创建
strategy.yaml组合算子 - 新分析算子 — 在
operators/添加.md文件即可 - 数据源适配 — 实现
DataProviderProtocol 接入港股/美股 - 多模型对比 — DeepSeek/GPT/Gemini 横评
Apache License 2.0
本工具仅用于投资方法论研究与验证,不构成投资建议。历史回测结果不代表未来表现。投资有风险,决策需谨慎。
