探索沪深300指数(HS300)——基于Python(中)

【承接上文】

写在前面:本文只做分析,提供观点,不构成投资建议

如需转载请微信联系:eosO_oke

佛系更新,关注不迷路

沪深300指数是A股市场中比较具有代表性的指数之一,于2005年4月8日正式推出。2005年之前沪深两个市场各自均有独立的综合指数和成分指数,但市场缺乏反映沪深市场整体走势的跨市场指数,沪深300指数应运而生。

沪深300指数是反映沪深两个市场整体走势的“晴雨表”,指数样本覆盖了两市大部分流通股。沪深300成分股均为市场中代表性好、流动性高、交易活跃的主流投资股票,多为蓝筹股或白马股,能够反映市场主流投资的收益情况。

思路:

·       沪深300近15年走势图(2005-20年)

·       沪深300历次重大事件中的表现情况

·       收益是否遵从正态分布

·       每年收益率展示

·      月历效应

·      日历效应

前文我们分析了沪深300历史走势图、分析了众多历史事件中指数的表现、也查看了收益的分布情况。

本节继续探索沪深300指数收益情况,将分别使用柱状图和饼图来进行分析,重点分析【月历效应】

01年度收益与年平均收益

(1)首先我们剥离日期索引中的年月日

#先把原数据的日期中的年、月、日剥离出来(后续工作可能用到)

hs300["year"] = hs300.index.year

hs300['month'] = hs300.index.month

hs300['week'] =  hs300.index.strftime('%w') #注week要用strftime('%w')的方法

hs300['day'] = hs300.index.day

hs300[['year','month','week','day']].tail(20) #仅查看剥离出来的四列的最后20个值复制代码

输出结果为(其中的week表示当前交易日为周几,因此没有6和7):

year  month week  day

date

2020-03-19  2020      3    4   19

2020-03-20  2020      3    5   20

2020-03-23  2020      3    1   23

2020-03-24  2020      3    2   24

2020-03-25  2020      3    3   25

2020-03-26  2020      3    4   26

2020-03-27  2020      3    5   27

2020-03-30  2020      3    1   30

2020-03-31  2020      3    2   31

2020-04-01  2020      4    3    1复制代码(2)求各年度收益与年平均收益并绘制柱状图

#15年来每一年各自的收益(乘以100是为了去掉%,下同)

return_by_year = pd.DataFrame(round(hs300['return'].groupby(hs300.year).sum()*100,2))

#15年来每年的平均收益

average_return = np.mean(return_by_year['return'])

#年度收益正负分开

return_by_year['positive'] = return_by_year > 0复制代码输出结果为:

2020-4-16 12:18:12 上传

下载附件 (53.96 KB)

(3)年化收益率大于0 和小于0各自占比(绘制饼状图)

data = return_by_year['positive'].value_counts().tolist()

pos_neg = pd.DataFrame(data=data,columns=['counts'],index=['positive','negative'])

plt.figure(figsize=(15,15))

pos_neg.counts.plot(kind='pie',colors=['green','red'],autopct='%1.1f%%',startangle=140)

plt.title('年化收益率正负各自占比',size=(20))

plt.legend(loc='upper right',fontsize=10,ncol=2,fancybox=True,framealpha=0.5,shadow=True) #两列展示图例复制代码

此图作用不大,背后的意义也不大,但是食之无味弃之可惜,展示出来权当是占个位置来学做饼图吧:

输出结果为:

2020-4-16 12:20:31 上传

下载附件 (35.66 KB)

(4)各月份平均收益图(A股月历效应)

return_by_month = pd.DataFrame(round(hs300['return'].groupby(hs300.month).mean()*100,2))

return_by_month['positive'] = return_by_month['return']>0

plt.figure(figsize=(20,15))

return_by_month['return'].plot(kind='bar',color=return_by_month.positive.map({True:'red',False:'forestgreen'}))

plt.title("月度平均收益图(%)",size=20)

plt.xlabel('月份',size=20)

plt.ylabel('每月平均收益',size=20)

plt.yticks(np.arange(-0.25,0.25,step=0.025),size=15)

plt.xticks(rotation=45,size=15)

plt.grid(alpha=0.3)复制代码

输出结果为:

2020-4-16 12:21:08 上传

下载附件 (61.4 KB)

从结果可以看出,除了一月平均收益为0,6月和8月平均收益为负之外,其他九个月的平均收益均为正。收益率在2月和12月份达到最高,平均0.2%,月历效应背后的原因大家可以上网去查,各有各的说法,我是想说,含有我们最讨厌的数字2,4的月份,表现的反而最好,我们最喜欢的6,8数字的月份,表现最差,是的,它很有个性,这很A股

(5)绘制每个月收益图,具体查看月历效应

#合并年和月,查看15年*12个月 每个月的收益相对于月份平均收益的走势图

hs300['year_month'] = hs300['year'].map(str)+'年'+hs300['month'].map(str)+'月'

hs300['year_month'].tail(20)

month_return = pd.DataFrame(round(hs300['return'].groupby(hs300['year_month']).sum()*100,2))

month_return['positive'] = month_return['return']>0

#计算平均月收益

average_month_return = np.mean(month_return['return'])

plt.figure(figsize=(20,10))

