由于ETF基金实际上是跟踪对应指数的,因此ETF基金的收益是受指数的变动情况影响的。根据美国市场的统计结果,指数短期的涨跌是很难预测的,但是长期向上的趋势是被反复验证过的。这篇文章主要做一下各类指数的数据统计,看看结果是否符合这一规律。

一、指数年涨幅统计

这里针对主要关注的ETF基金对应的指数,做一下长期数据的对比,看一下到底哪些宽基指数和行业指数更具有投资价值。

指数日K数据的获取方式如下:

df = ak.stock_zh_index_daily_em(symbol=code)

指数每年的涨幅计算公式如下:

年涨幅=指数每年最后一个交易日的收盘价/每年第一个交易日的收盘价-1

其中近三年、五年、十年的涨幅为近三年、五年、十年年涨幅的算术平均值。下表是对各类指数近十年来的年平均涨幅统计的数据。

从表中可以看出,由于近一年股市处于慢慢阴跌的熊市,所有指数今年来的涨幅均为负值。近三年平均涨幅仍然有38.9%的指数处于负值,近五年平均涨幅则只有16.7%的指数仍为负值。近十年除了银行和证券的平均涨幅为负值外,其余均转正了。从涨幅的整体分布上来说,短期投资亏损的概率很大程度上依赖于入场点指数与当前指数所处相对位置,但长期来说,赚钱的概率还是更大一些。当然,如果你一定要在6000点之上满仓,那现在大概率也还是亏损的。

总体来说,消费、食品饮料、酒等行业指数的平均涨幅较高;医药、信息、军工等行业指数的表现也不错。大盘指数和小盘指数的总体表现一般,但与美国股市的长期收益统计结果基本上是一致的。创业板的平均涨幅较高(这个结果是我没有料到的,等有时间分析看看是什么原因导致的),同样其标准差也最高,说明涨跌波动程度也是最大的。

注意:由于没有对获得的数据进行校验和清洗,因此数据大概率是存在错漏的,所得结论请大家谨慎参考,不建议直接作为投资依据。

统计采用的代码如下:

import akshare as ak
import matplotlib.pyplot as plt
import pandas as pd# 指数日K数据
name_list = ['沪深300', '中证500', '中证1000', '上证50', '创业板', '中证消费', '上证消费', '深证红利', '上证红利','300医药', '中证医疗', '证券公司', '中证银行', '中证酒', '食品饮料', '有色金属', '全指信息', '军工']code_list = ['sh000300', 'sh000905', 'sh000852', 'sh000016', 'sz399006', 'sh000932', 'sh000036', 'sz399324', 'sh000015','sh000913', 'sz399989', 'sz399975', 'sz399986', 'sz399987', 'sh000807', 'sh000819', 'sh000993', 'sz399967']
cll = ['代码', '名称', '近一年', '近三年', '近五年', '近十年', '标准差']
res_all = pd.DataFrame(columns=cll, index=range(len(code_list)))
k = 0
for code in code_list:# df = ak.stock_zh_index_daily(symbol=code)df = ak.stock_zh_index_daily_em(symbol=code)df['date'] = pd.to_datetime(df['date'])name = 'close'# df.rename(columns={'trade_date': 'date'}, inplace=True)# 统计每年收益、总体平均收益# s_date = df['date'].iloc[0]# s_year = s_date.year# e_year = datetime.datetime.today().year# yl = range(s_year, e_year, 1)# df[df['date'] == s_year]df_start = df.groupby(df['date'].apply(lambda x: x.year)).first()  # 每年第一个交易日df_end = df.groupby(df['date'].apply(lambda x: x.year)).last()  # 每年最后一个交易日df_rng = df.groupby(df['date'].apply(lambda x: x.year)).count()df_start.index = range(len(df_start))df_end.index = range(len(df_end))df_rng.index = range(len(df_rng))cl = ['date', 's_close', 'e_close', 'change', 'chg_mean', 'chg_std', 'year_rtn', 'rtn_mean', 'rtn_std']res = pd.DataFrame(columns=cl, index=range(len(df_start)))for i in range(len(df_start)):cyear = df_start.loc[i, 'date']res.loc[i, 'date'] = cyear.yearres.loc[i, 's_close'] = df_start.loc[i, name]res.loc[i, 'e_close'] = df_end.loc[i, name]res.loc[i, 'change'] = df_end.loc[i, name] / df_start.loc[i, name] - 1res.loc[i, 'chg_mean'] = res['change'].mean()  # 平均涨幅res.loc[i, 'chg_std'] = res['change'].std()  # 平均涨幅标准差# 年化收益=(结束年指数-开始年指数)^(1/年数)res.loc[i, 'year_rtn'] = (df_end.loc[i, name] / df_start.loc[i, name]) ** (df_rng.loc[i, name] / 365) - 1res.loc[i, 'rtn_mean'] = res['year_rtn'].mean()  # 年化收益均值res.loc[i, 'rtn_std'] = res['year_rtn'].std()# 计算近一年、三年、五年和10年的涨幅res_all.loc[k, '代码'] = code[2:8]res_all.loc[k, '名称'] = name_list[k]res_all.loc[k, '近一年'] = res['change'].iloc[-1]res_all.loc[k, '近三年'] = res['change'].tail(3).mean()res_all.loc[k, '近五年'] = res['change'].tail(5).mean()res_all.loc[k, '近十年'] = res['change'].tail(10).mean()res_all.loc[k, '标准差'] = res['change'].tail(10).std()k = k + 1res.to_csv(code+'收益统计.csv', index=False, mode='w', encoding='gbk')print(code)
res_all.to_excel('涨跌统计.xlsx', index=False)
print('计算完成!')
二、指数PE分布统计

