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 at braverock.com>
> An:?"Jarno Bergmeier" <jarno.bergmeier at web.de>, r-sig-finance at 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 at 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]]