Skip to content

turtlequant/thesis-backtester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thesis Backtester — AI 驱动的投资分析框架

策略配置 → 量化筛选 → LLM 多章深度分析 → 多基准回测验证

Thesis Backtester 是一个开源引擎,用 LLM 驱动的盲测分析来回测定性投资思路。传统量化回测只能验证数值化规则("PE<10 就买入"),而本工具验证的是真实投资者的判断:

  • "这个高股息能持续吗,还是在透支未来?"
  • "低 PE 是真便宜还是价值陷阱?"
  • "管理层是在创造价值还是做资本运作?"
  • "这个商业模式能撑过下行周期吗?"

回测结果:5 年 120 只股票盲测

用价值投资策略(低PE + 低PB + 高股息 + AI 深度分析)在 2020-2025 年 12 个半年截面、600 只候选中精选 120 只做了完整验证。

五基准绩效对比 (6 个月前向收益)

基准 样本 平均收益 胜率 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

累计收益曲线

Cumulative Return Chart

Alpha 分层

沪深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盲测分析  →  对比实际结果

三步独立 Pipeline

# 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"  # 推荐 DeepSeek

数据初始化

python -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        # 日常增量更新

创建自己的策略

  1. 创建 strategies/<name>/strategy.yaml(参考 v6_value 的完整注释版)
  2. screening 部分定义量化筛选条件
  3. framework.chapters 部分组合已有算子(或在 operators/ 创建新算子)
  4. 运行 backtest-screenbacktest-agentbacktest-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  # 收益曲线图

文档

技术栈

组件 技术选型
语言 Python 3.9+
数据存储 Parquet (zstd 压缩, 月/股票分区)
LLM 接口 OpenAI 兼容 API (async, tool_use)
数据源 Tushare Pro API (Provider 抽象)
Web Streamlit

贡献

项目早期阶段,欢迎参与:

  • 新策略实例 — 带上你自己的投资理念,创建 strategy.yaml 组合算子
  • 新分析算子 — 在 operators/ 添加 .md 文件即可
  • 数据源适配 — 实现 DataProvider Protocol 接入港股/美股
  • 多模型对比 — DeepSeek/GPT/Gemini 横评

许可证

Apache License 2.0

免责声明

本工具仅用于投资方法论研究与验证,不构成投资建议。历史回测结果不代表未来表现。投资有风险,决策需谨慎。


English

About

AI Agent 驱动的投资分析框架:策略配置 → 量化筛选 → LLM 多章深度分析 → 多基准回测验证

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages