练习Python,计算指数基金组合对应的指数,并绘制变化趋势。
基金组合信息
基金组合中一共有 7 支基金,分别为a,b,c,d,e,f,g。创建一个 Dataframe 用来存放各支基金在组合中的份额占比以及跟踪的指数。指数代码从新浪财经查找。
| |
| rate | indexname | indexnum | |
|---|---|---|---|
| a | 0.2097 | 上证指数 | sh000001 |
| b | 0.0989 | 中证500 | sh000905 |
| c | 0.0966 | 沪深300 | sh000300 |
| d | 0.0884 | 上证指数 | sh000001 |
| e | 0.2174 | 上证指数 | sh000001 |
| f | 0.1906 | 深证金融地产行业指数 | sz399619 |
| g | 0.0984 | 上证指数 | sh000001 |
获取各指数历史数据
利用 AkShare 获取各指数的历史数据。因为股票基金是以收盘价定价,所以只需要各指数的收盘价来合成基金组合的对应指数。
基金份额作为基金在组合中的权重,给每只基金追踪的指数乘以权重。
| a | b | c | d | e | f | g | |
|---|---|---|---|---|---|---|---|
| 0 | 20.965806 | 97.607080 | 127.169553 | 8.838232 | 21.735652 | 624.215191 | 9.838032 |
| 1 | 21.890583 | 99.259304 | 125.781314 | 9.228076 | 22.694386 | 614.938689 | 10.271976 |
| 2 | 22.884561 | 98.365446 | 124.876172 | 9.647092 | 23.724862 | 614.153798 | 10.738392 |
| 3 | 24.021135 | 98.663233 | 122.937507 | 10.126220 | 24.903170 | 615.741686 | 11.271720 |
| 4 | 25.216425 | 99.526729 | 123.769813 | 10.630100 | 26.142350 | 624.679492 | 11.832600 |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 2735 | 332.051772 | 623.495270 | 236.618899 | 139.977952 | 344.244421 | 1151.094773 | 155.812562 |
| 2736 | 327.414885 | 618.399250 | 241.072931 | 138.023252 | 339.437273 | 1159.137140 | 153.636742 |
| 2737 | 330.578839 | 627.443951 | 238.396725 | 139.357031 | 342.717404 | 1147.121716 | 155.121401 |
| 2738 | 322.013852 | 633.143459 | 236.409760 | 135.746421 | 333.837918 | 1149.457519 | 151.102351 |
| 2739 | 311.427148 | 631.412215 | 236.635127 | 131.283547 | 322.862479 | 1093.204598 | 146.134627 |
2740 rows × 7 columns
计算基金对应指数
将所有基金乘以权重后的指数相加,得到加权平均值,作为基金组合的指数。
| a | b | c | d | e | f | g | all | |
|---|---|---|---|---|---|---|---|---|
| 0 | 20.965806 | 97.607080 | 127.169553 | 8.838232 | 21.735652 | 624.215191 | 9.838032 | 900.531514 |
| 1 | 21.890583 | 99.259304 | 125.781314 | 9.228076 | 22.694386 | 614.938689 | 10.271976 | 893.792352 |
| 2 | 22.884561 | 98.365446 | 124.876172 | 9.647092 | 23.724862 | 614.153798 | 10.738392 | 893.651931 |
| 3 | 24.021135 | 98.663233 | 122.937507 | 10.126220 | 24.903170 | 615.741686 | 11.271720 | 896.392952 |
| 4 | 25.216425 | 99.526729 | 123.769813 | 10.630100 | 26.142350 | 624.679492 | 11.832600 | 909.964909 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 2735 | 332.051772 | 623.495270 | 236.618899 | 139.977952 | 344.244421 | 1151.094773 | 155.812562 | 2827.483087 |
| 2736 | 327.414885 | 618.399250 | 241.072931 | 138.023252 | 339.437273 | 1159.137140 | 153.636742 | 2823.484731 |
| 2737 | 330.578839 | 627.443951 | 238.396725 | 139.357031 | 342.717404 | 1147.121716 | 155.121401 | 2825.615666 |
| 2738 | 322.013852 | 633.143459 | 236.409760 | 135.746421 | 333.837918 | 1149.457519 | 151.102351 | 2810.608930 |
| 2739 | 311.427148 | 631.412215 | 236.635127 | 131.283547 | 322.862479 | 1093.204598 | 146.134627 | 2726.825114 |
2740 rows × 8 columns
绘制基金组合指数的变化趋势图。
| |

从历史数据变化趋势看,2004年之前的变化参考价值不大,对2004年之后的数据重新绘制趋势图。从上图看,只有上证指数和沪深300指数有2004年之前的数据。
| |

从上图看:
- 所有指数的变化方向基本一直,要涨都涨,要跌都跌,但涨跌幅度不一样;
- 大概2009年之前这几个指数的值基本一样,图中线条接近重合;2009年之后开始分化,说明不同行业、不同类型企业的发展速度和程度开始分化;
- 基金组合指数在2016年之后处于上证指数和沪深300指数之间,但因为都是增强性基金,所以不意味着该基金组合收益率一定小于沪深300的增长率;
- 基金组合指数由各支基金跟踪的指数加权平均得到,由于都是增强性基金,不能准确反应基金组合的净值变化,但可以用来辅助选择定投的时间点。
- 长期来看,指数基金是能赚钱的,但需要把握好买卖时间。