Skip to content

Repository files navigation

Fund Factor Engine

基于 AKShare 的公募基金因子计算与评价系统。支持多赛道可配置,月度 IC 分析,动态 HTML 报告输出。

快速开始

pip install -r requirements.txt

# 赛道管理
python run_pipeline.py sectors                  # 查看赛道与基金数
python run_pipeline.py sectors --check <名称>    # 检查新赛道名冲突

# 指定赛道运行 (每次启动自动同步配置→基金名单, ~3-5s)
python run_pipeline.py --sectors 白酒 --calc     # 仅白酒,因子计算
python run_pipeline.py --sectors 白酒 --eval     # 仅白酒,评价+报告 (自动先calc)
python run_pipeline.py --sectors 白酒 --fetch    # 仅白酒,拉取净值数据
python run_pipeline.py --sectors 白酒             # 白酒全流程

# 全局命令
python run_pipeline.py --fetch                   # 所有赛道拉取数据
python run_pipeline.py --calc                    # 所有赛道因子计算
python run_pipeline.py --eval                    # 所有赛道评价+报告
python run_pipeline.py                           # 全流程

赛道配置

编辑 sectors_config.json 即可增删改赛道。每次运行自动从 AKShare 同步最新基金名单,无需手动刷新。

{
  "sectors": [
    {"name": "芯片半导体", "keywords": ["半导体","芯片","集成电路"]},
    {"name": "通信5G",     "keywords": ["通信","5G","信息产业"]},
    {"name": "白酒",       "keywords": ["白酒","","食品饮料"]},
    {"name": "医疗医药",   "keywords": ["医疗","医药","医改","中药","生物医药"]},
    {"name": "消费",       "keywords": ["消费","内需","品质生活"]},
    {"name": "新能源汽车", "keywords": ["新能源车","新能源汽车","智能汽车","电动汽车"]},
    {"name": "新能源",     "keywords": ["新能源","光伏","风电","储能","碳中和"]},
    {"name": "化工",       "keywords": ["化工","化学","石化","煤化工"]},
    {"name": "传媒",       "keywords": ["传媒","游戏","媒体"]},
    {"name": "创新药",     "keywords": ["创新药","医药创新","生物科技"]}
  ],
  "fund_filter": {
    "types": ["股票型","混合型-偏股","混合型-灵活","混合型-平衡"],
    "exclude_keywords": ["ETF","联接","指数"],
    "exclude_c_share": true
  }
}

新赛道名与已有赛道相似(阈值0.6)时,sectors --check 会警告。

项目结构

fund-factor/
├── run_pipeline.py              # 一键入口
├── sectors_config.json          # 赛道配置(可编辑)
├── sector_funds.json            # 基金名单(自动生成)
├── requirements.txt
├── src/fund_factor/             # 源码
│   ├── sectors.py               # 赛道管理器
│   ├── fetch.py / factors.py    # 数据获取 / 因子计算
│   ├── evaluate.py              # 因子评价
│   ├── ic_analysis.py           # IC 分析
│   ├── report.py                # HTML 报告(动态,含赛道名)
│   └── engine/
│       ├── t1_nav.py            # T1 净值因子 (29个)
│       ├── t2_holding.py        # T2 持仓因子 (13个)
│       ├── t3_benchmark.py      # T3 基准因子 (12个)
│       └── t4_manager.py        # T4 经理因子 (10个)
├── data/                        # 本地数据 (237KB)
├── cache/                       # AKShare 缓存 (gitignored)
└── output/                      # 产出 (gitignored)
    ├── factor_matrix.parquet    # 因子矩阵
    ├── factor_report_白酒.html   # 按赛道命名的动态报告
    └── 数据质量问题报告.html

覆盖

  • 赛道: 10个预置赛道, 合计 ~540 只主动权益基金 (去C)
  • 因子: 64个 (T1净值29 + T2持仓13 + T3基准12 + T4经理10)
  • 时间窗口: 2020-01 ~ 2026-06
  • IC分析: 月频 Spearman 秩相关, 65期截面, 赛道内独立计算

数据源

  • AKShare (天天基金网 / 基金业协会 / 雪球)
  • 本地 A 股最新收盘价 Parquet (PE/PB 反推用)

License

MIT

About

基于 AKShare 的公募基金因子计算与评价系统。支持多赛道可配置,月度 IC 分析,动态 HTML 报告输出。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages