乐于分享
好东西不私藏

AI 工具实践备忘 · 2026年8月第1周

AI 工具实践备忘 · 2026年8月第1周


一、量化交易能力建设:Quant Signal Factory 信号工厂

项目:FM_trade 生态 — Quant Signal Factory 信号工厂核心引擎:RD-Agent 0.8.0 + Qlib 0.9.8(LLM 因子挖掘 → 回测评估 → 信号导出)

本周建设总览

维度
关键产出
核心引擎上线
RD-Agent 0.8.0 + Qlib 0.9.8 因子挖掘管线端到端跑通
数据基础
Wind MCP → Qlib 数据桥,207 只标的,5.5 年日线数据
LLM 因子产出
5 轮迭代,12 个 DeepSeek-V4 生成的因子,全部通过 PIT 验证
回测验证
LightGBM 模型 + TopkDropoutStrategy,最佳 IC 0.0152 / 年化 36.6%
踩坑
7 个技术卡点全部解决,坑→规则转化率 100%
代码量
6,287 行 Python,20 个模块

RD-Agent + Qlib 是什么

RD-Agent 是微软开源的自动化 R&D 框架,核心是 "LLM 提出假设 → 自动编码 → 回测验证 → 反馈迭代" 的闭环:

  • 假设生成
    :LLM 根据历史实验反馈,提出因子假设(如"5日动量 + 20日波动率 + 量价相关性")
  • 编码
    :LLM 将因子公式转化为可执行的 Python 代码
  • 运行
    :通过 Qlib 回测管线计算 IC、年化收益、最大回撤等指标
  • 反馈
    :LLM 分析结果,决定下一轮方向

Qlib 是微软的 AI 量化平台,提供数据处理、特征工程(Alpha158)、模型训练(LightGBM 等)到回测评估的完整管线。

二者关系:RD-Agent 是"大脑"(决定挖什么因子),Qlib 是"裁判"(评估因子好不好用)。


因子挖掘实战

5 轮迭代,12 个因子产出。关键发现:

轮次
因子组
组合 IC
年化收益
最大回撤
超 SOTA
1
5日动量 + 20日波动率 + 量价相关 + 价格位置
0.015236.6%
-11.3%
2
10日动量 + 5日波动率 + 量价相关 + 价格位置
0.0089
36.3%
-13.7%
3
VWAP偏离 + ATR归一化 + 量价比 + PVT
0.0086
23.0%
-13.8%

关键发现:简单因子组合表现最优。增加复杂度(VWAP 偏离、ATR 归一化、PVT)并未提升 IC,反而引入噪声。LLM 能根据回测结果自我调整——第 3 轮失败后,第 4 轮自动转向"市场微观结构"方向。


踩坑记录(7 个,全部解决)

坑 1:Alpha158 返回 0 行 → ZeroDivisionError(阻断级)

模板配置的时间范围是 2008-2020,但实际数据覆盖 2021-2026。Alpha158 在 2008-2020 范围找不到数据,返回 0 行导致除零崩溃。

修复:更新所有模板 YAML 中的时间范围,monkey-patch 自动适配。

沉淀:数据时间范围是量化管线的"隐形契约"。模板里的硬编码日期是默认假设用户有 Qlib 官方数据集,自建数据必须显式对齐。


坑 2:YAML 将 "000300" 解析为整数 300(阻断级)

YAML 1.1 规范中 000300 被解析为八进制 → 整数 300。Qlib 期望字符串格式的 instrument 代码。

修复:加引号 benchmark: &benchmark "000300"

沉淀:股票代码如 000300000905 在 YAML 中必须加引号。


坑 3:conda/qrun 在 Windows 上不可用(阻断级)

RD-Agent 设计为 Linux 优先,Windows 上 conda 不在 PATH,qrun 是 Unix 命令。

修复:通过 monkey-patch 绕过——用 Python 子进程调用 Qlib 的 workflow() API 替代 qrun 命令行。

沉淀:在 Windows 上跑 Linux-first 框架,核心策略是"用 Python 替代 Shell"。


坑 4 ~ 7:API 变更 + 环境差异 + 数据模型

现象
沉淀
Qlib 0.9.x API 变更
Alpha158
 模块路径迁移
框架版本升级后必须检查 module_path 兼容性
MLflow 3.x 文件存储
file store is not supported
依赖链每个主版本升级都可能引入隐性变更
Bash $ 转义
$close
 被解释为变量引用
Bash 中 Qlib 表达式必须 \$ 转义
数据模型语义
factor_implementation
 是布尔值不是代码
不要假设属性名就是它的语义

Windows 兼容性补丁体系

RD-Agent 在 Windows 上运行需要 7 层补丁,已全部集成到 rd_runner.py

原始行为
补丁方案
1
os.symlink
 需管理员权限
shutil.copy/copytree
2
select.poll()
 Unix 专有
threading + queue
 替代
3
/bin/sh -c
 包装命令
直接运行 entry
4
Docker 生成数据文件
本地 Qlib 直接读取 .h5
5
LocalEnv
 获取运行时信息
预生成静态信息
6
DeepSeek 无 embedding API
返回零向量跳过知识图谱
7
conda/qrun 执行回测
subprocess.run
 + Python API

当前限制与下一步

限制
影响
优先级
数据仅 5.5 年
训练样本不足,IC 偏低(0.015)
🔴 高
仅 LightGBM 单模型
无法验证因子稳健性
🟡 中
FM_trade 集成 0%
信号 JSON 已生成但未接入交易
🟡 中

下周重点:扩展数据至 2015 年(IC 有望从 0.015 提升至 0.03+)、让信号工厂真正接入 FM_trade 交易决策。

本周核心主题:从"不可能"到"跑通了"。RD-Agent 在 Windows 上的部署曾被认为是不可行的(conda/qrun 缺失、Docker 不可用、API 版本不兼容),但通过 7 层补丁体系的系统性工程,LLM 因子挖掘的全链路已经打通。

二、沉淀

📐 数据时间范围是量化管线的"隐形契约"

模板文件中的硬编码日期(2008-2020)是框架的默认假设。使用自建数据时,必须显式对齐日期范围,否则 Alpha158 处理器静默返回 0 行,直到除零崩溃才暴露。

通用规则:任何框架的模板配置都有"默认假设",迁移到自己的数据时必须逐项核对。

🔧 Windows 上跑 Linux-first 框架的方法论

不是让 Windows 支持 conda/qrun,而是用 Python 子进程调用等效的 Python API。7 层补丁体系的本质是"用 Python 替代 Shell"——每一层补丁都是把一个 Unix 专有操作替换为跨平台的 Python 等价物。

🎯 坑→规则转化率持续 100%

本周 7 个坑全部产出了可执行的规则,累计规则库持续增长。每个坑的沉淀不是"下次注意",而是写入配置校验、写入 YAML 规范、写入代码注释——让规则可执行、可检查、可自动化。


*— 记录于 2026.08.07*