Python金融数据分析与应用课件 第7章 上市公司股票数据获取与可视化分析_第1页
Python金融数据分析与应用课件 第7章 上市公司股票数据获取与可视化分析_第2页
Python金融数据分析与应用课件 第7章 上市公司股票数据获取与可视化分析_第3页
Python金融数据分析与应用课件 第7章 上市公司股票数据获取与可视化分析_第4页
Python金融数据分析与应用课件 第7章 上市公司股票数据获取与可视化分析_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。上市公司股票数据获取与可视化分析Python金融数据分析与应用(微课版)第七章目录CONTENTS上市公司及股票概述7.1个股股票数据获取及可视化7.2多只股票数据获取及可视化7.3案例报告7.4公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。7.1上市公司及股票概述7.1统计量和描述性分析上市公司股份在证券交易所公开交易,需定期披露财务报表等关键信息,接受监管监督,确保透明度与合规性。例如,上市公司需按季度发布财务报告,详细说明营收、利润等数据,帮助投资者评估公司业绩与风险。公开交易与信息披露上市公司股票具有高度公开性、良好流动性、较高风险与投资价值,价格受多种因素影响,波动较大。以科技股为例,其股价可能因新技术发布、市场竞争加剧等因素出现大幅波动,投资者需谨慎评估风险。股票特性投资者通过投资有潜力的股票可获资本增值,公司通过发行股票筹集资金支持发展,提升公司价值。比如,投资者长期持有优质蓝筹股,可分享公司成长带来的红利,同时公司利用资金扩大生产、创新技术。投资意义公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。7.2个股股票数据获取及可视化7.2个股股票数据获取及可视化7.2.1个股股票数据获取

以工商银行(股票代码:601398)为例,通过第三方数据接口AKShare获取工商银行从2023年1月1日到2023年12月31日后复权历史行情数据。

示例代码如下:importpandas

aspdimportakshareasakdata=ak.stock_zh_a_hist(symbol='601398',period='daily',start_date='20230101',end_date='20231231',adjust='hfq')#后复权历史行情数据data.tail()7.2个股股票数据获取及可视化7.2.2数据预处理(1)日期变量

对股票数据进行预处理,包括日期转换和索引设置。(2)日收益率

在金融领域,日收益率通常指的是投资或资产在一天内的收益率。(3)累计收益率

累计收益率是指从投资开始至今,每一天的累计收益率。它可以帮助投资者了解其在一定时间范围内投资的总体表现。7.2个股股票数据获取及可视化7.2.2数据预处理(4)均线

均线可以分为短期均线、中期均线和长期均线。短期(如5日、10日)均线能够反映最近价格的动态,适合短期投资者。中期(如20日、30日)均线可以捕捉中期趋势,适合中期投资者。长期(如60日、120日、250日)均线则更多地反映长期趋势,对于长期投资者更为重要。7.2个股股票数据获取及可视化7.2.2数据预处理(5)RSIRSI(RelativeStrengthIndex,相对强弱指标)是由韦尔斯·维德(WellsWider)发明的一种通过特定时期内股价的变动情况计算市场买卖力量对比,来判断股价内部本质强弱、推测价格未来的变动方向的技术指标。7.2个股股票数据获取及可视化7.2.2数据预处理(6)MACD指标MACD(MovingAverageConvergenceandDivergence)即指数平滑移动平均线,也称指数差离指标。它由杰拉尔德·阿佩尔(GeraldAppel)在20世纪70年代末期发明。(7)KDJ指标KDJ指标也叫随机指标,它是一个比MACD指标要灵敏一些的指标,是反映当前市场上人气强弱的指标,它起先用于期货市场的分析,后被广泛用于股市的中短期趋势分析,是期货和股票市场上最常用的技术分析工具之一。7.2个股股票数据获取及可视化7.2.3描述性分析与可视化计算股票数据的均值、分位数、标准差等统计量,了解整体趋势与波动情况。(1)描述统计data.describe().T绘制股票收盘价时序图,观察长期趋势与短期波动,结合移动平均线进一步分析。(2)趋势分析

首先提取工商银行股票2023年的开盘价、最高价、最低价、收盘价和成交量,绘制2023年的股票收盘价时序图。data_k=data[['开盘','最高','最低','收盘','成交量']]data_k.columns=['Open','High','Low','Close','Volume']mpf.plot(data_k,type='line',style='classic',datetime_format='%Y-%m-%d',xrotation=0)7.2个股股票数据获取及可视化

