Hi Ilya
Many thanks for pointing me toward the PARMA package. I have tried to use it but I seem to fail, I am not sure I am doing things right. When I optimise for a given level of risk (7% annualised) and then check what the portfolio volatility with the in-sample weights the level risk does not seem to equate to the intended target risk. Gilts World Ex UK Stocks UK Stocks 2014-02-28 1.548142e-03 0.0279529433 4.838851e-02 2014-03-31 7.806639e-05 0.0105305699 -2.702980e-02 2014-04-30 7.377730e-03 -0.0052597245 3.158530e-02 2014-05-31 9.628424e-03 0.0282594842 1.481751e-02 2014-06-30 -5.580206e-03 0.0001037494 -1.283548e-02 2014-07-31 1.057991e-02 -0.0034606566 -3.263463e-05 2014-08-31 3.487462e-02 0.0404001701 2.027569e-02 2014-09-30 -6.982201e-03 -0.0005089251 -2.937074e-02 2014-10-31 1.384694e-02 0.0226491298 -1.050032e-02 2014-11-30 3.209176e-02 0.0427556870 2.914371e-02 I use the above data as an input (m) to the optimiser then force my monthly standard deviation to 0.07/sqrt(12) spec <- parmaspec(S = cov(m) ,riskB= 0.07/sqrt(12) ,risk="EV",riskType="maxreward", LB = rep(0,3), UB = rep(1,3), budget=1, forecast=colMeans(m)) parmasolve(spec, solver="SOCP")} The annualised standard deviation of my series are : > apply(m,2,sd)*sqrt(12) Gilts World Ex UK Stocks UK Stocks 0.04938711 0.06359545 0.09144821 so a 7% target risk portfolio that maximise return should exist as a solution. Anyhow the resulting weights from the above dataseries are calculated as: > spec <- parmaspec(S = cov(m) ,riskB= 0.07/sqrt(12) > ,risk="EV",riskType="maxreward", LB = rep(0,3), UB = rep(1,3), budget=1, > forecast=colMeans(m)) > parmasolve(spec, solver="SOCP")} +---------------------------------+ | PARMA Portfolio | +---------------------------------+ No.Assets : 3 Problem : SOCP Risk Measure : EV Objective : maxreward Risk : 0.0005859 Reward : 0.0110454 Optimal_Weights World Ex UK Stocks 0.9581 Gilts 0.0419 Now when I use the solution weights I do not get the same monthly targeted risk. I realise that the risk > w <- parmasolve(spec, solver="SOCP")@solution$weights > sd(rowSums(t(apply(m,1,function(x) x*t(w)))))*sqrt(12) [1] 0.0624795 > My portfolio do not have a standard deviation of 0.7 as I was expecting…… It is probably obvious to many of the PARMA users…but I can t understand where I get it wrong as the portfolio is obviously feasible. What I want is the portfolio that maximise return amongst all the possible portfolios with a 7% annualised vol. Any idea ? From: Ilya Kipnis [mailto:ilya.kip...@gmail.com] Sent: 21 January 2015 15:50 To: Pierre Org Cc: r-sig-finance@r-project.org Subject: Re: [R-SIG-Finance] Portfolio Optimisation as a function of targeted Risk rather than return. Check out the PortfolioAnalytics package. On Wed, Jan 21, 2015 at 6:13 AM, Pierre Org <pie...@lequeux.org> wrote: I am currently working on a portfolio optimisation strategy that would involves optimising a portfolio so that it maximises the returns for a user defined level of risk. E.g. keeping the volatility of the portfolio at 10% annualised whilst maximising the return for this level. For that purpose I was hoping to use the function maxreturnPortfolio in fPortfolio that should return the portfolio with the maximal return for a fixed target risk. Clearly though showing in this great package the function has been/is in development by the authors of the package and currently does not work as intended. This is confirmed by various posts and answer to those by the authors. I wonder if anyone knows of another more up to date package or way of doing this in R ? Any help would be really appreciated. [[alternative HTML version deleted]] _______________________________________________ R-SIG-Finance@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]] _______________________________________________ R-SIG-Finance@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.