失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 在险价值_Python计算股票投资组合的风险价值(VaR)

python 在险价值_Python计算股票投资组合的风险价值(VaR)

时间:2022-04-29 12:19:23

相关推荐

python 在险价值_Python计算股票投资组合的风险价值(VaR)

在开始之前,请注意,标准VaR计算假定以下条件:

收益的正态分布 -VaR假设投资组合的收益是正态分布。对于大多数资产而言,这当然是不现实的,但允许我们使用更为简单的计算来制定基准。

(可以对VaR进行修改来说明不同的分布,但是这里我们将重点介绍标准VaR计算)

标准市场条件 -与许多金融工具一样,VaR最适合用于考虑标准市场中的损失,并且不适用于极端/异常事件。

计算投资组合的VaR的步骤

为了计算投资组合的VaR,您可以按照以下步骤操作:

计算投资组合中股票的定期收益

根据收益创建协方差矩阵

计算投资组合均值和标准差

(根据投资组合中每只股票的投资水平加权)

用指定的置信区间,标准差和均值计算正态累积分布(PPF)的反函数

通过从步骤(4)的计算中减去初始投资,估算投资组合的风险价值(VaR)

1)计算投资组合中股票的定期收益

# 创建我们的股票投资组合

tickers = ['AAPL','FB', 'C', 'DIS']

#设置投资权重

weights = np.array([.25, .3, .15, .3])

# 设定初始投资水平

initial_investment = 1000000

# 下载收盘价

data = pdr.get_data_yahoo(tickers, start="-01-01", end=dt.date.today())['Close']

#从收盘价计算定期收益

returns = data.pct_change()

returns.tail()

2)根据收益建立协方差矩阵

# 生成Var-Cov矩阵

cov_matrix = returns.cov()

cov_matrix

这将使我们能够计算整个投资组合的标准差和收益平均值。

3)计算投资组合的平均值和标准差

# 计算每只股票的平均收益

returns.mean()

# 计算整个投资组合的平均回报,

# 对投资权重进行归一化

avg_rets.dot(weights)

# 计算投资组合标准差

np.sqrt(weights.T.dot(cov_matri

# 计算投资平均值

(1+port_mean) * initial_investment

# 计算投资标准差

initial_investment * port_st

接下来,我们可以将这些变量插入下面的百分比函数(PPF)中。

4)计算具有指定置信区间,标准偏差和均值的正态累积分布(PPF)的逆

# 选择我们的置信区间(我将在此处选择95%)

conf_level1 = 0.05

#逆累积分布函数为正态分布

#插入我们投资组合的均值,标准差

cutoff1 = norm.ppf(conf_level1, mean_investment, stdev_investment)

5)通过从步骤4的计算中减去初始投资,估算投资组合的风险价值(VaR)

#最后,我们可以在置信区间内计算VaR

var_1d1

#output

#22347.7792230231

在这里,我们有95%的信心说,我们的100万投资组合在一天之内不会超过损失超过2.23万元的损失。

n天时间段内的风险价值

如果我们想在更大的时间范围内计算该怎么办?只需获取1天的VaR并将其乘以 时间段的平方根即可 (这是由于股票收益的标准偏差往往随时间的平方根而增加)。

# 计算n天VaR

var_array = []

var_array.append(np.round(var_1d1 * np.sqrt(x),2))

# 绘制图形

plt.title("Max portfolio loss (VaR) over 15-day period")

1 day VaR @ 95% confidence: 10635.31

2 day VaR @ 95% confidence: 13534.26

...

14 day VaR @ 95% confidence: 73456.51

15 day VaR @ 95% confidence: 83564.53

对照正态分布检查我们的股票分布

如计算部分所述,我们假设在计算VaR时,我们投资组合中股票的收益呈正态分布。

当然,我们无法预测这种情况,但我们至少可以检查历史收益如何分配,以帮助我们评估VaR是否适合用于我们的投资组合。

plt.plot(x, scipy.stats.norm.pdf(x, port_mean, port_stdev), "r")

plt.show()

收益与正态分布比较

从上面我们可以看到,自以来,我们选择的股票的收益都已经符合正态分布。

最受欢迎的见解

1.R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究

2.R语言时变参数VAR随机模型

3.R语言时变参数VAR随机模型

4.R语言基于ARMA-GARCH过程的VAR拟合和预测

5.GARCH(1,1),MA以及历史模拟法的VaR比较

6.R语言时变参数VAR随机模型

7.R语言实现向量自动回归VAR模型

8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

9.R语言VAR模型的不同类型的脉冲响应分析

如果觉得《python 在险价值_Python计算股票投资组合的风险价值(VaR)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。