Python金融数据分析与应用课件 第10章 不同投资组合下的收益率与波动率分析_第1页
Python金融数据分析与应用课件 第10章 不同投资组合下的收益率与波动率分析_第2页
Python金融数据分析与应用课件 第10章 不同投资组合下的收益率与波动率分析_第3页
Python金融数据分析与应用课件 第10章 不同投资组合下的收益率与波动率分析_第4页
Python金融数据分析与应用课件 第10章 不同投资组合下的收益率与波动率分析_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。不同投资组合下的收益率与波动率分析Python金融数据分析与应用(微课版)第十章目录CONTENTS投资组合概述10.1数据预处理和描述性分析投资组合的收益率分析案例报告10.4探索股票的最优投资组合10.310.210.5公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。10.1投资组合概述10.1投资组合投资组合是一种金融策略,通过分散投资于不同资产(如股票、债券、现金等)来降低风险,实现投资者的财务目标。投资组合的定义投资组合构建涉及资产配置、行业配置和个股选择。资产配置是将资金分配到不同类型的资产中,以实现收益和风险的平衡。投资组合构建要素投资组合管理旨在最大化收益,同时控制风险。通过深入理解市场,识别资产间的相关性,实现收益与风险的平衡。投资组合管理目标投资组合定义与目标10.1投资组合降低风险投资组合通过分散投资降低单一资产的风险,提高投资组合的稳定性和收益潜力。提高收益适应市场变化通过合理配置资产,投资组合可以优化收益,实现资金的增值。投资组合需要根据市场环境的变化进行调整,以适应不同的经济周期和市场条件。投资组合的重要性公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。数据预处理和描述性分析10.210.2数据预处理和描述性分析10.2.1股票价格走势

