这篇文章记录了我过去两年在量化策略开发上的探索与实践。不同于单策略的零散尝试,我构建了一个完整的框架——从因子研究到实盘部署,再到AI自动化。我想分享的不仅是技术细节,更是一种系统化的思考方式。
为什么需要完整的量化框架?
传统量化开发往往陷入这样的循环:有一个想法 → 写代码回测 → 调整参数 → 实盘 → 失效 → 重新开始。每个策略都是孤岛,经验难以沉淀,效率低下。
我意识到问题的核心在于缺乏系统化的框架。单策略思维就像手工作坊,而框架思维是建立工厂。于是我开始构建ATB(Automated Trading Backtester)——一个完整的量化研究基础设施。
六因子模型:策略的模块化分解
我将交易策略拆解为六个独立的决策因子:
Entry(入场) → 何时开仓?
Exit(出场) → 何时平仓?
Risk(风险) → 承担多少风险?
Sizing(头寸) → 开多少仓位?
SLTP(止损止盈)→ 如何保护利润/控制亏损?
Timing(时机) → 何时执行交易?
这种分解带来了几个关键优势:
- 可复用性:每个因子可以独立开发、测试、优化
- 可组合性:像乐高一样组合不同的因子创建新策略
- 可解释性:策略表现可以追溯到具体因子的贡献
- 可维护性:修改一个因子不影响其他部分
概念示意图
┌─────────────────────────────────────────┐
│ 交易策略 │
├─────────────────────────────────────────┤
│ Entry Exit Risk Sizing SLTP │
│ (入场) (出场) (风险) (头寸) (止损止盈)│
└─────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
因子库A 因子库B 因子库C
示例:双均线策略的六因子分解
让我们用经典的双均线策略(金叉买,死叉卖)来具体说明六因子模型:
strategy:
name: "dual_moving_average"
description: "经典双均线策略 - 快速均线上穿慢速均线时买入,下穿时卖出"
factors:
# 1. Entry (入场) - 金叉信号
entry:
type: "crossover"
fast_ma: 20 # 快速均线周期
slow_ma: 50 # 慢速均线周期
signal: "golden_cross" # 金叉时入场
# 2. Exit (出场) - 死叉信号
exit:
type: "crossover"
fast_ma: 20
slow_ma: 50
signal: "death_cross" # 死叉时出场
# 3. Risk (风险) - 固定百分比风险
risk:
type: "fixed_fractional"
risk_per_trade: 0.02 # 每笔交易风险2%
# 4. Sizing (头寸) - 基于ATR的头寸大小
sizing:
type: "atr_based"
atr_period: 14 # ATR计算周期
risk_multiplier: 1.5 # 风险乘数
# 5. SLTP (止损止盈) - ATR动态止损
sltp:
type: "trailing_atr"
stop_atr_multiplier: 2.0 # 2倍ATR止损
trail_atr_multiplier: 1.5 # 1.5倍ATR跟踪
# 6. Timing (时机) - 只在交易时段执行
timing:
type: "market_hours"
session: "regular" # 常规交易时段
这个示例展示了:
- 模块化:每个决策独立配置
- 可替换性:想把”固定百分比风险”换成”凯利公式”?只需修改
risk部分 - 可解释性:策略表现可以追溯到每个因子的贡献
- 可测试性:可以单独测试每个因子的效果
传统写法中,这些逻辑都混在一起。六因子模型让策略变得透明、可维护、可进化。
数据中台:策略研究的基石
没有高质量的数据,再好的策略也只是空中楼阁。我构建的数据中台包含:
1. 多源数据整合
- 历史行情数据(1分钟级,多年跨度)
- 基本面数据
- 另类数据(新闻、社交媒体情绪等)
2. 数据管理与预处理
# 简化的数据管道概念
raw_data → clean → validate → store → serve
3. Gap Filling 机制
市场数据常有缺失,自动检测并填充数据缺口是保证回测准确性的关键。
回测框架:从模拟到验证
回测不只是跑个结果,而是系统的验证过程。我的框架包含:
1. 基础评估指标
- 年化收益率、夏普比率、最大回撤
- 胜率、盈亏比、交易频率
2. 高级评估方法
- Walk-Forward Optimization (WFO):防止过拟合
- Combinatorial Purged Cross-Validation (CBCV):更稳健的样本外测试
- Monte Carlo 模拟:评估策略的稳定性
3. 因子研究系统
独立评估每个因子的预测能力:
- Information Coefficient (IC):因子与未来收益的相关性
- Information Ratio (IR):风险调整后的预测能力
- 胜率、最大有利/不利偏移(MFE/MAE)
实盘部署:研究的落地
研究再好,不能实盘等于零。我追求的是研究代码与实盘代码的统一。
架构设计
ATB-Strategy-Tester/ # 核心引擎(研究)
├── atb_strategy_factory/ # 回测引擎
└── config.yaml # 配置文件
ATB-Simons/ # 实盘部署
├── nautilus-trader/ # 统一执行引擎
└── ibkr/ # 券商接口
关键决策
- 统一代码库:回测和实盘使用相同的策略逻辑
- 模块化风控:独立的风控模块,可插拔到任何策略
- 自动化监控:实时监控策略表现和系统健康
YAML 配置驱动
策略配置完全通过YAML文件,无需修改代码:
strategy:
name: "example_strategy"
factors:
entry: "trend_breakout"
exit: "trailing_stop"
risk: "fixed_fractional"
sizing: "kelly_optimized"
sltp: "atr_based"
timing: "market_hours"
parameters:
lookback_period: 20
atr_multiplier: 2.0
max_position_size: 0.1
AI 自动化:研究的加速器
最近一年,我开始将AI引入量化研究流程,实现了研究速度的数量级提升。但更重要的是,完整的框架让AI能够系统化地执行整个研究流程。
1. 框架即指令集:AI的可执行蓝图
有了清晰的六因子模型、数据管道、回测框架,AI不再需要猜测”该做什么”。框架本身成为了可执行的指令集:
AI读取框架规范 → 理解每个环节的标准 → 按流程执行 → 产出标准化结果
这就像给AI一张详细的地图,而不是模糊的方向。AI可以:
- 自动探索新的因子组合
- 系统化地测试参数空间
- 按照标准流程评估策略表现
- 生成符合框架要求的报告
2. 多Agent协作研究
我构建了一个AI agent团队,每个agent负责研究流程的不同环节:
- 数据Agent:自动收集、清洗、验证数据
- 因子Agent:探索新的因子想法,评估预测能力
- 策略Agent:组合因子,优化参数,评估策略
- 风险Agent:分析策略风险,提出改进建议
关键洞察:每个agent都遵循相同的框架规范,确保产出的一致性。
3. 持续优化的反馈循环
人类设定目标 → AI按框架探索 → 产出结果 → 人类评估 → 反馈优化框架 → AI更高效探索
这个循环不断优化:
- 框架本身:根据AI的探索经验改进框架设计
- AI的探索策略:学习什么类型的探索更可能成功
- 人类-AI协作效率:找到最优的分工边界
4. 从”辅助工具”到”自主研究员”
传统AI在量化中是辅助工具(帮你写代码、分析数据)。但在完整框架下,AI可以成为自主研究员:
自主研究循环:
1. 扫描市场,识别潜在机会
2. 按框架设计候选策略
3. 回测验证,评估风险收益
4. 优化参数,生成实盘配置
5. 监控表现,自适应调整
框架的价值:让这个循环可重复、可扩展、可验证。
5. 异常检测与自适应
- VaR + LSTM Autoencoder:检测市场 regime 变化
- 自适应参数调整:根据市场状态动态调整策略参数
- 自动止损机制:当检测到异常时自动保护资本
框架的作用:为这些自适应机制提供标准化的接口和评估标准。
结语:量化开发的未来
回顾这段旅程,我最大的收获不是某个具体策略的收益,而是构建系统的能力。量化开发正在从”手工作坊”走向”智能工厂”,而框架思维是这个转变的核心。
个人开发者的机会
机构有资源优势,但个人开发者有敏捷优势。一个精心设计的框架可以让单人团队达到小机构的研发效率。关键在于:
- 自动化一切可以自动化的
- 系统化一切可以系统化的
- 专注于创造性的部分,让机器处理重复的部分
框架 vs 单策略思维
单策略思维关注”这个策略能不能赚钱”,框架思维关注”如何持续产生能赚钱的策略”。前者是打猎,后者是农耕。
最后的思考
量化交易不仅是数学和编程,更是对市场本质的理解。我的框架在不断演化,但核心原则不变:模块化、自动化、系统化。
未来,我计划进一步深化AI在量化研究中的应用,探索多时间框架、多资产类别的统一框架。这条路还很长,但每一步都值得。
本文分享的是框架层面的思考与实践,不包含具体的交易信号、持仓信息或收益数据。量化交易有风险,请谨慎对待。