返回 Skill 列表
extension
分类: 数据与分析需要 API Key

fund-style-regression

量化基金风格归因 — 输入基金净值序列,对沪深300/中证500/中证1000/中证2000 四指数做滚动回归,输出成分股权重时序堆叠面积图与 Excel 权重表。自动识别日期/净值列、对齐不同频率数据。

person作者: user_186b4ea5hubcommunity

基金风格归因 — 滚动回归权重分析

输入一只量化基金的净值序列文件(.xlsx / .xls / .csv),脚本自动:

  1. 智能解析 — 自动识别日期列(%Y%m%d / %Y-%m-%d / Excel 序列号等)与净值列(优先 累计净值,其次 复权净值单位净值
  2. 对齐 — 通过 Tushare 拉取同期沪深300/中证500/中证1000/中证2000 指数日线,与基金日期按 inner-join 对齐
  3. 滚动回归 — 对滚动窗口内的收益率做约束最小二乘(SLSQP,权重 ≥ 0,总和 ≤ 1),得出四指数 + "其他"(中证2000 以后)的权重时序
  4. 输出 — 堆叠面积图 PNG + 权重 Excel

环境依赖

  • Python 3.9+(脚本使用 C:/Users/HT/AppData/Local/Programs/Python/Python39/python.exe
  • 包:pandas numpy matplotlib scipy scikit-learn tushare openpyxl xlrd

Tushare Token

不在技能内硬编码。脚本按优先级读取:

  1. 环境变量 TUSHARE_TOKEN
  2. 本地文件 ~/.config/tushare/token(推荐,自动创建被 .gitignore

若都未找到,脚本报错退出(不会降级到模拟数据)。

命令行用法

python scripts/fund_style_regression.py <基金净值文件路径> [选项]

参数:

| 参数 | 说明 | 默认值 | |------|------|--------| | file | 基金净值文件路径(.xlsx/.xls/.csv),必填 | — | | --outdir | 输出目录 | 文件所在目录 | | --window | 滚动回归窗口(观测点数,非自然日) | 12 | | --token | Tushare token(优先级最高,命令行传参) | — |

示例:

python scripts/fund_style_regression.py "8、平方和鼎盛中证500指数增强9号私募证券投资基金.xls" --window 12
python scripts/fund_style_regression.py fund_nav.csv --window 20 --outdir ./output

输出文件

| 文件 | 说明 | |------|------| | {基金文件名}_风格归因.png | 权重时序堆叠面积图 | | {基金文件名}_权重明细.xlsx | 权重明细表(含日期、各指数权重、其他权重) |

关键实现细节

  • 回归方法:scipy.optimize.minimize (SLSQP),约束 w_i ∈ [0,1]、Σw_i ≤ 1,目标最小化残差平方和
  • "其他" = 1 − Σ(四指数权重),代表中证2000 以外的微小盘成分
  • 收益率计算:pct_change() 按基金观测频率
  • 对齐逻辑:基金日期 inner-join 指数收盘价,若某日是节假日/非交易日自动剔除