这个图是对2017年11月24日~2022年11月23日沪深300指数每个交易日的PE-TTM与均值的偏离程度进行的分布统计。

PE-TTM获取方式如下:

df = ak.stock_a_pe_and_pb(symbol='000300.SH')

大家可能会问为什么是这个时间段,因为通过AKShare的stock_a_pe_and_pb()获得的只有这个时间段的数据。本来是想找到沪深300指数从建立以来的PE-TTM数据,测试了一下AKShare提供的几个函数,发现都只有一段时间的数据,所以就没有再找了。大家如果有更好的数据源请介绍给我用用^-^~~~

另外需要注意的是,免费数据源无法保证数据的完整性和准确性,通常都存在一些数据缺失和错误,需要大家自己想办法去甄别和校正。

大家如果对正态分布熟悉的话,可以看出来这个统计图总体上与标准正态分布比较接近。实际上,采用的数据周期越长,数据分布越接近标准正态分布。由于PE等于价格除以每股收益,如果把所有PE的均值当作内在价值,那么这个正态分布实际上反映了价格围绕价值上下波动的事实。

长期来看,PE在PE均值的正负一个标准差内变化的概率较大,而出现在正负两个标准差以外范围的概率较小。当然这是一个理论上的说法,指数的实际表现以及极端情况出现的时间长度其实是无法预计。我们所能知道的就是当PE出现在负两个标准差以外区域时,意味着指数处于底部,继续跌的概率较小;而PE出现在正两个标准差区域以外时,则意味着大概率处于顶部,继续涨的概率较小。当然,这个只是理论上的概率而已,概率较小不代表不会发生,市场的疯狂往往超出所有人的预计,要不然也不会存在“黑天鹅”了。

作为一个保守的傻瓜投资者,我们只能尽量不去赌那些小概率的事,比如在PE高高在上的时候满仓待涨。芒格说过,如果我知道自己会在哪里死去,我就永远都不去那儿。投资的第一原则是活下来,我们要向大咖学习。

三、结论

其实不想写什么结论,因为怕写错了误导大家☹。以前看到别人的文章或者书里面的一些策略和结论就很兴奋,打算照着立马大干一场。现在的第一反应是看看这个结果是在什么条件下得到的,能不能复现,什么情况和场景下能用(简直就是十万个为什么啊……)。实际上回测做的多了,就会发现大部分时候直觉是不靠谱的,而且普遍适用的结论非常少。很多策略并不是不对,而是有特定的前提条件或者应用环境,对这个前提理解的越深刻,获得好的结果的概率越大。如果对这个问题想不清楚,可能怎么做都是错的。

-----------------------------------

原创不易,请多支持!

