在R中实现Excel规划求解

问题描述 投票:0回答:1

我正在尝试在R中实现Excel Solver。

我有两个权重向量。旧权重和新权重。我需要找到New_Weights。

目标函数:最大值((收益-成本)/风险)

示例:

Old_Weights<-c(0.5,0.5,0)
New_Weights<-c(X,Y,Z)

Returns <- New_Weights * Market_Returns
Cost<- (New_Weights - Old_Weights) * 15
Risk <- t(New_Weights) * Var(Market_Returns) * New_Weights

因此,基本上,我需要一个函数,该函数将更改X,Y,Z的值以最大化目标函数。

r solver portfolio r-portfolioanalytics
1个回答
0
投票

您可以使用R中的optim()函数进行计算。

optim()功能的一般格式是optim(objective, constraints, bounds = NULL, types= NULL, maximum = FALSE)

您首先可以编写一个包含参数的函数,例如

> f <- function(x) 15 * (x[1]-0.5) + 7 * (x[2]-3)^2 + 30 

接下来设置约束

> c <- c(1, 1)

然后使用optim(c,f)获得优化的解决方案

> r <- optim(c, f)

> r

© www.soinside.com 2019 - 2024. All rights reserved.