Xinran Zhao 2024-10-13
Version 2.0.0 contains the following new or enhanced functions, and new Vignettes:
The primary addition to PortfolioAnalytics in this release is the
addition of the CVXR solver.
The CVXR solver adds efficient constrained conical solutions to
PortfolioAnalytics to solve multiple common risk-weighted portfolio
objectives with common constraints. This will allow for fast solutions
to many common portfolio constructions.
New PortfolioAnalytics Functions:
- meaneqs.efficient.frontier (create mean-eqs efficient frontier) utility function
- meanrisk.efficient.frontier (generate multiple efficient frontiers for the same portfolio) utility function
- extract_risk (extract the risk value when knowing the weights of portfolio)
- chart.EfficientFrontierCompare (Overlay the efficient frontiers of different minRisk portfolio objects on a single plot)
- backtest.plot (based on Peter Carl’s code, generate plots of the cumulative returns and/or drawdown for back-testing)
- opt.outputMvo (converts output of
optimize.portfolioto a list of the portfolio weights, mean, volatility and Sharpe Ratio) - plotFrontiers (plot frontiers based on the result of
meanvar.efficient.frontier,meanetl.efficient.frontierormeaneqs.efficient.frontier)
Enhanced Functions:
- optimize.portfolio (enhanced with CVXR solvers and EQS objective)
- optimize.portfolio.rebalancing (enhanced with CVXR solvers and EQS objective)
- create.EfficientFrontier (enhanced with mean-EQS and mean-risk)
Support S3 Methods for CVXR:
- print.optimize.portfolio.CVXR
- extractStats.optimize.portfolio.CVXR
Custom Moment Functions for Robust Covariance Matrices:
- custom.covRob.MM
- custom.covRob.Rocke
- custom.covRob.Mcd
- custom.covRob.TSGS
- MycovRobMcd
- MycovRobTSGS
New Vignettes and their Code Functions in the demo Folder:
- cvxrPortfolioAnalytics.pdf, CRAN title = “CVXR for PortfolioAnalytics”.
- demo_cvxrPortfolioAnalytics.R
- robustCovMatForPA.pdf, CRAN title = “Robust Covariance Matrices for PortfolioAnalytics”
- demo_robustCovMatForPA.R
Please contribute with bug fixes, comments, and testing scripts (take your data and disguise it, or use data sets like ‘edhec’ like we do in the demo with your constraints and other objectives modified to demonstrate your problem on public data)