筛选出2023年5月1日到2023年8月31日的数据,绘制出5月到8月包含5日和20日移动平均线的K线图。candle_chart=data_k[(data_k.index>='2023-05-01')&(data_k.index<'2023-09-01')]mpf.plot(candle_chart,type='candle',mav=(5,20),style='classic',volume=True,datetime_format='%Y-%m-%d',xrotation=0)#'classic'适合黑白印刷,彩色建议其他风格7.2.3描述性分析与可视化7.2个股股票数据获取及可视化m=(data_k.index>='2023-05-01')&(data_k.index<'2023-09-01')candle_chart=data_k[m]#自定义图表风格my_stylempf.make_mpf_style(marketcolors=mpf.make_marketcolors(up='white',down='black',volume='inherit'))#创建一个列表add_plot,包含多个用于添加到图表中的图层add_plot=[mpf.make_addplot(macdhist[m],type='bar',panel=2,ylabel='MACD',color='darkslateblue',secondary_y=True),mpf.make_addplot(macd[m],panel=2,color='orangered'),mpf.make_addplot(macdsignal[m],panel=2,color='limegreen',linestyle='--'),mpf.make_addplot(rsi[m],panel=3,ylabel='RSI',secondary_y=True),mpf.make_addplot(slowk[m],panel=4,color='darkslateblue',ylabel='KDJ',secondary_y=True),mpf.make_addplot(slowd[m],panel=4,color='limegreen',linestyle='--'),mpf.make_addplot(slowj[m],panel=4,color='orangered',linestyle=':')]#绘制最终的K线图mpf.plot(candle_chart,type='candle',mav=(5,20),style=my_style,addplot=add_plot,volume=True,datetime_format='%Y-%m-%d',xrotation=0,ylabel="price")7.2.3描述性分析与可视化公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。7.3多只股票数据获取及可视化7.3多只股票数据获取及可视化7.3.1多只股票数据获取与预处理

本节以工商银行(股票代码为:601398)、中国平安(股票代码为:601318)、招商银行(股票代码为:600036)、中国人寿(股票代码为:601628)为例,演示如何进行多只股票数据的获取与纵向合并,分为以下3个步骤实现。步骤1批量获取4只股票(工商银行、中国平安、招商银行、中国人寿)的后复权历史行情数据,并计算技术指标。步骤2数据纵向合并,并输出合并后的数据形状。步骤3将数据保存为本地文件“多只股票历史行情数据.xlsx”,方便后期使用。7.3多只股票数据获取及可视化7.3.2多只股票的描述性分析与可视化(1)分组描述统计

对多只股票历史行情数据进行分组描述统计,即按照股票代码进行分组,计算每个分组在选定列上的最大值、平均值、最小值,并将结果重新索引以便于查看。merged_data[['收盘','成交量','涨跌幅','股票代码']].groupby('股票代码').agg(['max','mean','min']).reset_index()7.3多只股票数据获取及可视化7.3.2多只股票的描述性分析与可视化(2)可视化分析

对不同股票的收盘价进行对比。通常绘制不同股票的收盘价多线图进行对比分析plt.figure(figsize=(8,5))plt.plot(merged_data.loc[merged_data['股票代码']=='601398']['日期'],merged_data.loc[merged_data['股票代码']=='601398']['收盘'],'-')plt.plot(merged_data.loc[merged_data['股票代码']=='601318']['日期'],merged_data.loc[merged_data['股票代码']=='601318']['收盘'],'--')plt.plot(merged_data.loc[merged_data['股票代码']=='600036']['日期'],merged_data.loc[merged_data['股票代码']=='600036']['收盘'],'-.')plt.plot(merged_data.loc[merged_data['股票代码']=='601628']['日期'],merged_data.loc[merged_data['股票代码']=='601628']['收盘'],':')plt.legend(['工商银行','中国平安','招商银行','中国人寿'],loc='best',prop={'size':8})plt.ylabel('收盘价/元')plt.show()7.3多只股票数据获取及可视化7.3.2多只股票的描述性分析与可视化(2)可视化分析