步骤1使用pandas读取Excel文件中的股票后复权收盘价数据,并将“日期”设置为DataFrame的索引。步骤2为了后续研究股票价格走势,以2019年第一个交易日的收盘价为参考,进行数据归一化处理。步骤3使用Matplotlib来绘制多线图,不同的线型代表不同的股票,以展示经过数据归一化处理后的股票价格走势。10.2数据预处理和描述性分析10.2.1股票价格走势data=pd.read_excel('股票收盘价.xlsx')data=data.set_index('日期')normalized_df=data/data.iloc[0]plt.figure(figsize=(9,6))types=['-','--','-.',':']foriinrange(4):x=normalized_df.indexy=normalized_df.iloc[:,i]plt.plot(x,y,types[i])plt.xlabel('日期')plt.ylabel('归一化的股票价格')plt.legend(normalized_df.columns,loc='best',prop={'size':8})plt.show()10.2.2股票的日对数收益率stock_return=np.log(data/data.shift(1)).dropna()stock_return.head()10.2数据预处理和描述性分析计算股票的日对数收益率,日对数收益率反映了资产价格或投资组合价值在一天内的相对变化情况。10.2.3股票的年化对数收益率和年化波动率stock_return_mean=stock_return.mean()*252stock_return_mean10.2数据预处理和描述性分析计算股票的年化对数收益率计算股票的年化波动率stock_return_vol=stock_return.std()*np.sqrt(252)stock_return_vol10.2.4投资组合的相关性分析stock_return_corr=stock_return.corr()importseabornassnssns.heatmap(stock_return_corr,annot=True,cmap='YlGnBu')plt.show()10.2数据预处理和描述性分析(1)投资组合的相关系数矩阵10.2.4投资组合的相关性分析stock_return_cov=stock_return.cov()*252sns.heatmap(stock_return_cov.round(2),annot=True,cmap='YlGnBu')plt.show()10.2数据预处理和描述性分析(2)投资组合的协方差矩阵10.2.4投资组合的相关性分析weights=np.array([0.30,0.20,0.10,0.40])portfolio_volatility=np.sqrt(np.dot(weights,np.dot(stock_return_cov,weights.T)))print(portfolio_volatility.round(3))10.2数据预处理和描述性分析(3)投资组合的标准差投资组合的风险可以用标准差来衡量,在知道投资组合的权重和协方差矩阵的前提下,可以通过以下公式进行计算。公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。10.3投资组合的收益率分析10.3投资组合的收益率分析10.3.1给定权重的投资组合步骤1为了避免修改原始数据,创建stock_return的一个副本stock_return2。步骤2计算给定权重的投资组合的累计收益率。步骤3定义累计收益率曲线绘制函数。步骤4调用累计收益率曲线绘制函数,绘制给定权重的投资组合的累计收益率曲线。stock_return2=stock_return.copy()portfolio_weights=np.array([0.30,0.20,0.10,0.40])weighted_returns=stock_return.mul(portfolio_weights,axis=1)stock_return2['portfolio']=weighted_returns.sum(axis=1)cum_returns_plot(['portfolio'])defcum_returns_plot(name):plt.figure(figsize=(7,5))cum_returns=((1+stock_return2[name]).cumprod()-1)plt.plot(stock_return2.index,cum_returns)plt.xlabel('日期')plt.ylabel('累计收益率')plt.show()10.3投资组合的收益率分析10.3.2等权重的投资组合等权重的投资组合下,每个资产在投资组合中的权重相等。numstocks=4portfolio_weights_ew=np.repeat(1/numstocks,numstocks)stock_return2['portfolio_ew']=stock_return.mul(portfolio_weights_ew,axis=1).sum(axis=1)cum_returns_plot(['portfolio_ew'])10.3投资组合的收益率分析10.3.3市值加权的投资组合以2019年第一个交易日市值的占比来分配权重,计算市值加权的投资组合的累计收益率。market_values=np.array([121.93,3239.61,36.39,1456.63])#2019年第一个交易日市值market_weights=market_values/np.sum(market_values)stock_return2['portfolio_mark']=stock_return.mul(market_weights,axis=1).sum(axis=1)cum_returns_plot(['portfolio_mark'])公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。10.4探索股票的最优投资组合10.4探索股票的最优投资组10.4.1蒙特卡罗模拟在投资组合优化中的应用使用蒙特卡罗模拟进行投资组合优化的基本步骤如下。步骤1生成随机权重:在投资组合的权重空间内随机抽取一组权重,这些权重必须满足所有资产权重之和为1的条件。步骤2计算投资组合表现:利用所生成的权重,计算在给定市场条件下投资组合的预期收益率和波动率。波动率是衡量资产价格变动不确定性的一种量化指标,它反映了资产价格短期内的波动程度。高波动率通常意味着资产价格的波动性大,可能面临较大的不确定性。波动率通过收益率的标准差来量化。步骤3重复模拟:重复上述步骤2000次,每次生成不同的随机权重投资组合,并计算相应的预期收益率和波动率。步骤4绘制散点图:根据模拟过程中得到的所有投资组合的波动率和相应的收益率绘制散点图,以直观展示不同权重投资组合下波动率与收益率的关系。10.4探索股票的最优投资组10.4.1蒙特卡罗模拟在投资组合优化中的应用ticker_list=['中国平安','贵州茅台','长江电力','恒瑞医药']number=2000#设置模拟的次数random_p=np.empty((number,6))#用于存储模拟权重、收益率和波动率np.random.seed(7)#设置随机种子,为了结果能复现foriinrange(number):#循环模拟投资组合#初始化权重random4=np.random.random(4)random_weight=random4/np.sum(random4)#计算年化收益率mean_return=stock_return.mul(random_weight,axis=1).sum(axis=1).mean()annual_return=(1+mean_return)**252-1#计算波动率random_volatility=np.sqrt(np.dot(random_weight.T,np.dot(stock_return_cov,random_weight)))#将权重、收益率、波动率存入数组中random_p[i][:4]=random_weightrandom_p[i][4]=annual_returnrandom_p[i][5]=random_volatility#将数组转化为DataFramerandom_portfolios=pd.DataFrame(random_p)random_portfolios.columns=[ticker+'_weight'fortickerinticker_list]+['returns','volatility']random_portfolios.head()10.4探索股票的最优投资组10.4.1蒙特卡罗模拟在投资组合优化中的应用#绘制散点图plt.figure(figsize=(7,5))plt.scatter(random_portfolios['volatility'],random_portfolios['returns'],s=10,alpha=0.2)plt.xlabel('波动率')plt.ylabel('收益率')plt.show()10.4探索股票的最优投资组10.4.2基于风险最小化的投资组合构建方法步骤1基于蒙特卡罗模拟的投资组合数据,以波动率(风险)最小的投资组合为目标,绘制在模拟投资组合的波动率与收益率的散点图中10.4探索股票的最优投资组#设置投资组合中股票的数目numstocks=4#提取波动率最小的投资组合对应的股票权重,并转换成NumPy数组gmv_weights=np.array(random_portfolios.iloc[min_index,0:numstocks])#输出波动率最小的投资组合的权重print(gmv_weights.round(3))#计算基于波动率最小化的投资组合收益率stock_return2['portfolio_gmv']=stock_return.mul(gmv_weights,axis=1).sum(axis=1)cum_returns_plot(['portfolio_gmv'])步骤2在投资组合中找出波动性最小的投资组合,并计算这个投资组合的预期收益率。步骤3调用累计收益率曲线绘制函数,绘制波动率最小化投资组合的累计收益率曲线.10.4.2基于风险最小化的投资组合构建方法10.4探索股票的最优投资组10.4.3基于夏普比率的最优投资组合构建方法夏普比率是一种广泛应用于投资组合领域的绩效评价指标,它能够帮助投资者在风险与收益之间达到平衡。一个较高的夏普比率意味着投资者在承担一定风险的情况下,能够获得更高的超额收益。因此,基于夏普比率的最优投资组合成为许多投资者和基金经理追求的目标。本节将介绍如何利用夏普比率来构建最优投资组合。夏普比率的计算公式10.4探索股票的最优投资组10.4.3基于夏普比率的最优投资组合构建方法构建一个基于夏普比率的最优投资组合的步骤如下。步骤1设置无风险收益率为0,计算每项投资组合的夏普比率。步骤2在波动率与收益率散点图中找到夏普比率最大的投资组合,并突出显示这个数据点。risk_free=0random_portfolios['sharpe']=(random_portfolios['returns']-risk_free)/random_portfolios['volatility']#找到夏普比率最大的数据点对应的索引max_index=random_portfolios['sharpe'].idxmax()plt.figure(figsize=(7,5))plt.scatter(random_portfolios['volatility'],random_portfolios['returns'],s=10,alpha=0.2)x=random_portfolios.loc[max_index,'volatility']y=random_portfolios.loc[max_index,'returns']plt.scatter(x,y,color='red')plt.xlabel('波动率')plt.ylabel('收益率')#将该数据点坐标显示在图中并保留3位小数plt.text(np.round(x,3),np.round(y,3),(np.round(x,3),np.round(y,3)),ha='left',va='bottom',fontsize=12)plt.show()10.4探索股票的最优投资组10.4.3基于夏普比率的最优投资组合构建方法10.4探索股票的最优投资组10.4.3基于夏普比率的最优投资组合构建方法numstocks=4#提取夏普比率最大的投资组合对应的权重shar_weights=np.array(random_portfolios.iloc[max_index,0:numstocks])#输出夏普比率最大的投资组合的权重print(shar_weights.round(3))stock_return2['portfolio_shar']=stock_return.mul(shar_weights,axis=1).sum(axis=1)cum_returns_plot(['portfolio_shar'])stock_return2['日期']=stock_return.indexstock_return2.to_excel('stock_return2.xlsx',index=False)random_portfolios.to_excel('random_portfolios.xlsx',index=False)步骤3从投资组合中找到夏普比率最大的组合,并提取和输出该投资组合的权重。步骤4调用累计收益率曲线绘制函数,绘制基于夏普比率的最优投资组合的累计收益率曲线。步骤5将处理好的数据保存为本地文件,以备后续使用。10.4探索股票的最优投资组10.4.3基于夏普比率的最优投资组合构建方法risk_free=0random_portfolios['sharpe']=(random_portfolios['returns']-risk_free)/random_portfolios['volatility']#找到夏普比率最大的数据点对应的索引max_index=random_portfolios['sharpe'].idxmax()plt.figure(figsize=(7,5))plt.scatter(random_portfolios['volatility'],random_portfolios['returns'],s=10,alpha=0.2)x=random_portfolios.loc[max_index,'volatility']y=random_portfolios.loc[max_index,'returns']plt.scatter(x,y,color='red')plt.xlabel('波动率')plt.ylabel('收益率')#将该数据点坐标显示在图中并保留3位小数plt.text(np.round(x,3),np.round(y,3),(np.round(x,3),np.round(y,3)),ha='left',va='bottom',fontsize=12)plt.show()公众号:陈西设计之家。微信搜索即可。更多免费原创PPT模板以及教程设计作品源文件可以在公众号内无条件获取。10.5案例报告——基于Python的投资组合收益率与波动率数据分析10.5案例报告10.5.1背景介绍投资组合管理的重要性在多变的金融市场中,有效的投资组合管理和优化对于实现资金安全和最大化投资回报至关重要。数据分析的作用利用Python进行投资组合收益率与波动率的数据分析,可以提高投资决策的科学性和效率。研究对象本报告以中国平安、贵州茅台、长江电力和恒瑞医药这4只股票为研究对象,构建投资组合进行分析。10.5案例报告10.5.2数据说明

以中国平安、贵州茅台、长江电力和恒瑞医药这4只股票为研究对象,这4只股票来自不同的行业,具有不同的风险和收益特性,能够帮助投资者构建一个相对分散和均衡的投资组合。本报告获取了这4只股票从2019年到2023年(共5年)的每日历史行情数据,对数据进行筛选和整合,整合后的数据共有1214条数据,包括4只股票后复权日收盘价(单位:元)和日期。10.5案例报告7.5.2数据说明所选股票的日收盘价示例日期中国平安贵州茅台长江电力恒瑞医药2019-01-02121.933239.6136.391456.632019-01-03122.933194.4936.651404.872019-01-04124.753

温馨提示

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

评论

0/150

提交评论