来源:Python数据之道 (ID:PyDataLab)
作者:阳哥
大家好,我是阳哥。
大家知道,在财经领域,Python是有着广泛的用途的,这不,最近A股成交量明显扩大,有不少消息说是量化类的基金贡献了相当比例的成交量。
量化基金对成交量的贡献到底有多大,咱也不知道。
我们所知道的是,在金融量化领域,Python 是主力编程语言之一。
在财经领域,之前,阳哥分享过部分Python实践应用的主题,包括:
近几年,不少同学都是经由基金进入到股市中的。去年就很流行“买股不如买基”的说话,至于股票和基金到底谁更好,这个仁者见仁智者见智,恐怕一时半会儿也说不清楚。
今天,阳哥给大家分享的主题是 用 Python 来追踪和更新基金的持仓结构以及基金的股票增持和减持情况,涉及到的Python库主要是 pandas 和 akshare 。
最终实现的效果包括两个方面:
单只基金的不同季度持仓变化情况
多只基金的十大持仓的历史信息
效果如下:
01 akshare 介绍
与tushare 类似, akshare 是国内比较的优秀的财经数据工具。
AKShare 是基于 Python 的财经数据接口库, 目的是实现对股票、期货、期权、基金、外汇、债券、指数、加密货币等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具。
在使用 akshare 之前,需要进行安装,使用命令如下:
pip install akshare
在安装好 akshare 后,导入相关 Python库,如下:
import akshare as ak
import pandas as pd
import numpy as np
print(f'pandas version: {pd.__version__}')
print(f'akshare version: {ak.__version__}')
# pandas version: 1.3.2
# akshare version: 1.0.91
02 单只基金
对于单只基金的持仓情况变化,主要是通过对比临近的两个季度,来观察基金持仓的股票增持与减持情况,从而来跟踪基金的趋势变化。
由于基金季度报告中,1季度和3季度只披露前十大股票的持仓情况,而半年度(Q2)和年度(Q4)报告会披露全部持仓的情况,因此,也可以通过对更详细信息的对比来挖掘有些趋势信息。
下面,将详细的介绍获取并对比两个季度的持仓数据。
分步骤介绍
首先,咱们通过 akshare 来获取基金的季度持仓数据,以 易方达蓝筹精选基金(基金代码:005827)为例,获取2019-2021年的持仓数据情况,代码如下:
# 易方达蓝筹精选,005827
# 前海开源公共事业股票,005669
years = ['2019',&#