优化R中的函数

时间:2016-04-07 16:37:03

标签: r optimization portfolio

我很长一段时间都在寻找优化参数化产品组合的程序代码。  投资者的问题是选择最大化其预期效用的投资组合:Expression

ri,t+1是库存回报iwi,t是库存i的权重。参数化投资组合是权重取决于状态变量的投资组合,因此:

Expression

其中wi,t (bar)是基准投资组合中股票i的权重,teta是要估计的系数的向量,xi,t是状态变量。 因此,最大化投资者效用的系数是:

Expression

最近,我收到了以下代码,它提供了优化功能:

func<-function(x,wb,nt, ret, A, B, C){ #A, B and C are the state variables,ret= the matrix of returns, wb and nt are from the optimization formula in equation 2. 
    wi=as.matrix(wb+(nt)*((x[1]*A)+(x[2]*B)+(x[3]*C))) #wi is the weights (linear combinaison of asset variables A, B and C)
    wret=rowSums(wi*ret,na.rm=T) 
      ut=((1+wret)^(1-rr))/(1-rr) #utility function
      ######ut=log1p(wret) ##### to rr=1
      u=-mean(ut)
      pen=abs(sum((abs(wi)>0.2)*wi,na.rm=T))
    return(u+pen) 
    }

问题是我不知道如何在R中使用optim函数来优化效用函数。 你能告诉我在R的optim函数中写些什么。老实说,我不知道怎么写这段代码

optim(par, fn, gr = NULL, ...,
      method = c("Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN",
                 "Brent"),
      lower = -Inf, upper = Inf,
      control = list(), hessian = FALSE)

我知道fnfunc。 感谢您提供的任何帮助。

0 个答案:

没有答案