[R-SIG-Finance] PortfolioAnalytics: "Upper volatility bound"-constraint

Brian G. Peterson br|@n @end|ng |rom br@verock@com
Thu Feb 3 15:59:37 CET 2022


I think you might want:

port <- add.objective(port, type = "risk", name = "StdDev",  max =
0.0225)

I'm not sure that you'll be able to combine risk_aversion and a max
bound.

Brian

-- 
Brian G. Peterson
ph: +1.773.459.4973
im: bgpbraverock

On Thu, 2022-02-03 at 15:33 +0100, Jarno Bergmeier wrote:
> Hello Brian,
> thank you so much for your response and for offering me to follow up
> on it. Setting an upper limit on the risk objective function is
> exactly what I want to do, you’re right. Basically, I would like to
> implement something like the “max_prisk”-argument from the risk
> budget constraint, but for the portfolio variance in the risk
> objective function. 
> I tried to implement it, so that I could use it like this e.g., in
> the portfolio specification:
> port <- add.objective(port, type = "risk", name = "var",
> risk_aversion = 2, max_portfvar = 0.0225)
> But so far I was not able to come up with a function like that, that
> I could still use to maximize quadratic utility and supply with a
> custom moment function in the
> optimize.portfolio/optimize.portfolio.rebalancing function. 
> I would therefore be extremely appreciative if you would be able to
> provide me with a worked example.
>  
> Kind regards,
> Jarno
>  
> Gesendet: Mittwoch, 02. Februar 2022 um 16:57 Uhr
> Von: "Brian G. Peterson" <brian using braverock.com>
> An: "Jarno Bergmeier" <jarno.bergmeier using web.de>, r-sig-finance using r-
> project.org
> Betreff: Re: [R-SIG-Finance] PortfolioAnalytics: "Upper volatility
> bound"-constraint
> You are correct that adding this type of constraint would break most
> convex solvers.
>  
> You can do this today with any of the global solvers by setting an
> upper limit on the risk objective function.
>  
> I believe that you could do this with a conical solver constraint as
> well.  You could access some conical solvers today via ROI in
> PortfolioAnalytics, and we hope to add explicit conical solver
> support via CVXR this summer in a Google Summer of Code project.  so
> maybe look into using ROI as well for now.
>  
> Hopefully this helps.  Please follow up if you need a worked example
> and I'll try to find some time to put one together.
>  
> Regards,
>  
> Brian
>  
> --
> Brian G. Peterson
> ph: +1.773.459.4973
> im: bgpbraverock
>  
> On Wed, 2022-02-02 at 16:48 +0100, Jarno Bergmeier wrote:
> > Hello everyone,
> > I wanted to ask my first-ever question via R-SIG-Finance, with
> > regard to portfolio constraints and the “PortfolioAnalytics”-
> > package in R. 
> > When distinguishing between certain types of investors, the
> > empirical literature often employs certain values for the risk
> > aversion coefficient. I now read a study that additionally makes
> > use of upper volatility bounds (“less than or equal to…”) and was
> > asking myself whether it would be possible to implement something
> > like that for out-of-sample portfolio optimization with
> > PortfolioAnalytics. 
> > So, a code similar to this: 
> >  
> > port <- portfolio.spec(assets = colnames(returns_monthly))
> > port <- add.constraint(port, "long_only")
> > port <- add.constraint(port, "weight_sum", min_weight = 0.99,
> > max_weight = 1.01)
> > port <- add.objective(port, type = "risk", name = "var",
> > risk_aversion = 2)
> > port <- add.objective(port, type = "return", name = "mean")
> > opt <- optimize.portfolio.rebalancing(R = returns_monthly,
> > portfolio = port, optimize_method = "ROI", rebalance_on = "months",
> > training_period = 60, rolling_window = 60)
> >  
> > that also includes another constraint, which gives an upper
> > volatility bound for the portfolio? 
> > I recently read a dissertation, that stated that such a constraint
> > would be a convex one, which could not be expressed linearly, and
> > therefore not solvable for many packages/solvers.
> > Therefore, I wanted to ask if anyone here might have already
> > implemented an upper volatility/variance constraint with
> > PortfolioAnalytics or knows, whether it would be possible to
> > successfully do this with the package?
> >  
> > Kind regards
> > Jarno
> >  
> > _______________________________________________
> > R-SIG-Finance using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> > -- Subscriber-posting only. If you want to post, subscribe first.
> > -- Also note that this is not the r-help list where general R
> > questions should go.

	[[alternative HTML version deleted]]



More information about the R-SIG-Finance mailing list