QMT Investment Assistant
配套媒体
本页对应的 PPT 与演示视频
下载没反应?点这里复制直链
侧边栏预览窗口(Electron webview)会拦截下载,把下面的链接复制到 Chrome / Edge 地址栏打开即可保存。
../media/qmt-investment-assistant.pptx../media/qmt-investment-assistant.mp4本文目录
📌 核心价值:本地优先 + Point-in-Time 股票池 + 8 项策略门控,把多因子选股从 notebook 脚本推进到工程化研究链路
A 股量化研究最大的坑不是"因子不够多",而是研究流程不严谨——历史成分股错用、look-ahead 漏检、多重检验不控制、实盘没人管。这个开源框架专门用工程化方式堵住这些坑。

⚠️ 风险提示:本文仅作技术交流,不构成投资建议。股市有风险,投资需谨慎。
🚀 什么是 QMT Investment Assistant?
QMT Investment Assistant(简称 QMT-IA)是一个本地优先、可复现、可审计的 A 股量化研究框架,专注沪深 300(HS300)多因子选股。
它把多因子研究从"散落在 Jupyter Notebook 里的脚本"推进到一条完整的工程化研究链路:
- 股票池:HS300 point-in-time(使用历史成分股,避免生存者偏差)
- 因子库:285+ 因子(WorldQuant Alpha + Barra + 自定义),分 5 大维度
- 模型:Ridge 线性 + LightGBM 非线性,自动 Walk-Forward 训练
- 回测:自研引擎,佣金 + 印花税 + 滑点全部计入
- 评估:8 项策略门控全部通过才标记为"晋级"
- 实盘:对接 QMT(xtquant)实盘接口
GitHub:
Leo984357/qmt_investment_assistant· License: MIT · 23 commits
核心定位:A 股量化研究领域的"工程化标准答案"——它不追求花哨的 AI 模型,而是把研究流程的每一步都用代码约束起来,杜绝常见的研究漏洞。
✨ 核心功能一览

研究链路分为 10 个阶段,每个阶段都有明确的输入输出和验证规则:
| 阶段 | 任务 | 关键约束 |
|---|---|---|
| 数据加载 | Baostock 拉取日线 + 财务数据 | 缓存到 Parquet 银层 |
| 因子计算 | 285+ 因子批量计算 | 因子档案系统自动管理 |
| 标签计算 | 20 日 forward return | T+1 可执行起点 + adj_close |
| 数据集组装 | 因子 + 标签 + 过滤 | 剔除 ST/新股/停牌/价格异常 |
| 模型训练 | Ridge / LightGBM | Walk-Forward 滚动训练 |
| 信号生成 | 模型预测 → 因子打分 | 实时 IC 监控 + 因子退化检测 |
| 组合构建 | Top-N 等权/加权 | 风险模型四档风控 |
| 组合增强 | 缓冲区 + 平滑 + 成本过滤 | 与信号层分离 |
| 回测 | 自研引擎全成本模拟 | 买入 1.25bp / 卖出 15.75bp |
| 评估门控 | 8 项 Gate 全部通过 | IC/IR/单调性/胜率/Sharpe |
🛠️ 快速上手:5 分钟跑通示例
安装 / 注册
git clone https://github.com/Leo984357/qmt_investment_assistant.git
cd qmt_investment_assistant
pip install -e ".[dev]"
# 审计配置(验证 YAML 完整性)
python -m src.cli audit-config \
--config configs/experiments/hs300_single_close_to_high250.yaml
# 跑完整实验(数据→因子→模型→回测→评估)
python -m src.cli experiment \
--config configs/experiments/hs300_single_close_to_high250.yaml
核心代码示例:定义一个因子档案
from src.features.factor_catalog import (
FactorProfile, FactorFamily, FactorSignal, FactorStatus
)
profile = FactorProfile(
name='close_to_high250',
family=FactorFamily.TECHNICAL_PRICE_LEVEL,
description='收盘价距离250日最高点的比例',
economic_mechanism='价格位置效应:接近高点的股票有趋势延续倾向',
expected_signal=FactorSignal.LONG,
lookback=250,
inputs=('close',),
status=FactorStatus.CORE, # CORE / BACKUP / OBSERVE / REJECT
)
关键设计:每个因子都登记"经济机制"和"预期方向"——这避免了凭印象拍脑袋选因子,也让因子升降级有据可依。
📊 核心因子与模型结果
6 个核心因子(基于 HS300 2015-2025 实证)
| 因子 | 方向 | IC | IC IR | 类别 |
|---|---|---|---|---|
earnings_yield |
价值 | 0.048 | 0.430 | 价值 |
roe |
质量 | 0.041 | 0.363 | 质量 |
ocf_per_share |
现金流 | 0.032 | 0.266 | 质量 |
mom250 |
动量 | 0.035 | 0.160 | 动量 |
operating_margin |
盈利 | 0.027 | 0.307 | 质量 |
close_to_high250 |
价格位置 | 0.023 | 0.110 | 动量 |
模型对比(2022-09 ~ 2026-03,HS300 成分股,10 天调仓)
| 模型 | 累计净值 | 基准 HS300 | 夏普 | 最大回撤 | IC |
|---|---|---|---|---|---|
| Ridge(9 因子) | +42.3% | +11.87% | 1.52 | -8.2% | 0.048 |
| LightGBM(自适应) | +81.87% | +11.87% | 1.88 | -12.5% | 0.035 |
注意:LightGBM 累计净值更高,但回撤也更大——这恰恰是为什么本框架坚持 8 项策略门控,而不是只看一个指标。
🛡️ 8 项策略门控(核心护城河)

