楼主: 左大营
3524 7

[原创博文] 左大营 | python数据分析篇系列1——探索沪深300指数(附代码)(下) [推广有奖]

  • 0关注
  • 7粉丝

已卖:44份资源

初中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
63 个
通用积分
10.1787
学术水平
24 点
热心指数
25 点
信用等级
21 点
经验
222 点
帖子
17
精华
0
在线时间
18 小时
注册时间
2020-4-14
最后登录
2021-6-18

楼主
左大营 发表于 2020-4-22 22:53:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

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


【承接上文】



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

如需转载请微信联系:eosO_oke

佛系更新,关注不迷路


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

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


思路:

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

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

·       收益是否遵从正态分布

·       每年收益率展示

·      月历效应

·      日历效应


上节我们分析了沪深300的月历效应,本节将继续分析日历效应,查看A股在每个工作日上涨的概率。


01 首先根据工作日进行分组

  1. return_by_week = pd.DataFrame(round(hs300['return'].groupby(hs300.week).sum()*100,2))
  2. return_by_week.index = ['周一', '周二', '周三', '周四', '周五']
  3. average_week_return = np.mean(return_by_week['return'])
  4. return_by_week['pos_neg'] = return_by_week['return'] > 0
复制代码

02 开始绘图

  1. plt.figure(figsize=(20,15))
  2. return_by_week['return'].plot(kind='bar',
  3.               color=return_by_week['pos_neg'].map({True:'red',False:'green'}))
  4. plt.axhline(average_week_return,color='blue')
  5. plt.title('每周表现最好的工作日',size=20)
  6. plt.ylabel('工作日累计收益率(%)',size=20)

  7. return_by_week['n'] = range(len(return_by_week))
  8. plt.xticks(return_by_week['n'],return_by_week.index,rotation=45,size=15)
  9. plt.yticks(np.arange(-125,125,step=10),size=15)
  10. plt.grid(alpha=0.3)
复制代码

输出结果为:


Figure_1.png

03 查看各工作日收益为正的比例(在分组时运用到层次化索引的命令,这一点非常重要)

  1. hs300['pos_neg'] = hs300['return'] > 0
  2. best_day = hs300['return'].groupby([hs300.week,hs300.pos_neg]).count()
  3. best_day.tail(30)
  4. best_day = best_day.unstack()
  5. best_day.index = ['周一', '周二', '周三', '周四', '周五']
  6. best_day.rename(columns={True:'Pos',False:'Neg'},inplace=True)

  7. best_day['positive_percentage'] = best_day['Pos'] / (best_day['Pos'] + best_day['Neg'])
  8. #best_day.eval('positive_percentage = Pos / (Pos+Neg)', inplace=True)
  9. average_positive_percentage = np.mean(best_day.positive_percentage)
  10. best_day['fifty_per'] = best_day['positive_percentage'] > average_positive_percentage
复制代码

注:中间使用#表示改行命令和上一行命令效果相同,详情请查看.eval()命令


04 开始绘图

  1. plt.figure(figsize=(20,15))
  2. plt.bar(best_day.index,best_day.positive_percentage,width=0.3,lw=1,color=best_day['fifty_per'].map({True:'red',False:'g'}))
  3. plt.axhline(average_positive_percentage, c="darkgreen", ls="--", lw=2)
  4. plt.title('沪深300交易日平均上涨概率',size=20)
  5. plt.ylabel('收益为正的比例',size=20)
  6. plt.yticks(np.arange(0,1,step=0.05),size=15)
  7. plt.xticks(rotation=45,size=15)
  8. plt.grid(alpha=0.4)
  9. plt.text(0,0.6,'58%',fontdict={'size': 20, 'color':  'red'},fontstyle='italic')
  10. plt.text(1,0.58,'56%',fontdict={'size': 20, 'color':  'red'},fontstyle='italic')
  11. plt.text(2,0.54,'51%',fontdict={'size': 20, 'color':  'green'},fontstyle='italic')
  12. plt.text(3,0.47,'45%',fontdict={'size': 20, 'color':  'green'},fontstyle='italic')
  13. plt.text(4,0.58,'56%',fontdict={'size': 20, 'color':  'red'},fontstyle='italic')

  14. plt.text(2.5,0.75,'历史上每个交易日平均上涨概率为53.3%,\n综合来看周一上涨概率最高,达到58%,\n周四下跌概率最高,故称“黑色星期四”',
  15.          fontdict={'size':13, 'color':  'red'},fontstyle='italic')
复制代码

05 输出结果

Figure_2.png


写在最后:本期话题【沪深300指数探索】共三期,到此告一段落了,由于我的目的只是想分享数据分析的一些知识,因此对A股的探讨非常的浅薄,如有疏漏,还望读者可以指出。


佛 系 更 新


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


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 数据处理 A股市场 沪深300

已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
maolo928 + 3 + 3 + 4 观点有启发
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论

总评分: 论坛币 + 3  学术水平 + 6  热心指数 + 7  信用等级 + 3   查看全部评分

沙发
agan06 发表于 2020-4-23 13:26:17
谢谢分享!

藤椅
maolo928 发表于 2020-4-24 08:55:31
谢谢楼主。

板凳
改变change 发表于 2020-4-27 21:39:32 来自手机
左大营 发表于 2020-4-22 22:53
探索沪深300指数(HS300)——基于Python(下)
【承接上文】
谢谢分享!

报纸
hifinecon 发表于 2020-4-28 10:09:55

地板
npv7910 发表于 2020-8-6 09:16:53
谢谢分享!

7
cometwx 发表于 2020-8-15 15:00:49
感谢分享

8
funnyjoke 发表于 2024-11-22 08:50:41
原始数据和代码下载不了了。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 19:41