---
name: aifinlab/a-share-multifactor-model
source: https://app.decimal.ai/s/aifinlab-a-share-multifactor-model@1/SKILL.md
source_sha256: dcda9eeae2a5
---

# A股多因子模型

## 数据源

```bash
SCRIPTS="$SKILLS_ROOT/cn-stock-data/scripts"

# 个股K线（计算动量/波动率因子）
python "$SCRIPTS/cn_stock_data.py" kline --code [CODE] --freq daily --start [日期]

# 实时行情（市值/PE/PB等）
python "$SCRIPTS/cn_stock_data.py" quote --code [CODE1],[CODE2],...

# 财务指标（ROE/营收增速等基本面因子）
python "$SCRIPTS/cn_stock_data.py" finance --code [CODE]
```

**量化计算**：
```bash
QSCRIPTS="$SKILLS_ROOT/a-share-multifactor-model/scripts"
# 多因子回归
python "$QSCRIPTS/multifactor_builder.py" --returns returns.csv --factors "size,value,momentum" --method ols
```

## Workflow

### Step 1: 确定因子体系
根据用户需求选择因子集：
- **Barra CNE5 风格**：Size/Beta/Momentum/ResidVol/NLSize/BP/Liquidity/EarningsYield/Growth/Leverage
- **自定义因子**：用户指定的因子组合
- 通过 cn-stock-data 获取原始数据（行情+财务）

### Step 2: 因子计算与标准化
1. 从原始数据计算因子值
2. 去极值（MAD 法 ±3 倍）
3. 标准化（Z-score）
4. 缺失值处理（行业均值填充）

### Step 3: 截面回归估计因子收益
1. 每期对股票收益 vs 因子暴露做 OLS 回归
2. 回归系数即为因子收益率
3. 计算因子收益的 t 统计量

### Step 4: 构建风险模型
1. 因子协方差矩阵（指数加权）
2. 特质风险估计（回归残差的波动率）
3. 股票层面的风险分解

### Step 5: 输出

| 维度 | formal（完整因子报告） | brief（快速分析） |
|------|---------------------|-------------------|
| 因子定义 | 完整因子体系说明 | 仅列出因子名 |
| 因子收益 | 完整时序+统计检验 | 近期因子收益排名 |
| 暴露分析 | 个股因子暴露详表 | 关键因子暴露值 |
| 风险模型 | 协方差矩阵+特质风险 | 无 |
| 图表 | 因子收益累计曲线 | 无 |

默认风格：brief。用户要求"详细"/"完整模型"时切换为 formal。

## 关键规则
1. 因子暴露需经行业和市值中性化处理
2. 因子协方差使用半衰期 90 天的指数加权
3. 特质收益率需检验正态性假设
4. A 股需剔除 ST 股和次新股（上市<60日）
5. 行业分类默认使用申万一级（31 个行业）