大家好,欢迎来到IT知识分享网。
数量技术宅团队在CSDN学院推出了量化投资系列课程
欢迎有兴趣系统学习量化投资的同学,点击下方链接报名:
更多精彩内容,欢迎关注公众号:数量技术宅,获取本期分享的完整代码,可添加技术宅个人微信号:sljsz01,与我交流
监控股票指数的选取
A股市场近期如火如荼,代表核心资产的沪深300指数,近期突破了2015年大牛市的高点,直奔2007年的历史最高点而去,在如此火爆的行情下,有些投资者认为大行情来了,想跑步进场,而另一部分人觉得市场过热了,应该获利了结。那么此时,到底是加仓、减仓、持股还是持币观望,才是最合理的选择?
对于大家普遍关心的这个问题,数量技术宅作为量化投资者,将采用股票指数的估值模型,客观地为大家分析当前股票市场的投资价值。
我们这个股票指数估值模型,通过估值指标分位数来衡量市场的投资价值,而在介绍如何计算估值指标分位数之前,我们先明确一下我们这个模型需要监控的股票指数标的。
首先,A股市场无疑是我们重点关注的对象,A股市场典型的指数包括宽基指数,典型的如上证50、沪深300、中证500指数,这三个指数有对应的股指期货,关注度最高,创业板、中小板等指数,也是大家做中小盘股票经常关注的。除了宽基指数,行业(风格)指数,也是大家关注度比较高的,近期经常提到的好赛道,就是集中在消费、医药、科技等行业的个股,我们将A股的宽基、行业(风格)指数,纳入监控体系中。
此外,在国内市场,我们还能借道QDII的ETF投资一些海外市场的指数,例如香港的恒生指数、恒生中国企业指数,美股的三大指数:道琼斯工业指数、标准普尔500指数、纳斯达克指数,以及在美股上市的中概股组成的指数中概互联等。
A股市场的重要指数,加上海外市场我们能够投资的指数,就构成了我们这个股票指数估值监控系统的监控标的,当然,监控标的可以根据我们的投资需求、范围不断扩展。有了投资标的,接下来最关键的一步,就是我们如果构建估值体系,来衡量、比较这些标的投资价值。
如何衡量估值:估值指标分位数
我们将引入估值指标分位数,来对所有标的指数的投资价值,进行计算和评价。常用的估值指标有市盈率PE、市净率PB、市销率PS、以及分红率,这些指标相信大家已经耳熟能详。那么,估值指标的分位数又是如何来计算,我们先来看分位数的定义及计算公式。
我们用一个小例子,来为大家通俗的讲解分位数的概念。假如我们有10位同学的成绩分别是 :60,70,87,56,35,64,28,84,89,65。如果想在这10位同学中淘汰至少35%,同时让至少65%的同学晋级,你怎么选?当然的想法是找一个数,小于等于这个数的同学至少有35%,大于等于这个数的同学至少有65%,我们就把这个数记为0.35分位点,记为x_0.35,见下图:
要想顺利地找到这个数,需要将数据重新排序:28, 35, 56, 60,64, 65, 70, 84, 87, 89。排序后上面十个数分别记为x(1)到x(10)。至少有35%,即至少有10*35%=3.5个学生,所以x_0.35 ≥60=x(4);同时,至少有65%,即至少有1065%=6.5个学生,所以x_0.35≤60=x(4); 故二者取交集,x_0.35 =60。也就是说,35分位数等于60。
理解完这个例子,对于估值指标分位数,它的计算原理与我们举例的成绩是一样的,有两点不同,一是计算分位数的数据源,对于成绩来说是横截面数据(同一时间、不同学生的成绩),而对于估值指标的数据源,是时间序列数据(同一指数,历史不同时间点的估值指标)。二是,我们刚才的例子,是在知道分位数的前提下,计算该分位数对应的数据,而对于估值指标分位数则反之,我们获取到该指标最新的数据,从而计算数据对应在某个历史时间段的分位数。
接下来,我们就来看估值指标分位数计算的Python代码。这段代码很好理解,首先,我们对所需要计算的估值指标的历史时间序列数据排序,其次我们获取到最新的一个指标数据在所有数据排序后队列的位置,最后,我们将该位置除以序列总长度,就能得到对应估值指标的分位数了。
def cal_percentile(value, df_1): PE_last = df_1[value].iloc[-1] df_2 = df_1.sort_values(by=value, ascending=True).reset_index().drop(["index"], axis=1) location = np.where(df_2[value] == PE_last)[0][0] Percentile = round(location / len(df_2[value]), 4) return Percentile
我们按照上述公式,计算所有监控指数的PE分位数,并按PE分位数从小到大排序。PE分位数越小,代表该指标处于历史的分位点越低,对应指数的投资价值也越大。
同理,计算所有指数的PB分位数,根据PB指标的特点,同样PB分位数越低,指数投资价值越大。
所有指数PS分位数排序,与PB、PE计算公式一致,也是分位数越低,越具有投资价值。
最后,指数分红率分位数排序,这里我们做了一个特殊的处理,在计算分红率分位数后,我们用100减去原始计算的分位数,由于分红率的原始指标越高,表示投资价值越大,为了与其他几个指标的方向统计,调整后的分红率分位数指标,依然可以看作是越小越有价值。
估值指标综合打分排序法
对于PE、PB、PS以及分红率指标来说,他们从不同的维度,衡量某个指数是否具有投资价值。在有的时候,不同指数的PE、PB等估值指标的分位点相差较远,以某个单一的估值指标分位数来衡量某个指数的投资价值,或是比较某个指数与其他指数的投资性价比,往往无法得到确切的答案。
因此,我们采用综合打分法,将PE、PB、PS以及分红率指标的分位数,进行简单的加权平均,得到所有分位数的平均值,同时,为了让最后的打分更加直观,我们同样使用100减去初始计算得到的平均分位数。这样一来,最终的得分越高,就代表该指数,在各个估值指标的分位数都排名靠前,各个估值指标都表明该指数的投资价值很大。
PE_Percent = cal_percentile('PE_TTM', df) PB_Percent = cal_percentile('PB_LF', df) PS_Percent = cal_percentile('PS_TTM', df) Div_Percent = round(1 - cal_percentile('DIVIDENDYIELD2', df), 4) Score = round((1 - (PE_Percent + PB_Percent + PS_Percent + Div_Percent) / 4) * 100, 4)
我们再来看一下,当我们采用这个估值评价体系计算得到综合评分后,哪些指数是目前来看,性价比最高的。我们可以看到,站在当下的时间点,房地产、建筑、电力公用事业,这些在过去一年几乎被市场、被主流投资人遗忘或抛弃的行业,反而具有极高的性价比和投资价值。
快速生成估值表
在上一小节,我们为大家生成了所有指数的单个估值指标、以及组合评分的对比柱状图。但也有一些投资者想明确的看到这些数据,或者想观测具体某个指数、各个估值指标分位数的详细数据。这也很容易做到,我们只需要将绘图所用的估值表的dataframe,保存为csv文件,并运用excel中的色阶功能,就能够清楚的看到原始数据,以及每个指数对应的投资热度。这里,越接近红色,代表该指数投资价值越大,越接近绿色,则反之。
这张估值表,我们也会在后期发布其他文章时,不定期的为大家更新,让大家能够对于自己想要做投资的指数,有一个基本的价值判断。
指数估值区间可视化
与此同时,除了生成不同指数的对照图、指数估值表之外,对于单一指数,我们还可以绘制其在时间序列上的估值图,我们同样采用分位数的方式,定义历史区间上的三种不同颜色。其中,粉色区间,代表了估值超过历史80%的分位数,需要警惕该指数是否高估;绿色区间,代表估值低于历史20%的分位数,该指数投资价值凸现;而黄色区间,代表该指数的估值处于20%-80%分位数之间,处于合理估值区域。
我们在文中,为大家绘制出关注度最高的几个指数:上证50、沪深300、中证500、中小板、创业板的估值图,对于其他的指数,大家也可以根据我们的源代码,修改获取的指数标的,就能绘制出不同指数的估值图。
从我们计算的估值表、绘制的估值图中,相信可以感受到,目前市场整体处于一个亢奋的状态,主流指数大多进入了80%分位数的粉红色区域,虽然距离15年的顶点估值尚存在差距,我们也无法预测市场何时到顶、何时反转,但至少,这个估值体系和可视化工具,为所有投资者,特别是价值投资者,提供了一个基于历史数据的客观的判断:目前的A股市场,处于相对高估状态。
最后,如果大家想要获取文中完整的python代码,或是文章内容有任何的问题,欢迎扫码添加技术宅的个人微信,与我交流。
本期代码同步放送在数量技术宅知识星球:量化学院
欢迎加入数量技术宅知识星球:量化学院,知识星球每日更新,内有更多量化干货,等着你来学习。星球学院=公众号全策略+星球独家量化干货+答疑+日更。欢迎订阅量化学院,用一年的时间,做一件让自己感动的事。(下图为部分量化学院更新内容)
欲加入量化学院的同学,请添加技术宅微信sljsz01领取星球优惠券,限最后3位优惠名额,谢谢。
往期干货分享推荐阅读
Omega System Trading and Development Club内部分享策略Easylanguage源码
量化交易如何选择云服务器,如何在本地远程开发与调试云服务器程序
【数量技术宅|量化投资策略系列分享】基于指数移动平均的股指期货交易策略
AMA指标原作者Perry Kaufman 100+套交易策略源码分享
【数量技术宅|金融数据分析系列分享】套利策略的价差序列计算,恐怕没有你想的那么简单
【数量技术宅|量化投资策略系列分享】成熟交易者期货持仓跟随策略
【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数
大宗商品现货数据不好拿?商品季节性难跟踪?技术宅带你Python爬虫一键解决没烦恼
【数量技术宅|金融数据分析系列分享】如何正确抄底商品期货、大宗商品
【数量技术宅|量化投资策略系列分享】股指期货IF分钟波动率统计策略
【数量技术宅 | Python爬虫系列分享】实时监控股市重大公告的Python爬虫
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25004.html