optimization - Setting target risk in R package fPortfolio -


i trying optimize portfolio according specific level of risk. seems straightforward use fportfolio, results getting not make sense. have spent hours trying figure out without luck.

base case (i.e., not constraints)

defaultspec <- portfoliospec() lppassets <- 100*lpp2005.ret[, c("sbi", "spi", "lmi", "mpi")] lppdata <- portfoliodata(data = lppassets, spec = defaultspec) port <- efficientportfolio(lppdata, defaultspec, constraints = "longonly") port@portfolio  # $weights #         sbi         spi         lmi         mpi  # 0.396009510 0.002142136 0.547715368 0.054132986   # $covriskbudgets #         sbi         spi         lmi         mpi  # 0.396009510 0.002142136 0.547715368 0.054132986   # $targetreturn #        mean          mu  # 0.006422759 0.006422759   # $targetrisk #       cov     sigma      cvar       var  # 0.1038206 0.1038206 0.2186926 0.1684104   # $targetalpha # [1] 0.05  # $status # [1] 0   # slot "messages": # list() 

when try set risk level 0.09, same answer.

defaultspec <- portfoliospec() settargetrisk(defaultspec) <- 0.09 # **this doesn't seem work** lppassets <- 100*lpp2005.ret[, c("sbi", "spi", "lmi", "mpi")] lppdata <- portfoliodata(data = lppassets, spec = defaultspec) port <- efficientportfolio(lppdata, defaultspec, constraints = "longonly") port@portfolio  # object of class "fpfolioval" # slot "portfolio": # $weights #         sbi         spi         lmi         mpi  # 0.396009510 0.002142136 0.547715368 0.054132986   # $covriskbudgets #         sbi         spi         lmi         mpi  # 0.396009510 0.002142136 0.547715368 0.054132986   # $targetreturn #        mean          mu  # 0.006422759 0.006422759   # $targetrisk #       cov     sigma      cvar       var  # 0.1038206 0.1038206 0.2186926 0.1684104   # $targetalpha # [1] 0.05  # $status # [1] 0   # slot "messages": # list() 

the "spec" says new level of risk targeted, results not change. not matter if set risk @ 0.09 or 0.12 or other value.

defaultspec  # model list:    #  type:                      mv #  optimize:                  maxreturn #  estimator:                 covestimator #  params:                    alpha = 0.05 = 1  # portfolio list:    #  portfolio weights:         na #  target return:             na #  target risk:               0.09 #  risk-free rate:            0 #  number of frontier points: 50 #  status:                    na  # optim list:    #  solver:                    solverquadprog #  objective:                 portfolioobjective portfolioreturn portfoliorisk #  options:                   meq = 2 #  trace:                     false 

what doing wrong? how set level of risk using fportfolio in r?

from file fportfolio, appears if set risk target, might need use maxreturnportfolio. might need setoptimize(spec) <- 'maxreturn'.

copied file in r: "maximum return portfolio:

the function maxreturnportfolio returns portfolio maximal return fixed target risk."


Comments