在 BigQuant 平台上,一个完整的量化投资策略是一个由多个功能模块协同工作的系统工程。这些模块覆盖了从数据获取、特征构建、模型训练、信号生成、组合管理到回测验证的全流程。
下面是对 BigQuant 策略组成模块的详细解析,帮助你深入理解其架构与设计逻辑。
✅ 一、策略核心组成模块详解
1. 数据抽取模块(Data Extraction Module)
功能:
从 BigQuant 平台内置数据库中提取原始金融数据,作为后续分析和建模的基础。
支持的数据类型:
- 行情数据:开盘价、收盘价、成交量、涨跌幅等(日频/分钟频)
- 基本面数据:市盈率(PE)、市净率(PB)、ROE、营收增长率等
- 财务数据:资产负债表、利润表、现金流量表
- 宏观经济数据:利率、CPI、PMI 等
- 因子数据:技术因子、情绪因子、资金流因子等
常用 API / 工具:
python
get_price(security, start_date, end_date) # 获取价格数据
get_fundamentals(query, date) # 查询财务数据
DataSource('bar1d').read() # 使用数据源组件读取数据
注意事项:
- 数据频率可选:日线、分钟线、tick 数据
- 支持前复权、后复权处理
- 可设置缓存机制提升效率
2. 基本选股模块(Universe Selection Module)
功能:
定义策略的投资范围(股票池),即“在哪些股票上进行交易”。
常见筛选方式:
- 指数成分股:沪深300、中证500、创业板指等
- 板块分类:行业、概念、地域
- 风险过滤:剔除 ST/*ST 股、停牌股、次新股
- 流动性筛选:日均成交额 > X 亿元
- 市值筛选:小盘股、大盘股分层
实现方法:
python
set_universe(universe='HS300') # 设置沪深300为标的池
# 或使用自定义条件
universe = D.instruments(start_date='2018-01-01', end_date='2023-12-31')
filtered = filter_securities(universe, exclude=['ST', 'ST*'], min_volume=1e7)
重要性:
投资 universe 是策略风格定位的关键,直接影响收益来源和风险暴露。
3. 输入特征模块(Feature Engineering Module)
功能:
对原始数据进行加工,构造用于机器学习或规则模型的输入变量(因子)。
特征类型举例:
| 类型 | 示例 |
|---|---|
| 技术类因子 | MA、MACD、RSI、布林带、波动率 |
| 基本面因子 | PE/PB/PCF、ROE、毛利率、负债率 |
| 量价行为因子 | 换手率突增、大单净流入、跳空缺口 |
| 时间序列特征 | 过去 N 日收益率、动量反转、偏度峰度 |
| 截面标准化 | Z-Score、行业中性化、去极值处理 |
处理步骤:
- 计算原始因子
- 异常值处理(winsorize)
- 缺失值填充(前向填充、均值填充)
- 标准化(Z-score、min-max)
- 中性化(市值中性、行业中性)
工具支持:
FeatureBuilder组件(可视化构建)- 自定义函数 +
shift,rolling,groupby等 Pandas 操作
python
def factor_momentum(close):
return close / close.shift(20) - 1 # 20日动量
4. 信号生成模块(Alpha Model / Signal Generation Module)
功能:
基于特征数据,生成对未来收益的预测信号(如上涨概率、预期收益率排名)。
常见方法:
| 方法 | 描述 |
|---|---|
| 多因子线性模型 | 回归预测收益率,因子加权合成信号 |
| 机器学习模型 | XGBoost、LightGBM、Random Forest 预测涨跌 |
| 深度学习 | LSTM、Transformer 学习时序模式 |
| 规则系统 | IF 条件满足 THEN 买入(如突破布林带上轨) |
在 BigQuant 中的实现:
- 使用
ML.train训练模型 - 将特征作为输入,标签为目标(如未来5日收益率)
- 输出为预测值(predict_label),用于排序选股
python
model = ML.train(inputs=features, label=target, method='xgboost')
prediction = model.predict(features_today)
输出形式:
- 连续值:预测收益率(越大越可能上涨)
- 分类值:1=看涨,0=看跌
- 排名:按预测值降序排列,选前 N 名
5. 仓位分配模块(Position Allocation Module)
功能:
根据信号决定每只股票的持仓权重,完成资金配置。
常见分配策略:
| 方法 | 说明 |
|---|---|
| 等权重 | 所有入选股票平均分配资金 |
| 按信号强度加权 | 预测值越高,权重越大 |
| 风险平价 | 按波动率倒数分配权重 |
| 均值-方差优化 | 最大化夏普比率,考虑协方差矩阵 |
| 行业中性约束 | 控制各行业权重偏差不超过阈值 |
实现要点:
- 支持动态调仓(每周/每月)
- 考虑交易成本、滑点影响
- 支持最大持仓比例限制(如单票≤5%)
示例逻辑:
python
ranked_stocks = prediction.sort_values(ascending=False)[:50] # 选前50
weights = equal_weight(ranked_stocks) # 等权分配
6. 高性能回测模块(High-Performance Backtesting Engine)
功能:
模拟策略在历史行情中的表现,评估其盈利能力与风险水平。
核心能力:
- 支持全市场、多周期回测(日频、分钟级)
- 精确撮合:基于收盘价、集合竞价、逐笔成交模拟
- 成本建模:手续费、印花税、滑点(固定/百分比)
- 组合绩效分析:年化收益、最大回撤、夏普比率、换手率等
回测流程:
- 初始化账户(初始资金、基准指数)
- 按调仓周期执行选股 → 生成信号 → 分配仓位
- 下单并记录持仓变化
- 每日计算净值曲线
- 输出绩效报告与图表
输出指标示例:
| 指标 | 含义 |
|---|---|
| 年化收益率 | 年均复合增长率 |
| 最大回撤 | 历史最深亏损幅度 |
| 夏普比率 | 单位风险带来的超额收益 |
| 胜率 | 盈利交易占比 |
| 换手率 | 年均交易频率,反映交易成本压力 |
工具支持:
- BigQuant 提供图形化回测面板
- 支持 Python SDK 编程式回测
- 可导出详细交易记录(trade log)
7. 风控与监控模块(Risk Control & Monitoring Module)(补充项)
功能:
防止策略出现极端风险,保障资金安全。
常见风控措施:
- 单票最大持仓限制
- 行业集中度控制
- 波动率上限(动态降低仓位)
- 黑名单机制(禁止交易某些股票)
- 止损机制:个股亏损超 X% 强制止损
实现方式:
在回测或实盘引擎中嵌入风控逻辑,例如:
python
if portfolio.volatility > 0.3:
reduce_position(0.5) # 波动过高时减半仓
8. 交易执行模块(Order Execution Module)(面向实盘)
功能:
将策略输出的调仓指令转化为实际订单,并发送至券商接口。
支持模式:
- 模拟交易(Paper Trading)
- 实盘交易(Live Trading)
- 算法交易:TWAP、VWAP 减少冲击成本
对接方式:
- BigQuant 支持接入主流券商 API(如华泰、中信等)
- 提供事件驱动框架:
handle_bar,initialize
python
def handle_bar(context, bar_dict):
# 每个调仓周期运行一次
signals = generate_signals()
target_positions = allocate_weights(signals)
order_target_percent(target_positions)
✅ 二、策略模块之间的协作流程图
[数据抽取]
↓
[基本选股] —→ 确定股票池
↓
[输入特征] —→ 构造因子
↓
[信号生成] —→ 得到预测值/排名
↓
[仓位分配] —→ 计算持仓权重
↓
[风控检查] —→ 调整异常仓位
↓
[下达交易] ←→ [高性能回测]
↓
[绩效分析与优化]
✅ 三、总结:BigQuant 策略八大核心模块一览表
| 模块名称 | 是否关键 | 主要作用 | 典型工具/API |
|---|---|---|---|
| 数据抽取模块 | ✅ | 获取原始数据 | get_price, DataSource |
| 基本选股模块 | ✅ | 定义投资 universe | set_universe, filter_securities |
| 输入特征模块 | ✅ | 构造因子 | FeatureBuilder, 自定义函数 |
| 信号生成模块 | ✅(核心) | 产生买卖信号 | ML/XGBoost/LSTM 模型 |
| 仓位分配模块 | ✅ | 分配资金权重 | equal_weight, 优化器 |
| 高性能回测模块 | ✅ | 验证策略表现 | 回测引擎、绩效报告 |
| 风控监控模块 | ✅(建议) | 控制风险暴露 | 波动率控制、黑名单 |
| 交易执行模块 | ✅(实盘) | 实际下单交易 | order_target_percent |
🔚 结语
在 BigQuant 平台上构建一个成功的量化策略,不仅仅是写几行代码,而是需要系统性地设计上述各个模块,并不断迭代优化。尤其是:
- 特征质量决定模型上限
- 信号有效性是盈利核心
- 回测真实性关乎实盘表现
- 风控机制保护长期生存能力
17万+

被折叠的 条评论
为什么被折叠?



