- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第7章基础案例案例介绍周最小最大交易日获取股票价格指数周收益率计算
案例介绍第7章计算上证A股指数(代码:000002)2017年的周收益率。周收益率=(周最大交易日收盘指数?周最小交易日收盘指数)/周最小交易日收盘指数本案例使用了交易日历表和指数日交易数据表MarkettypeClddtDaywkState12017-01-032O12017-01-043O12017-01-054O12017-01-065O12017-01-091O12017-01-102O12017-01-113O12017-01-124O12017-01-135O……IndexcdIdxtrd01Idxtrd050000022017-01-033283.450000022017-01-043307.450000022017-01-053314.390000022017-01-063302.790000022017-01-093320.530000022017-01-103310.490000022017-01-113284.370000022017-01-123266.040000022017-01-133259.27………………
周最小和最大交易日获取第7章由于我们获取的数据为日行情交易数据,无法直接计算周收益率,需要对交易日历数据进行处理,即找出每周的最大交易日和最小交易日。从交易日历表的星期(Daywk)字段可以看出,当前星期值比下一个星期值大,其对应的交易日即为本周的最大交易日,下一个星期值对应的交易日即为下周的最小交易日。算法如下:输入:交易日历数据表date。输出:周最小交易日和最大交易日列表list1和list2。Step1:定义空的列表list1和list2,将交易日历表中的首个交易日添加到list1中。Step2:从第2个交易日开始至倒数第2个交易日,如果其星期值大于下一个交易日的星期值,则将其交易日添加到list2中,下一个交易日添加到list1中。Step3:将最后的交易日添加到list2中。
周最小和最大交易日获取第7章importpandasaspdx=pd.read_excel(TRD_Cale.xlsx)list1=[2017-01-03]list2=[]fortinrange(1,len(x)-1):p=x.iloc[t-1,[2]][0]q=x.iloc[t,[2]][0]ifqp:list1.append(x.iloc[t,[1]][0])list2.append(x.iloc[t-1,[1]][0])list2.append(2017-12-29)
周收益率计算第7章获得每周的最小交易日列表list1和最大交易日列表list2后,可以通过循环的方式,依次取最大交易日和最小交易日对应的收盘指数,利用前面介绍的公式计算即可获得周收益率指标数据。data=pd.read_excel(IDX_Idxtrd.xlsx)importnumpyasnpr=np.zeros(len(list1))foriinrange(len(list1)):p1=data.loc[data[Idxtrd01].values==list1[i],Idxtrd05].valuesp2=data.loc[data[Idxtrd01].values==list2[i],Idxtrd05].valuesr[i]=(p2-p1)/p1第0周的最大交易日2017年1月6日对应的收盘指数3302.76,减去第0周最小交易日2017年1月3日对应的收盘指数3283.45,再除以第0周最小交易日2017年1月3日对应的收盘指数3283.45,就可以得到周收益率指标数据为:0
周收益率计算第7章importpandasaspdA=pd.read_excel(IDX_Idxtrd.xlsx)A[Idxtrd01]=pd.to_datetime(A.iloc[:,1])A[month]=A[Idxtrd01].dt.monthA[week]=A[Idxtrd01].dt.isocalendar().weekA_w=A.iloc[:,[2,4]]A_m=A.iloc[:,[2,3]]p1=A_w.groupby([week])[Idxtrd05].first().valuesp2=A_w.groupby([week])[Idxtrd05].last().valuesw_r=(p2-p1)/p1可参考第3章中的时间元素提取和分组统计方法进行计算,其方法更加简洁,但是结果可能存在一些差异。
第7章
您可能关注的文档
- Python金融数据分析与挖掘(微课版) 课件 第2章 科学计算包Numpy.pptx
- Python金融数据分析与挖掘(微课版) 课件 第5章 机器学习与实现.pptx
- Python金融数据分析与挖掘(微课版) 课件 第6章 金融数据基础.pptx
- Python金融数据分析与挖掘(微课版) 课件 第10章 股票价格形态聚类与收益分析.pptx
- Python金融数据分析与挖掘(微课版) 课件 第1章 Python基础.pptx
- Python金融数据分析与挖掘(微课版) 课件 第3章 数据处理包Pandas.pptx
- Python金融数据分析与挖掘(微课版) 课件 第8章 上市公司综合评价.pptx
- Python金融数据分析与挖掘(微课版) 课件 第9章 股票价格涨跌趋势预测.pptx
- Python金融数据分析与挖掘(微课版) 课件 第11章 行业联动与轮动分析.pptx
- 2024年安全管理规章制度(2篇) .pdf
文档评论(0)