版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
统计上证指数月度收益率
问题描述现有1990年12月19日至2021年7月16日的上证指数的数据如表7.1.1所示。OPEN表示开盘价,HIGH最高价,LOW表示最低价,CLOSE表示收盘价。请求出上证指数的月度收益率(见表7.1.2),并绘制图表(见图7.1.1)。月度收益率是指以上月收盘价买入,以本月收盘价卖出所获得的收益率,用公式表示为:。问题描述表7.1.2上证指数月度收益率表dateclose收益率1990-12-31127.610NaN1991-01-31129.9700.0184941991-02-28133.0100.0233901991-03-31120.190-0.0963841991-04-30113.940-0.052001.........2021-02-283509.0800.0074682021-03-313441.912-0.0191412021-04-303446.8560.0014362021-05-313615.4770.0489202021-06-303591.197-0.006716图7.1.1上证指数月度收益率题前思考问题分析根据问题描述,填写以下表格问题描述问题解答怎样从日股价数据取得月股价数据?
怎样求月度收益率?1.调用时间序列的resample()方法将日股价数据按月份分组;2.调用分组的ohlc()函数分别取得每个分组的开盘价(o)、最高价(h)、最低价(l)和收盘价(c);3.调用pct_change()方法求收盘价的变化比率(PerCenTofchange)就得到了月度收益率。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\指数.xlsx",index_col=[0])①month=df.loc[:'2021/6','close'].resample('M').ohlc()②month=month.loc[:,['close']]month['收益率']=month['close'].pct_change()③print(month)month['收益率'].plot(kind='line',figsize=(16,9),grid=True,title="上证指数月度收益率")④plt.show()程序代码读入上证指数日线数据。参数index_col=[0]指定第0列即日期列作为行索引,构成时间序列,这是处理时间序列的先决条件。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\指数.xlsx",index_col=[0])①month=df.loc[:'2021/6','close'].resample('M').ohlc()②month=month.loc[:,['close']]month['收益率']=month['close'].pct_change()③print(month)month['收益率'].plot(kind='line',figsize=(16,9),grid=True,title="上证指数月度收益率")④plt.show()程序代码取得月度收盘价数据存放到变量month。程序代码dateopenhighlowclose1990-12-3199.980127.61099.980127.6101991-01-31128.840134.740128.840129.9701991-02-28129.510134.870128.580133.0101991-03-31132.530132.530120.190120.1901991-04-30120.730121.720113.940113.940...............2021-02-283505.2843696.1683496.3333509.0802021-03-313551.4003576.9053357.7373441.9122021-04-303466.3323484.3923396.4703446.8562021-05-313441.2833615.4773418.8743615.4772021-06-303624.7143624.7143518.3293591.197表7.1.4上证指数月度数据表importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\指数.xlsx",index_col=[0])①month=df.loc[:'2021/6','close'].resample('M').ohlc()②month=month.loc[:,['close']]month['收益率']=month['close'].pct_change()③print(month)month['收益率'].plot(kind='line',figsize=(16,9),grid=True,title="上证指数月度收益率")④plt.show()程序代码求月度收盘价的变化百分比,即月度收益率。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\指数.xlsx",index_col=[0])①month=df.loc[:'2021/6','close'].resample('M').ohlc()②month=month.loc[:,['close']]month['收益率']=month['close'].pct_change()③print(month)month['收益率'].plot(kind='line',figsize=(16,9),grid=True,title="上证指数月度收益率")④plt.show()程序代码绘制上证指数月度收益率图。任务小结1.描述resample()函数的作用和各参数的含义2.描述频率字符串的含义一展身手统计上证指数2000-1-1到2021-7-31间的周平均收益率,要求以每周周一为第一天。请输出周收益率表(见表7.1.7)并绘制周收益率折线图(见图7.1.2)。dateclose收益率2000-01-031366.5800.0000002000-01-101545.1120.1306412000-01-171433.330-0.0723462000-01-241477.3440.0307082000-01-311534.9970.039025.........2021-06-213529.183-0.0168722021-06-283606.3720.0218722021-07-053534.322-0.0199792021-07-123547.8360.0038242021-07-193539.304-0.002405制作团队制作:XXXXXX按季度统计股票平均交易量和交易额主讲人:xxXXXXXXXXXX学校问题描述请统计贵州茅台从2001年第四季度到2021年第二季度间每个季度交易量和交易额的总和及平均值,并绘制这些数据的折线图,原始数据见表7.1.8。date交易量交易额2001-08-274063180014103471362001-08-28129647004634631362001-08-2953252001946896162001-08-3048013001775585602001-08-31232310086231000.........2021-07-12390102476587862282021-07-13299247159462872582021-07-14307706960118148802021-07-15421900583915062282021-07-1635407646958296858问题描述输出结果date交易量平均
总和交易额平均
总和2001-09-30966001003.864004e+0634521323301.380853e+082001-12-31592248009.708984e+0521271539063.487138e+072002-03-31741146001.482292e+0627774940155.554988e+072002-06-30291850004.946610e+0510693037131.812379e+072002-09-30192415002.960231e+056219812379.568942e+06...............2020-06-301628614002.760363e+062135520541443.619526e+092020-09-302467335003.738386e+064142097894406.275906e+092020-12-311905409003.175682e+063369741800965.616236e+092021-03-312748137584.738168e+065853278479381.009186e+102021-06-302036373523.393956e+064247974875727.079958e+09表7.1.9
贵州茅台交易量和交易额表统计表图7.1.3贵州茅台交易量折线图题前思考根据问题描述,填写以下表格问题描述问题解答如何对股价按季度进行分组?
如何对各季度的数据进行统计?importpandasaspdimportnumpyasnpfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0])①df=df.query('名称=="贵州茅台"').loc[:'2021-6',['交易量','交易额']]②df=df[['交易量','交易额']].resample('Q').agg([('总和',np.sum),('平均',np.mean)])③print(df)程序代码读入所有股票的股价数据,以第0列即日期作为行索引,日期作为行索引是时间序列的标志。importpandasaspdimportnumpyasnpfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0])①df=df.query('名称=="贵州茅台"').loc[:'2021-6',['交易量','交易额']]②df=df[['交易量','交易额']].resample('Q').agg([('总和',np.sum),('平均',np.mean)])③print(df)程序代码从所有股票价格中选出贵州茅台的交易量和交易额数据。importpandasaspdimportnumpyasnpfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0])①df=df.query('名称=="贵州茅台"').loc[:'2021-6',['交易量','交易额']]②df=df[['交易量','交易额']].resample('Q').agg([('总和',np.sum),('平均',np.mean)])③print(df)程序代码按季度对数据进行重采样,对每个分组分别对交易量和交易额求和及求平均。plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0])①df=df.query('名称=="贵州茅台"').loc[:'2021-6',['交易量','交易额']]②df=df[['交易量','交易额']].resample('Q').agg([('总和',np.sum),('平均',np.mean)])③print(df)df.loc[:,'交易量'].plot(style=['k-.','k-'],figsize=(16,9),secondary_y=['总和'],title='贵州茅台季度交易量')④df.loc[:,'交易额'].plot(style=['k-.','k-'],figsize=(16,9),secondary_y=['总和'],title='贵州茅台季度交易额')plt.show()程序代码绘制交易量折线图。程序代码表7.1.11贵州茅台交易量统计表
date总和平均2001-09-30966001003.864004e+062001-12-31592248009.708984e+052002-03-31741146001.482292e+062002-06-30291850004.946610e+052002-09-30192415002.960231e+05.........2020-06-301628614002.760363e+062020-09-302467335003.738386e+062020-12-311905409003.175682e+062021-03-312748137584.738168e+062021-06-302036373523.393956e+06任务小结1.描述Resample类常用方法的作用2.使用resample()方法按指定频率对时间序列进行重采样并统计出结果一展身手按月统计贵州茅台收益率的最大值、最小值、平均值和标准差(见表7.1.13),并绘制它们的折线图(见图7.1.5)。date最大值最小值平均值标准差2007-01-310.072360-0.0699650.0087540.0367602007-02-280.036661-0.096681-0.0110020.0361472007-03-310.099954-0.0295530.0038250.0292432007-04-300.052833-0.0392380.0007430.0243622007-05-310.070645-0.0663800.0051300.038580...............2021-02-280.059792-0.0699110.0008880.0380712021-03-310.039845-0.050000-0.0020700.0258592021-04-300.057471-0.0305880.0001470.0205822021-05-310.059485-0.0285860.0057970.0218232021-06-300.020910-0.035227-0.0030290.016070制作团队制作:XXXXXX按季度统计股票平均交易量和交易额主讲人:xxXXXXXXXXXX学校问题描述分别计算美的集团收盘价5日、20日、120日和250日移动平均值,并绘制移动平均折线图。原始数据见表7.2.1。date开盘价最高价最低价收盘价2013-09-182.0954523.6687861.9301202.5594532013-09-232.4687863.6847852.1407853.6154532013-09-243.4261193.6021193.1354523.1914522013-09-253.0314513.8661183.0287863.3087852013-09-263.2021193.3141182.6154532.762118...............2021-07-1269.63999971.50000068.91999870.6999972021-07-1370.77999973.33000270.58000272.8000032021-07-1472.44999772.80000371.55999872.0000002021-07-1572.00000072.34999870.61000171.169998表7.2.1美的集团日线数据表图7.2.1
美的集团移动平均线题前思考根据问题描述,填写以下表格问题描述问题解答如何建立时间序列的移动窗口?
怎样求移动窗口的平均值?importpandasaspdimportnumpyasnpfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0])①df=df.query('名称=="美的集团"').loc['2018':,'收盘价'].to_frame()②df['5日均线']=df.收盘价.rolling(5).mean()③df['20日均线']=df.收盘价.rolling(20).mean()df['120日均线']=df.收盘价.rolling(120).mean()df['250日均线']=df.收盘价.rolling(250).mean()df.plot.line(style=['k-','k:','k--','k-.','k-'],figsize=(16,9),title='美的集团移动平均线')④print(df)程序代码读入所有股价数据,以第0列即时间作为行索引,以时间为行索引是时间序列的标志。importpandasaspdimportnumpyasnpfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0])①df=df.query('名称=="美的集团"').loc['2018':,'收盘价'].to_frame()②df['5日均线']=df.收盘价.rolling(5).mean()③df['20日均线']=df.收盘价.rolling(20).mean()df['120日均线']=df.收盘价.rolling(120).mean()df['250日均线']=df.收盘价.rolling(250).mean()df.plot.line(style=['k-','k:','k--','k-.','k-'],figsize=(16,9),title='美的集团移动平均线')④print(df)程序代码从股价数据中读出美的集团2018年1月1日后的收盘价数据转换为数据框。importpandasaspdimportnumpyasnpfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0])①df=df.query('名称=="美的集团"').loc['2018':,'收盘价'].to_frame()②df['5日均线']=df.收盘价.rolling(5).mean()③df['20日均线']=df.收盘价.rolling(20).mean()df['120日均线']=df.收盘价.rolling(120).mean()df['250日均线']=df.收盘价.rolling(250).mean()df.plot.line(style=['k-','k:','k--','k-.','k-'],figsize=(16,9),title='美的集团移动平均线')④print(df)程序代码产生收盘价5日移动平均值序列。代码优化importpandasas
pdimportnumpyasnpfrompylab
import
pltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False
#步骤二(解决坐标轴负数的负号显示问题)df=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0])df=df.query('名称=="美的集团"').loc['2018':,'收盘价'].to_frame()df['5日均线']=df.收盘价.rolling(5,
min_periods=3).mean()df['20日均线']=df.收盘价.rolling(20,
min_periods=3).mean()df['120日均线']=df.收盘价.rolling(120,
min_periods=3).mean()df['250日均线']=df.收盘价.rolling(250,
min_periods=3).mean()df.plot(kind='line',figsize=(16,9))plt.show()任务小结1.描述Rolling类常用方法的作用2.使用rolling()方法按指定宽度对时间序列进行移动窗口计算一展身手计算美的集团2018年至今交易量和交易额的移动平均值,窗口宽度为20,min_periods为1,输出数据框的值并绘制折线图。结果如表7.2.16和图7.2.3所示。表7.2.16
美的集团交易量和交易额20日均线
date交易量交易额2018-01-024.961200e+063.482408e+092018-01-035.081550e+063.597966e+092018-01-045.794533e+064.168607e+092018-01-055.345625e+063.863079e+092018-01-085.320580e+063.870453e+09.........2021-07-123.354152e+066.890994e+092021-07-133.356969e+066.867667e+092021-07-143.372857e+066.869312e+092021-07-153.478470e+067.060952e+092021-07-163.385367e+066.842408e+09图7.2.3
美的集团交易量和交易额20日均线制作团队制作:XXXXXX制作股票价格与上证指数间的收益相关图主讲人:xxXXXXXXXXXX学校问题描述请计算中芯国际、云南白药、海康威视、美的集团、贵州茅台这五只股票2020年及以后的收益率与上证指数收益率之间的相关系数并绘制折线图,窗口宽度为120,最短时期为20。相关系数反映两个变量之间的线性相关性,相关系数的取值范围是[-1,1],如果值为正表示两个变量同向变化,反之则反向变化。问题描述表7.2.18
股票收益率与上证指数收益率间的相关系数名称date中芯国际云南白药海康威视美的集团贵州茅台2020-08-120.5054470.5219940.6371010.6876820.7106312020-08-130.5055480.5214800.6448170.6875940.7122742020-08-140.5065100.5183170.6432550.6859840.7115322020-08-170.5003820.5161580.6388570.6800510.7128602020-08-180.4937140.5157780.6349600.6808520.715496..................2021-07-120.4060340.5874480.6098610.4917910.6404112021-07-130.4004730.5784120.6009130.4819620.6354912021-07-140.4042730.5732960.6001340.4822010.6360652021-07-150.4085840.5633470.5977450.4704050.6371952021-07-160.4178490.5662810.6002560.4729790.642149图7.2.4股票收益率与上证指数收益率间的相关系数输出结果题前思考根据问题描述,填写以下表格问题描述问题解答怎样读取excel表中的指定列?
如何将不同股票的价格分割成多列?
怎样计算股票收益率与上证指数收益间的相关系数?importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的a负号显示问题)stocks=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0,1],usecols=['date','名称','收益率'])①index=pd.read_excel(r"D:\pydata\项目七\指数.xlsx",index_col=[0],usecols=['date','close'])②程序代码从文件“股价.xlsx”中读取列'date','名称','收益率',并将'date','名称'列作为行索引。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus']=False#步骤二(解决坐标轴负数的a负号显示问题)stocks=pd.read_excel(r"D:\pydata\项目七\股价.xlsx",index_col=[0,1],usecols=['date','名称','收益率'])①index=pd.read_excel(r"D:\pydata\项目七\指数.xlsx",index_col=[0],usecols=['date','close'])②程序代码从文件“指数.xlsx”中读取收盘价数据,并将date设为行索引。stocks=stocks.unstack().loc['2020':,'收益率']③index=index.pct_change()④res=stocks.rolling(120,min_periods=2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理讲师学生自主学习策略
- 螺纹钢筋销售合同
- 百度设备销售合同
- 树木砍伐销售合同
- 2026年度云计算平台搭建销售协议
- 2026年度固废处理服务承包协议书
- 护理创新案例分享:借鉴成功经验
- 电路改造专项施工方案
- 康复科自查、分析、整改制度与措施
- 市政景观配套设施建设工程施工方案
- 埃博拉病毒病诊疗方案(2026年版)解读课件
- 2026年十堰市郧阳区公开招聘事业单位工作人员75人笔试参考试题及答案解析
- 2026年合肥高新区社区工作者招聘96名笔试参考题库及答案解析
- 某塑料生产企业环保操作准则
- 2026年广西真龙彩印包装有限公司笔试题及答案
- 管幕冻结多管冻结温度场形成规律的深度剖析与应用探索
- 2026年二级建造师二建水利水电实务案例分析考前预测重点知识强化记忆总结笔记
- 进度控制监理工作程序
- 2025江苏南京金陵饭店集团有限公司招聘4人笔试历年常考点试题专练附带答案详解
- 2026年中考政治考前冲刺押题试卷及答案(共九套)
- 2026甘肃中考地理考前一周加分卷含答案
评论
0/150
提交评论