金融分析与风险管理——资本资产定价模型

本文探讨了系统性风险与非系统性风险的概念,并通过上证180指数成分股示例说明如何构建投资组合分散风险。资本资产定价模型(CAPM)解释了预期收益率与系统性风险的关系,强调只有系统性风险应获得回报。文章使用Python进行线性回归分析,计算股票的β值。
摘要由CSDN通过智能技术生成

金融分析与风险管理——资本资产定价模型

1 系统性风险与非系统性风险

在理论上,股票面临的风险可以抽象的划分为系统性风险与非系统性风险。系统性风险(不可分散风险),也称市场风险,通常是由于公司外部因素引起、与公司正常经营无关的风险;非系统性风险(可分散风险),通常是由于公司自身原因引起的风险。

本文以上证180指数成分股为例演示投资组合的系统性风险与非系统性风险,数据集时间为2016-2018年,已剔除期间上市的股票,最终保留155只股票,在该数据集中,等权重逐步增加投资组合的股票个数,完整的数据可以通过百度网盘获取,提取码:lvzd。其Python程序如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt 

plt.rcParams['font.sans-serif'] = ['SimHei'] #中文显示问题
plt.rcParams['axes.unicode_minus'] = False #负数显示问题

stocks_data = pd.read_excel(r'C:\Users\Administrator\Desktop\上证180指数成分股日收盘价.xlsx',header = 0,index_col = 0)
#观察数据
stocks_data.head()
stocks_data.shape

#计算对数收益率
return_stocks = np.log(stocks_data/stocks_data.shift(1))
return_stocks = return_stocks.dropna()
#获取行数
n = return_stocks.shape[1]
#构建投资组合的波动率一维数组
vol_port = np.zeros(n)

for i in range(1,n+1):
    weight = np.ones(i)/i
    return_cov = 252*return_stocks.iloc[:,:i].cov()
    
    vol_port[i-1] = np.sqrt(np.dot(weight,np.dot(return_cov,weight.T)))
    
N_list = np.arange(n) + 1 #生产1-155的数组

plt.figure(figsize=(8,6))
plt.plot(N_list,vol_port
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值