以子图的形式绘制不同股票的收盘价线图。fig,axs=plt.subplots(2,2,figsize=(9,6))#遍历子图索引fori,axinenumerate(axs.flat):#根据子图位置选择股票代码stock_code=['601398','601318','600036','601628'][i]#在对应的子图中绘制股票的日收盘价ax.plot(merged_data.loc[merged_data['股票代码']==stock_code]['日期'],merged_data.loc[merged_data['股票代码']==stock_code]['收盘'],label=stock_code)ax.set_title(stock_code)#设置子图标题ax.set_ylabel('收盘价')#设置y轴标签plt.tight_layout()plt.show()公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。7.4案例报告——金融行业上市公司股票数据可视化分析7.4案例报告7.4.1背景介绍金融行业上市公司股票表现和经营状况受投资者广泛关注,其数据具有很强的代表性。例如,工商银行、中国平安等作为行业龙头,其股票走势对市场有重要影响。行业重要性通过可视化分析,揭示金融行业上市公司股票的市场表现和投资价值,为投资者提供决策支持。帮助投资者了解不同公司的股票特性,选择适合自己的投资标的。分析目的7.4案例报告7.4.2数据说明

通过第三方数据接口AKShare获取工商银行(股票代码为:601398)、中国平安(股票代码为:601318)、招商银行(股票代码为:600036)、中国人寿(股票代码为:601628)4只股票2023年全年的后复权历史行情数据,共有968条数据。

计算出股票的SMA、RSI、MACD和KDJ等技术指标。7.4案例报告7.4.2数据说明变量名称变量类型变量说明股票代码定性变量包括4只股票:工商银行(股票代码为:601398)、中国平安(股票代码为:601318)、招商银行(股票代码为:600036)、中国人寿(股票代码为:601628)日期日期时间类型交易日,本案例获取了2023年1月1日到2023年12月31日的后复权历史行情数据开盘定量变量开盘价,又称开市价收盘定量变量收盘价,又称收市价最高定量变量最高价,单位:元最低定量变量最低价,单位:元成交量定量变量单位:股成交额定量变量单位:元振幅定量变量[(当日最高价-当日最低价)/昨日收盘价]×100%涨跌幅定量变量[(当日收盘价-昨日收盘价)/当日收盘价]×100%涨跌额定量变量当日收盘价-昨日收盘价换手率定量变量[指定交易日的成交量(股)/指定交易日的股票的流通股总股数(股)]×100%日收益率定量变量投资在一天内的收益率RSI定量变量本数据为12日相对强弱指标MACD定量变量本数据为12日移动平均线和26日移动平均线之间的差异MACD信号线定量变量MACD线的9日指数移动平均线MACD柱状线定量变量MACD柱状线,表示MACD值与MACD信号线之间的差异K线定量变量当前价格相对于一定时间段内的价格范围的位置D线定量变量随机值K的3周期移动平均线J线定量变量通过计算3倍的K线值减去2倍的D线值得到7.4案例报告7.4.3描述性分析及可视化(1)收盘价走势从图可以看出,4只股票的收盘价走势有明显的区别,工商银行(股票代码为:601398)整体呈现上升趋势,招商银行(股票代码为:600036)整体呈现下跌趋势,中国平安(股票代码为:601318)与中国人寿(股票代码为:601628)比较相似,呈现波动下降的趋势。7.4案例报告7.4.3描述性分析及可视化(2)振幅和涨跌幅从图可以看出,4只股票的振幅有明显的差异,中国人寿(股票代码为:601628)振幅最大,其后依次是中国平安(股票代码为:601318)和招商银行(股票代码为:600036),振幅最小的是工商银行(股票代码为:601398)。从图可以看出,4只股票涨跌幅的均值无明显差异,中国人寿(股票代码为:601628)涨跌幅的波动范围最大,工商银行(股票代码为:601398)涨跌幅的波动范围最小。7.4案例报告7.4.3描述性分析及可视化(3)日收益率、成交量与成交额

从日收益率图可以看出,4只股票日收益率均值无明显差异,中国人寿(股票代码为:601628)日收益率的波动范围最大,工商银行(股票代码为:601398)日收益率的波动范围最小。从日成交量图可以看出,4只股票的成交量有较大的差异。4只股票中,工商银行(股票代码为:601398)的成交量最大,中国人寿(股票代码为:601628)的成交量最小。从成交量图可以看出,4只股票的成交额有较大的差异。4只股票中,中国平安(股票代码为:601318)的成交额最大,中国人寿(股票代码为:601628)的成交额最小。7.4案例报告7.4.3描述性分析及可视化(4)技术指标RSI从图可以看出,工商银行(股票代码为:601398)在2023年3月到6月、8月、10月有几日RSI超过70,表明工商银行的股票在这几个时间点可能处于超买状态。中国平安(股票代码为:601318)在2023年2月、5月、8月有几日RSI超过70,表明中国平安的股票在这几个时间点可能处于超买状态。招商银行(股票代码为:600036)在2023年2月、8月有几日RSI超过70,表明招商银行的股

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论