所有 8 项必须全部通过,策略才能标记为"通过":
| 门控 | 阈值 | 含义 |
|---|---|---|
| IC 均值 | > 0.02 | 因子预测力 |
| IC IR | > 0.15 | 因子稳定性 |
| 分组单调性 | > 0.60 | Q5 > Q4 > ... > Q1 |
| 超额净值 | > 0 | 成本后超越基准 |
| 最大回撤 | < 30% | 风险控制 |
| 平均换手 | < 50% | 可执行性 |
| 年度胜率 | > 60% | 年份稳定性 |
| 对比基线 | Sharpe > 基线 | 相对 frozen baseline 提升 |
这套门控是项目最硬核的部分——它把"我回测赚了 80%"和"这个策略真的能用"分离开来。
📊 因子体系 5 大维度

因子库 285+ 个因子,分 5 大维度:
- 动量/反转:
ret_1m、ret_3m、wgt_mom_12m等 - 波动率:
vol_1m、beta、特质波动率 等 - 财报质量:ROE、毛利率、应计项目、CFO/利润 等
- 估值:PE、PB、PS、EP、PEG
- 资金流/量价:换手率、Amihud、MF_Flow、OBV
因子有 6 级状态机:CORE → BACKUP → OBSERVE → REJECT → DEPRECATED → POOL,基于 IC 表现自动升降级。
因子 IC 监控 + 自动退化检测是该项目的隐藏亮点:连续 5 次 IC<0 进入观察,连续 10 次降权 50%,连续 15 次直接下线,单次 IC<-0.03 立即下线。
📊 与同类项目对比

| 项目 | 股票池 | 模型 | 因子数 | 实盘对接 | Walk-Forward |
|---|---|---|---|---|---|
| QMT-IA | HS300 PIT | LightGBM + Ridge | 285+ | QMT(实盘) | ✅ |
zhitucoder/ai-trading |
全 A 股 | 自研策略 + Minervini VCP | 80+ | 模拟盘 | ❌ |
Hanzhi0807/aifa-quant |
全 A 股 | LambdaRank + Ensemble | 100+ | 模拟盘 | ❌ |
microsoft/qlib |
全 A 股 | 20+ 模型 zoo | 内置 Alpha158 | 需自接 | ✅ |
QMT-IA 的差异化:唯一在 README 里明确写出"实盘对接 QMT" + "策略准入门控 8 项"——大多数同类项目停留在回测演示阶段。
💡 适用场景
场景 1:研究人员想跑严谨的多因子实验
# 一个命令跑完整研究链路:数据→因子→模型→回测→评估
python -m src.cli experiment --config configs/experiments/<name>.yaml
输入要求:HS300 成分股 + Baostock 数据(免费) 输出效果:完整 artifact(特征面板、IC 历史、模型重要性、回测净值)+ Markdown 报告 适用场景:学术研究、买方机构研究、新策略验证
场景 2:个人量化想尝试 A 股实盘
# 策略验证通过后,启用 QMT 实盘对接
from src.services import TradingService
service = TradingService(
strategy_id='<validated_strategy_id>',
broker='qmt',
account='<account_id>'
)
service.run_daily_cycle() # 每日调仓周期
输入要求:QMT 券商账户 + xtquant 接口 输出效果:自动调仓 + 风控监控 适用场景:个人实盘、机构策略部署(需在沙盒外额外合规审查)
场景 3:教育场景——讲清楚量化研究的工程化约束
# 看 8 项策略门控如何把"虚假信号"剔除
cat reports/strategy_gate.md
输入要求:跑过一次实验 输出效果:每项门控的通过/拒绝状态 + 原因 适用场景:量化课程教学、研究方法论培训
用户群体总结
- ✅ 研究员:可复现的多因子实验平台
- ✅ 个人量化爱好者:QMT 实盘对接 + 完整风控
- ✅ 教学场景:策略门控 + 多重检验方法论示范
- ❌ 不适合:日内交易 / 加密货币(项目专注 A 股日频)
💰 部署与许可
开源协议:MIT License — 完整 LICENSE 文件已包含,可商用、修改、闭源分发。
运行环境要求:
- Python 3.12+
- 数据源:Baostock(免费)/ AKShare / Tushare(可选)
- 存储:本地 Parquet / SQLite / DuckDB
- 实验追踪:MLflow
实盘部署:
- 券商需支持 QMT(xtquant 协议)
- 多数主流券商已支持 QMT,零成本开通
💡 学习价值:这个项目的核心不是"赚钱策略",而是"工程化研究方法论"——即使不用于实盘,8 项策略门控 + 多重检验控制也是做严肃量化研究的最佳实践参考。
🎯 总结
QMT Investment Assistant 是当前 A 股量化研究领域少数把 "工程化" 放在第一位的开源项目:
- ✅ Point-in-Time 股票池(避免生存者偏差)
- ✅ Walk-Forward 训练(避免未来函数)
- ✅ 全成本回测(佣金 + 印花税 + 滑点)
- ✅ 8 项策略门控(避免过拟合)
- ✅ 多重检验控制(避免虚假发现)
- ✅ QMT 实盘对接(从研究到交易)
适合人群:A 股量化研究员、买方机构、个人量化爱好者、量化教学场景
立即上手:
git clone https://github.com/Leo984357/qmt_investment_assistant.git
cd qmt_investment_assistant
pip install -e ".[dev]"
python -m src.cli experiment --config configs/experiments/hs300_single_close_to_high250.yaml
GitHub 仓库:Leo984357/qmt_investment_assistant
数据截至 2026-07-26,最新信息请以 GitHub 仓库为准。