Files
sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327
2026-04-02 08:55:07 +08:00
..
2026-04-02 08:55:07 +08:00
2026-04-02 08:55:07 +08:00
2026-04-02 08:55:07 +08:00
2026-04-02 08:55:07 +08:00
2026-04-02 08:55:07 +08:00
2026-04-02 08:55:07 +08:00
2026-04-02 08:55:07 +08:00

进阶多因子+动态加权+估值择时 A股量化中低频方案

方案概述

频率: 中低频(日频/周频调仓)
市场: A股
核心思想:

  1. 多因子: 复合多种因子(估值、质量、动量、波动、市值等)
  2. 动态加权: 根据市场环境动态调整因子权重,不是固定权重
  3. 估值择时: 基于大盘估值判断整体仓位,牛熊择时

目录结构

a-shares-quant-factors-20260327/
├── README.md               # 本文档
├── __init__.py
├── factors/                # 因子计算模块(每个因子独立文件)
│   ├── __init__.py
│   ├── base_factor.py      # 因子基类
│   ├── pe_factor.py        # 市盈率PE因子
│   ├── pb_factor.py        # 市净率PB因子
│   ├── roe_factor.py       # ROE净资产收益率因子
│   ├── momentum_factor.py # 动量因子
│   ├── volatility_factor.py # 波动率因子
│   └── size_factor.py      # 市值因子
├── strategies/             # 策略主逻辑
│   ├── __init__.py
│   └── multi_factor_dynamic_strategy.py  # 主策略
└── utils/                  # 工具函数
    ├── __init__.py
    ├── factor_combiner.py  # 因子加权合成
    ├── dynamic_weight.py   # 动态权重计算
    └── market_timing.py    # 大盘估值择时

使用方法

from vnpy.trader.app.ctaStrategy import CtaTemplate
from strategies.multi_factor_dynamic_strategy import MultiFactorDynamicStrategy

# 初始化策略
# 按照vn.py标准CtaStrategy接口使用

因子列表

因子 类型 方向 说明
PE (市盈率) 估值 越小越好 估值越低分数越高
PB (市净率) 估值 越小越好 估值越低分数越高
ROE 质量 越大越好 盈利能力越强分数越高
近1月动量 动量 越大越好 趋势越强分数越高
近3月动量 动量 越大越好 趋势越强分数越高
波动率 风险 越小越好 波动越小分数越高
市值 规模 中小盘偏好 市值越小分数越高

动态加权逻辑

  • 每月底根据各因子近期IC值调整权重
  • IC越高的因子权重越大
  • 避免长期因子失效

估值择时逻辑

  • 计算全市场PE/PB分位数
  • 分位数高位降低仓位
  • 分位数低位提高仓位
  • 仓位范围: 0.3 -> 1.0

创建日期: 2026-03-27
作者: 翼德 (张飞)