基于 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 反推用)
MIT