基本面权重在量化选股中的占比参考
基本面权重应占多少",没有一个固定答案,取决于策略类型、持仓周期、市场环境,但可以给出业界常用的参考区间和Python实践建议。

按策略类型的经验权重
| 策略类型 | 持仓周期 | 基本面权重 | 技术/量价权重 | 说明 |
|---|---|---|---|---|
| 短线交易/打板 | 1-5天 | 0% ~ 10% | 90% ~ 100% | 基本面几乎不参与 |
| 趋势/动量 | 1-3月 | 20% ~ 30% | 70% ~ 80% | 基本面做过滤 |
| 多因子选股 | 1-6月 | 40% ~ 60% | 40% ~ 60% | 最典型场景 |
| 价值投资 | 1年以上 | 70% ~ 90% | 10% ~ 30% | 基本面主导 |
| 指数增强 | 3-12月 | 50% ~ 70% | 30% ~ 50% | 基本面+风控因子 |
最常用的通用答案:多因子选股场景下,基本面权重约 50%~60%。
Python中常见的权重分配方式
方式1:等权(入门)
# 基本面因子 6个,技术因子 4个 → 各占50% fund_weight = 0.5 tech_weight = 0.5
方式2:分层权重(推荐)
# 基本面内部再细分
weights = {
'value': 0.20, # 估值 PE/PB
'quality': 0.15, # ROE/毛利率
'growth': 0.15, # 营收/净利润增速
'momentum': 0.25, # 动量
'volatility':0.10, # 波动率
'liquidity': 0.15, # 流动性
}
# 基本面合计 = 0.50
方式3:IC/ICIR 动态加权(进阶)
# 根据因子历史 IC 表现自动分配权重 import numpy as np ic_series = compute_ic(factors) # 各因子IC序列 icir = ic_series.mean() / ic_series.std() weights = np.clip(icir, 0, None) / np.clip(icir, 0, None).sum() # 结果通常基本面因子合计落在 40%~65%
决定权重的关键因素
-
持仓周期越长 → 基本面权重越高
- 日频:< 10%
- 月频:30%~50%
- 季频/年频:> 60%
-
市场环境
- A股熊市/震荡市:基本面(低估值、高ROE)权重上调
- 牛市/主题行情:技术面(动量、资金)权重上调
-
股票池
- 大盘蓝筹:基本面权重 60%+
- 中小盘/题材:技术面权重 60%+
-
风险约束
若要求低回撤 → 提高质量因子(属基本面)权重
Python回测验证建议
不要拍脑袋定权重,用代码验证:
import itertools
import numpy as np
best = None
for w_f in np.arange(0.3, 0.8, 0.1): # 基本面权重
for w_t in [1 - w_f]: # 技术面权重
score = w_f * fund_score + w_t * tech_score
ret = backtest(score)
ir = ret.mean() / ret.std()
if best is None or ir > best['ir']:
best = {'w_f': w_f, 'ir': ir}
print(best)
绝大多数A股多因子策略的最优基本面权重落在 0.4 ~ 0.6 之间。
直接回答
- 如果只能给一个数:50%~60%
- 短线:0~20%
- 中线多因子:50%左右
- 长线价值:70%~90%
需要我针对你具体的策略(持仓周期、股票池、因子列表)给出一个更精确的权重方案吗?