我有5只股票的投资组合,我希望找到最小化投资组合差异和最大化预期未来股息的最佳组合。后者来自分析师的预测。我的问题是我知道如何解决最小方差问题,但我不知道如何将二次形式放入quadprog目标函数的正确矩阵形式。
标准最小方差问题为
Min! ( portfolio volatility )
其中, r
包含五种股票的每日252次回报, d
具有预期的每年股息收益率(firm_A
支付1 %,firm_B
支付2 %等),
我编程如下
dat = rep( rnorm( 10, mean = 0, sd = 1 ), 252*5 )
r = matrix( dat, nr = 252, nc = 5 )
d = matrix( c( 1, 2, 1, 2, 2 ) )
library(quadprog)
# Dmat (covariance) and dvec (penalized returns) are generated easily
risk.param = 0.5
Dmat = cov(r)
Dmat[is.na(Dmat)]=0
dvec = matrix(colMeans(r) * risk.param)
dvec[is.na(dvec)]=1e-5
# The weights sum up to 1
n = 5
A = matrix( rep( 1, n ), nr = n )
b = 1
meq = 1
res = solve.QP( Dmat, dvec, A, b, meq = 1 )
显然, r
的回报率为标准正态值,因此每只股票的权重约为20%。
Q1:
我如何解释firm_A
派息1,firm_B
派息2等事实?
新的目标函数如下:
Max! ( 0.5 * Portfolio_div - 0.5 * Portfolio_variance )
但我不知道如何硬编码。投资组合差异很容易纳入 Dmat
,但新的目标函数将Portfolio_div
元素定义为 Portfolio_div = w * d
,其中 w
有五个权重。
非常感谢。
EDIT:
也许添加更高级别的问题描述是有意义的:
我能够使用上面的代码进行最小方差优化。最小化组合方差意味着优化变量协方差矩阵Dmat
(维度5x5)的权重。但是,我想在优化中添加一个额外的部分,即 d
中的红利乘以权重(因此维度为5x1)。 Dmat
也使用相同的权重。
Q2:
如何将代码d
添加到代码中?
EDIT2:
我想答案就是简单地使用
dvec = -1/d
因为我通过最小化负数的倒数来最大化预期股息。
Q3:
有人可以告诉我这是不是正确?
答案 0 :(得分:-1)
TLDR
虽然我尊重Harry MARKOWITZ(1990年诺贝尔奖)所做的伟大工作,但我更欣赏他的精彩CACI模拟衍生确定性模拟框架COMET III,而不是投资组合理论假设, variance
本身是投资组合优化流程的最小化驱动因素。
推动这一主要观点
(仍然可能遇到大资金的一点形式不良的动机,从他们的2-by幸福地生活-20费用由于“他们的”偏见的直接损失认知的性质和规模,他们认为是非获得的大量&无风险管理费与人群恐慌性流失相关联归因于AUM侵蚀,而非实际利润和损失,从他们获得( in)能够提供任何高于平均水平的AUM回报)
进一步,更接近你的想法
问题是正确的制定{ penalty | utility }
函数。
虽然 variance
在经典有效前沿理论中被视为惩罚因素,但在 min!
中运作全球搜索,它与真正的利润产生没什么关系。即使对于正面方差分量,你也会受到惩罚,这本身就是无意义的。
相反, dividend
是一个直接的好处,绝对是 utility
,进入 max!
优化过程。
所以Q3
&的第一步Q1
应该是与相对的,与收入无关的因素隔离的一致utility function
的设计,但包含所有其他绝对因素 - 进入成本,交易成本,再平衡成本 - - 否则您的实用新型会误导您的投资组合财富管理策略。
A2:
如果没有这个先验设计的属性,没有人可以声称模型值得一个CPU小时甚至开始模型的全局优化工作。