sqyangx / quantlab

sqyangx/quantlab

open_in_new前往仓库

量化实验项目,聚合优秀量化工具,通过vibe trading快速生成策略,支持自然语言驱动的AI分析(含A股/美股),多数据源行情、量化策略与LLM后处理分析,并公开A股T+1预测策略,每日盘前推荐。

项目概览

项目概述

QuantLab 是一个面向中国 A 股市场的量化交易系统,融合了微软的三个开源项目(Qlib、Kronos、RD-Agent),构建了一个统一的 T+1 日频交易流水线。项目通过自然语言驱动的 AI 智能分析(也支持港股/美股),聚合多数据源行情、量化策略和 LLM 后处理分析,并公开一个 A 股 T+1 预测策略,每日盘前进行推荐。

核心功能

  • 多信号管线:集成 Alpha158 因子 + LightGBM、Kronos Transformer 预测、RD-Agent 进化因子三条独立信号管线。
  • 信号融合:基于滚动 IC 动态加权,支持冷启动、相关性惩罚和不确定性惩罚。
  • 交易执行:模拟 A 股 T+1 交易规则,包含佣金、印花税、滑点、涨跌停、整手约束。
  • 风险控制:三级风控(个股止损、行业集中度、组合熔断)。
  • Agentic 审查层:对候选股票进行流动性检查、板块资金流暴露、行业集中度审查,并输出否决/减仓/批准决策。
  • 数据管理:支持多数据源(Yahoo、Baostock、腾讯)下载、增量更新、时间隔离访问。
  • 可视化:提供 K 线图、持仓概览、性能仪表盘等 HTML 可视化。

适用与不适用场景

适用场景:

  • A 股日频量化策略研究与回测。
  • 需要融合多种信号源(技术因子、深度学习、LLM 进化因子)的选股系统。
  • 对数据时间隔离(防止前视偏差)有严格要求的量化研究。
  • 希望利用 LLM 自动发现新因子的研究团队。

不适用场景:

  • 高频交易(系统设计为日频 T+1 交易)。
  • 非 A 股市场(虽然支持美股数据下载,但策略和风控逻辑针对 A 股)。
  • 生产级实盘交易(项目定位为实验项目,未提供实盘接口)。
  • 无 GPU 环境下的 Kronos 模型训练(CPU 可用但速度极慢)。

技术架构与依赖

项目基于以下主要组件:

  • Qlib:数据基础设施、Alpha158 因子引擎、回测框架。
  • Kronos:用于 K 线序列预测的 Transformer 模型。
  • RD-Agent:LLM 驱动的进化研发代理,用于自动发现因子/模型。
  • LightGBM:用于 Alpha158 信号的梯度提升树模型。
  • PyTorch:Kronos 模型的深度学习框架。
  • Baostock / Yahoo Finance / 腾讯:数据源。
  • Plotly:可视化。

安装与快速开始

环境要求

  • Python 3.10 或 3.11
  • C++ 编译器(Qlib 需要 Cython 扩展)
  • 推荐 NVIDIA GPU(用于 Kronos 模型)

安装步骤

# 克隆仓库(包含子模块)
git clone --recursive https://github.com/sqyangx/quantlab.git
cd quantlab

# 创建 conda 环境
conda create -n quantlab python=3.11 -y
conda activate quantlab

# 安装 qlib(本地源码,触发 Cython 编译)
pip install -e ./qlib

# 安装 quantlab
pip install -e .

# 验证环境并下载 A 股数据(约 200-500MB)
python quantlab/setup_and_verify.py

运行回测

# 完整回测
python quantlab/main.py --config quantlab/configs/backtest.yaml

# 从检查点恢复
python quantlab/main.py --resume checkpoints/checkpoint_2024-06-28.pkl

运行测试

python -m pytest quantlab/tests/ -v

典型使用方法

数据管理

# 下载数据
python quantlab/data/data_download.py

# 增量更新(使用 Baostock)
python quantlab/data/data_update.py --source baostock

# 导出 CSV
python quantlab/data/data_export.py --symbols SH600519 --start 2024-01-01 --end 2024-12-31

信号生成

# Alpha158 信号
python quantlab/signal/signal_alpha_predict.py --anchor-date 2024-06-28

# Kronos 信号
python quantlab/signal/kronos_predict.py --anchor-date 2024-06-28

# RD-Agent 信号
python quantlab/signal/rdagent_compute.py --anchor-date 2024-06-28

信号融合与执行

# 融合信号
python quantlab/signal/ensemble_combine.py --anchor-date 2024-06-28 \
    --alpha-signal ./outputs/alpha/signals.csv \
    --kronos-signal ./outputs/kronos/signals.csv

# 执行交易
python quantlab/execution/execution_run.py --anchor-date 2024-06-28 \
    --signal ./outputs/ensemble/signal.csv \
    --close-prices ./data/close.csv \
    --open-prices ./data/open.csv

配置与部署要点

主要配置文件为 quantlab/configs/backtest.yaml,包含回测周期、市场、资金、信号开关、执行参数和风控参数。

关键配置项:

  • start_date / end_date:回测区间
  • market:股票池(如 csi300)
  • initial_cash:初始资金
  • enable_alpha / enable_kronos / enable_rdagent:信号管线开关
  • max_positions / max_single_weight:持仓限制
  • stop_loss_pct / max_industry_pct / circuit_breaker_pct:风控参数

部署时需注意:

  • 数据下载需先落到 staging 目录,验证后再写回正式数据目录。
  • 所有数据访问必须通过 DataManager,并遵守 anchor_date 时间隔离。
  • RD-Agent 管线默认禁用,需要配置 LLM API 才能启用。
  • Kronos 模型需要 GPU 才能高效运行。

限制、风险与许可证

限制:

  • 项目为实验性质,不构成投资建议。
  • 回测结果不代表未来表现,存在过拟合风险。
  • 数据源可能不稳定(如 Yahoo 对 A 股支持不佳)。
  • 腾讯 5 分钟数据的 amount 为近似值。

风险:

  • 量化策略存在市场风险、流动性风险、模型风险。
  • LLM 生成的因子代码可能包含错误或恶意代码,需在沙箱中执行。
  • 前视偏差风险,需严格遵守时间隔离。

许可证:

  • 项目采用 MIT 许可证(仓库资料未提供许可证文件,但 README 中声明为 MIT)。

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、文档目录(docs/)中的模块使用文档。
  • 分析时间:2026-05-28(基于仓库中提到的数据日期)。