《量化金融R语言初级教程》一2.4 切线组合和资本市场线

简介:

本节书摘来异步社区《量化金融R语言初级教程》一书中的第2章,第2.1节,作者: 【匈牙利】Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 切线组合和资本市场线

当组合中加入一个无风险资产R,会发生什么?如果σR=0并且X是任意的一个风险投资组合,那么Var(αR+(1−α)X=(1−α)2Var(X),并且显然也有E(αR+(1−α)X)= αE(R)+(1−α)E(X)。这意味着这些组合在均值-标准差平面上形成了一条直线。位于这条直线上的任何投资组合都可以通过投资于R和X来得到。很明显,X的最佳选择位于这条直线与有效边界的切点。这个切点叫作市场组合或者切点组合,而风险资产的有效前沿在这个点的切线叫作资本市场线(Capital Market Line,CML),它包含了该情形下所有资产的有效投资组合。我们解决的最后一个关于均值-方差模型的问题是,如何决定市场投资组合(或等价的,CML)。

通过修正方差最小化的代码,我们可以轻松地解决这个问题。首先,如果我们想加入无风险资产,就在协方差矩阵中加入了全部为0的一行和一列(其中n是总资产个数,包括无风险资产在内)。

> n <- 6; mu <- 0.005
> Q <- cbind(cov(return), rep(0, n - 1))
> Q <- rbind(Q, rep(0, n))

并在收益率向量中加入无风险资产。

> r <- c(colMeans(return), rf)

然后,我们可以使用新的协方差矩阵和新的收益率向量来决定最优投资组合的权重,接着基于“使用真实数据工作”这一节描述的minvariance代码来移除第n个资产。

> Q <- rbind(Q, rep(1, n), r)
> Q <- cbind(Q, rbind(t(tail(Q, 2)), matrix(0, 2, 2)))
> b <- c(rep(0, n), 1, mu)

得到下面的中间结果。

> round(Q, 6)
     AAPL  GOOG   MSFT   IBM       T        r
AAPL 0.000630 0.000338 0.000249 0.000233 0.000218 0e+00 1 0.000748
GOOG 0.000338 0.000462 0.000226 0.000186 0.000182 0e+00 1 0.000008
MSFT 0.000249 0.000226 0.000341 0.000178 0.000177 0e+00 1 -0.000236
IBM  0.000233 0.000186 0.000178 0.000240 0.000157 0e+00 1 0.000439
T   0.000218 0.000182 0.000177 0.000157 0.000283 0e+00 1 -0.000179
   0.000000 0.000000 0.000000 0.000000 0.000000 0e+00 1 0.000100
   1.000000 1.000000 1.000000 1.000000 1.000000 1e+00 0 0.000000
r   0.000748 0.000008 -0.000236 0.000439 -0.000179 1e-04 0 0.000000
> b
[1] 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.005

解方程后,市场组合的结果如下。

> w <- solve(Q, b)
> w <- head(w, -3)
> w / sum(w)
   AAPL   GOOG   MSFT    IBM     T
-10.154891 4.990912 12.347784 -18.010579 11.826774
相关文章
|
6月前
|
存储 vr&ar
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率-2
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
|
6月前
|
vr&ar
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率-1
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
|
6月前
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
6月前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
6月前
|
数据可视化
【R语言实战】——金融时序分布拟合
【R语言实战】——金融时序分布拟合
|
6月前
【R语言实战】——fGARCH包在金融时序上的模拟应用
【R语言实战】——fGARCH包在金融时序上的模拟应用
|
6月前
|
存储 vr&ar
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
|
6月前
|
数据可视化
【R语言实战】——金融时序ARIMA建模
【R语言实战】——金融时序ARIMA建模
|
6月前
|
数据采集 人工智能 算法
R语言ARMA-GARCH模型金融产品价格实证分析黄金价格时间序列
R语言ARMA-GARCH模型金融产品价格实证分析黄金价格时间序列
|
6月前
|
机器学习/深度学习 算法 数据挖掘
R语言在金融分析中的应用
【4月更文挑战第25天】R语言在金融分析中扮演关键角色,尤其在风险管理、资产定价、量化交易、市场预测和投资组合优化方面。作为开源的统计计算和图形平台,R语言拥有强大的统计功能、丰富的包支持和交互式环境。在风险管理中,R用于评估和管理风险,如VaR和ES;在资产定价上,它支持经典模型和衍生品定价;在量化交易领域,R提供策略开发和回测工具;市场预测利用R的统计和机器学习功能;而在投资组合优化上,R帮助确定最佳资产配置。随着金融技术发展,R语言的应用将持续增长。
106 2