如何搭建量化投资研究系统?(数据篇之财务数据)

股票市场的存在为企业融资提供了一个自由开放的环境,在这里投资者们将资金配置于他们认为的优秀、稳健、有潜力的企业,无数的投资决策汇聚而成的“群体智慧”影响着整体的经济运行,最终促进社会的共同福祉。然而判断一个企业优质与否并非易事,正如不能仅仅通过体温来衡量人体的健康状况一样,单纯的股票价格难以完整全面地反映一家上市公司的所有特质。要想全面细致的考察一家上市公司,有必要仔细研究企业的财务数据。

财务数据

上市公司的财务数据大体上分成两类:原生财务数据和衍生财务数据。原生财务数据是经典的“三大表”,即资产负债表、利润表和现金流量表。衍生财务数据通常指原生财务数据结合交易数据计算出的各类财务指标,例如速动比率、净利润增长率、市盈率(PE)等等。量化投资研究中用的最多的是衍生财务数据,即财务指标,基于财务指标建立因子选股模型是量化投资中一个重要的研究领域。下面介绍如何借助R收集网络上公开的财务指标数据。

各大门户网站的股票频道是首选的数据源,不过财务数据的结构比交易数据复杂得多,以至于各大网站提供的数据形式各异,内容时有不同,需要权衡取舍。回想《数据篇》中关于网络数据采集的“约法三章”,比较过几大数据源之后,选定“新浪股票”与“和讯股票”作为数据源。就数据的丰富和细致程度而言,新浪股票要胜过和讯股票,所以把新浪股票作为主数据源,和讯股票作为补充。

以武钢股份(600005)为例,新浪股票提供的财务指标数据在下面的链接中,武钢股份(600005)财务指标,所罗列的指标大约有八十多个。新浪股票以指标为单位组织数据,每一个指标都对应一个链接,打开之后便是所有历史数据。

新浪股票中武钢股份的财务指标数据

和讯股票提供的财务指标数据在下面的链接中,财务比率_武钢股份(600005)_个股资料,和讯股票以财报发布时间为单位组织数据,分析网页内容可以容易地找到所有财报的发布时间。

和讯股票中武钢股份的财务比率数据

获取所有的财报发布时间(和讯股票)

了解了数据源的组织构造之后,就可以按照《数据篇》(如何搭建量化投资研究系统?(数据篇))中介绍的方法编写网络爬虫,收集数据并从入数据库。

因子模型举例

市净率(PB)等于市值除以账面价值(也等于股票市价除以每股净资产),是一个很重要的财务指标,对挑选出优质企业有一定的指导意义。市价高于账面价值时企业资产的质量较好,有发展潜力,反之则资产质量差,没有发展前景。

下面来研究一下基于市净率的单因子选股模型。

第一步,在数据库的所有股票中选出数据完整度高的若干只股票,大约1400只,构成股票池。计算这些股票2014年第四季度的市净率,市价采用季度末收盘价数据,每股净资产采用新浪股票提供的“每股净资产_调整后”数据。

第二步,计算上述股票在2015年第一季度的对数收益率。

第三步,去除某些极端值的干扰。

下面是市净率和收益率的散点图,可以看出,在左侧数据密集的部分,蓝色的核回归曲线预示着存在一定程度的正线性关系。但是右侧数据稀疏的部分,曲线的变化则非常平缓,这说明可能需要做对数变换。

市净率与收益率

下面是对市净率做对数变换之后的散点图。和上图相比,线性关系更为明显。

对数市净率与收益率

用R中的lm函数做线性回归得到如下结果,关于log(PB)的回归参数是显著的。

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 21.1236 1.1816 17.877 <2e-16 ***

PB 8.2948 0.9865 8.408 <2e-16 ***

如果将股票池按照市净率的大小关系分成4组,分组的依据是市净率中位数、四分之一分位数和四分之三分位数。PB小于四分之一分位数的股票为“低PB组”,PB大于四分之三分位数的为“高PB组”,两组股票2015年第一季度的收益率是否有明显不同呢?

下面是股票池所有股票2015年第一季度的直方图,其中绿色的曲线是低PB组的密度曲线,红色的曲线是高PB组的密度曲线。一目了然,两组股票的收益率存在显著不同,可见,在上述测试时期,对于当前的股票池来讲,市净率是一个合适的选股指标。

两组股票收益率的比较

你可能感兴趣的:(Python_量化投资)