各类ETF跟踪指数的数据统计分析相关推荐

  1. 3款移动应用数据统计分析平台对比

    本文由雷锋网整理自ZDnet,内容有改动,仅供各位热衷于移动应用开发推广运营的朋友参考. 目前市面上比较常见,使用比较多的移动应用统计平台大概有3.4家,国外比较流行的是Flurry,功能上非常全面: ...

  2. 数据统计分析的16个基础概念

    来源:EasyShu 本文约11000字,建议阅读20分钟本文介绍了数据统计分析的16个基本概念. 一.描述统计 描述统计是通过图表或数学方法,对数据资料进行整理.分析,并对数据的分布状态.数字特征和 ...

  3. 实验室lims数据统计分析主要解决哪些问题?

    实验室每天都会产生大量数据和信息,相对而言手工管理效率低下,错误率高,不利于数据的快速科学分析,更不易于数据的跟踪溯源管理.与传统的纸面存储数据相比,LIMS实验数据电子化,使得数据的安全有了更加可靠 ...

  4. 怎样通过vb设置透视表多项选择_数据透视表,数据统计分析的利器,你会了吗...

    我们运营在日常工作中,需要对各类数据进行汇总和对比.那么问题就来了,面对纷繁复杂的数据,我们如何将这些分门别类,进行对比呢?这时候,数据透视表就能派上大用场. 那什么数据透视表呢? 我们来看看官方的说 ...

  5. SPSS数据统计分析前准备【002期】

    **博主提示:订阅本专栏,可免费获得此专栏参考文献电子版资料** 本章介绍运用SPSS 23.0进行数据统计分析前, 对数据的输入.编辑等进行准备和预处理工作,以及对数据文件导入.导出.整理.转换等操 ...

  6. 数据统计分析案例(对比分析、销量定比分析、同比、双坐标图、环比、shift、贡献度分析(帕累托法则)、差异化分析、resample、季节性波动分析)

    本文来自<Python数据分析从入门到精通>--明日科技编著 本章以案例为主,通过简单的知识讲解使读者了解数据统计分析中常用的分析方法,如对比分析,同比.定比和环比分析,贡献度分析,差异化 ...

  7. ETF基金定投数据分析1——数据收集

    ETF基金定投数据分析1--数据收集 作为一个80后的小伙,我错过了一次又一次让自己财富增加的机会,唯一的投资理财就是把钱通通放到某额宝里.一年前,我开始学习理财的知识,最后选择进行etf基金定投来投 ...

  8. 商业级手术麻醉系统源码,术前分析、用药、评级,术后访视、麻醉科室管理、数据统计分析

    手术麻醉管理系统源码,商业级源码,有演示,系统稳定,完美运行. C#语言+前端框架:Winform + 后端框架:WCF + 数 据库:sqlserver + 开发工具:VS2019 C# .net  ...

  9. 网站数据统计分析之一:日志收集原理及其实现

    网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析.百度统计 和 腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于ja ...

最新文章

  1. 北京智源人工智能研究院2020年博士后招收简章
  2. linux 时间修改 及 同步
  3. 祭旗篇---关于提高技术团队技术氛围的一些尝试
  4. 计算机系统结构研究分支,“计算机系统结构” 课程教学探讨[J] 电子科技大学.doc...
  5. springboot调整请求头大小_【SpringBoot WebFlux 系列】 header 参数解析
  6. docker klee tutorial_在容器中安装新的程序
  7. 【错误记录】Flutter 报错 ( Could not resolve io.flutter:flutter_embedding_debug:1.0.0. )
  8. 为全局变量赋值_实例分析如何远离漫天飞舞的全局变量
  9. 为WebBrowser的WEB页的Document注册事件的问题
  10. Light OJ 1316 A Wedding Party 最短路+状态压缩DP
  11. 一年代码功能点的创新性怎么写_创新项目计划书模板
  12. treemap倒叙_lua 模拟Treemap 排序
  13. arm mali 天梯图_最全处理器排名:2017年处理器天梯图
  14. 都写了100+原创了,是该分类整理一下
  15. android b站倍速播放器,倍速功能(setPlaybackSpeed(float speed)) ,在安卓23以下机型,开启倍速后,音调变高。...
  16. NASA降水量数据的单位kg/m2与mm的关系
  17. 天锋w2019_天锋W2019竟然仿的这么像,这是要让三星气吐血吗?
  18. 《通关!游戏设计之道》笔记(二) 游戏是哪些人做的
  19. Apache SkyWalking入门学习笔记
  20. put和putIfAbsent的区别

热门文章

  1. NSSCTF web刷题
  2. 【软考高级:信息系统项目管理师】【信息项目十大管理】第八天:项目人力资源管理
  3. Golang-常用第三方库
  4. 现代密码学导论-10-EAV安全
  5. 屏蔽拦截广告(二、Android软件推荐)
  6. PyTorch安装教程(带图文)
  7. excel文件保护工作表无法编辑,忘记密码时解决办法
  8. 自定义 C++ 和 CUDA 扩展
  9. 欢迎回家,希尔顿集团全力迎接凯旋归来最美逆行者
  10. poi解决受保护视图问题