month_return['return'].plot(kind='bar',color=month_return['positive'].map({True:'red',False:'green'}),label='Monthly Return')

plt.axhline(y=average_month_return, color='blue',linestyle='-',label='Average Return')

plt.title('每月收益率与月平均收益率对比',size=20)

plt.xlabel('月份',size=20)

plt.ylabel('收益',size=20)

month_return['n'] = range(len(month_return)) #解释同133行代码

plt.xticks(month_return['n'][::10],month_return.index[::10],rotation=45) #解释同上

plt.yticks(np.arange(-50,50,step=10))

plt.legend(ncol=2)复制代码输出结果为:

2020-4-16 12:22:17 上传

下载附件 (66.77 KB)

大家可以通过让x轴更加密集的方式,来查看是否大部分年份里每年的2,4,12月份收益最高,6,8月收益最低。

下期来看看每周哪一天交易日里收益最好。昨天收到“管友”催更的信息了,本人也是激动的一P,说明帖子有人看,但是事情较多,只能佛系更新,下期不定时展示;

***关注一下 ,不做尘世中迷途的小书童

未完待续

python分析数据走势图_左大营 | python数据分析篇系列1——探索沪深300指数(附代码)(中)...相关推荐

  1. python分析数据走势图_python对股市进行数据分析-tushare篇

    数据准备 TuShare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们 ...

  2. python分析数据走势图_python绘制趋势图的示例

    import matplotlib.pyplot as plt #plt用于显示图片 import matplotlib.image as mping #mping用于读取图片 import date ...

  3. python获取股指_用Python读取csv文件中的沪深300指数历史交易数据

    保存路径:D:\python\用Python读取csv文件中的沪深300指数历史交易数据 程序名称:readcsvhs300.py: 数据名称:沪深300指数历史交易数据.csv: 开发环境:Win7 ...

  4. 用爬虫分析沪深300指数超长走势

    我们知道,一个股市里面有非常多的股票,我们如何能够量化整个股市整体的行情呢,答案是通过一些综合性的指数.本文所选用的沪深300就是这类指数中的一个.我们先来看一下百度百科对于沪深300的解释. 由于股 ...

  5. tushare获取沪深300指数历史_在tushare上提取沪深300指交易数据

    import numpy as np import pandas as pd import tushare as ts import MySQLdb as mdb #获取沪深300指数的股票名单 hs ...

  6. Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析

    米筐科技(RiceQuant)策略研究报告:Barra 结构化风险模型实现(1)--沪深300指数的风格因子暴露度分析 江嘉键 1 年前1 概述 Barra 结构化风险模型是全球知名的投资组合表现和风 ...

  7. 结构化风险模型----转:沪深300指数的风格因子暴露度分析(一)

    from: https://xueqiu.com/7381621247/73649418 1 概述 Barra 结构化风险模型是全球知名的投资组合表现和风险分析工具.最近一段时间,我们米筐科技量化策略 ...

  8. Python的tushare库实现沪深300 指数数据分析——CAMP模型

    (1)筛选 使用作业1的程序 完成对沪深300指数成分股过去2015年1月-2018年1月三年的数据分析 按alpha从大到小,选择出30只alpha最高的股票形成股票池1,以备进一步分析 (2)预测 ...

  9. tushare获取沪深300指数历史_TuShare -财经数据接口包

    在Pro版接口中,我们也增加了通用通用行情接口,可以方便获得各种资产各种频度的数据,欢迎使用. 获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线.周k线.月k线,以及5分钟.15分钟. ...

最新文章

  1. 在文件中查找指定字符串
  2. django 中文乱码或不识别
  3. Unity 指定参数
  4. 【数据库】索引优化策略
  5. Crawler:反爬虫机制之基于urllib库+伪装浏览器+代理访问(代理地址随机选取)+实现下载某网址上所有的图片到指定文件夹
  6. PostgreSQL学习手册(数据库维护) 转
  7. python tkinter-单选、多选
  8. Java线程与Android线程,Android线程篇(三):深入理解Java线程池(一)
  9. win7hosts文件位置
  10. 对Python中yield的理解
  11. 注册dll的bat文件
  12. 「AI」一文看懂“声纹识别VPR”
  13. 咸鱼Maya笔记—初识Maya 2019
  14. stm32制作CAN适配器2--兼容使用周立功上位机
  15. passenger多ruby版本共存部署
  16. (2010计本3班-杨蒙)面向对象的C--实现链表操作
  17. 浅谈Attention机制
  18. ai人工智能的数据服务_AI如何帮助提高企业数据质量
  19. 如何利用Flashback Query 恢复误删除的数据
  20. codeforces 133A(HQ9+) Java

热门文章

  1. 基于L2,1范数的特征选择方法
  2. 使用Mandelbulb3D渲染三维分形
  3. 牛客练习赛3 贝伦卡斯泰露——队列爆搜
  4. Python入门:Python基础
  5. 盘点中国最牛的五个程序员,有一个年薪上亿,有一个身家上千亿
  6. 索尼录音笔怎么导出录音内容_商务、学生、记者:有能把录音文件转成文字文档的软件吗?...
  7. Android解析qq聊天记录表情
  8. 腾讯打响了「反内卷」第一枪,向着「内卷」开炮
  9. 理解23种设计模式(php)
  10. 贪吃蛇代码java_贪吃蛇 java代码