create.EfficientFrontier {PortfolioAnalytics} | R Documentation |
create an efficient frontier
Description
create an efficient frontier
Usage
create.EfficientFrontier(
R,
portfolio,
type,
optimize_method = "CVXR",
n.portfolios = 25,
risk_aversion = NULL,
match.col = "ES",
search_size = 2000,
...
)
Arguments
R |
xts object of asset returns |
portfolio |
object of class 'portfolio' specifying the constraints and objectives, see |
type |
type of efficient frontier, see Details. |
optimize_method |
the optimize method to get the efficient frontier, default is CVXR |
n.portfolios |
number of portfolios to calculate along the efficient frontier |
risk_aversion |
vector of risk_aversion values to construct the efficient frontier.
|
match.col |
column to match when extracting the efficient frontier from an objected created by |
search_size |
passed to |
... |
passthrough parameters to |
Details
Currently there are 4 'types' supported to create an efficient frontier:
- "mean-var", "mean-sd", or "mean-StdDev":
This is a special case for an efficient frontier that can be created by a QP solver. The
portfolio
object should have two objectives: 1) mean and 2) var. If the portfolio object does not contain these objectives, they will be added using default parameters. The efficient frontier will be created viameanvar.efficient.frontier
.- "mean-ETL", "mean-ES", "mean-CVaR", "mean-etl":
This is a special case for an efficient frontier that can be created by an LP solver. The
portfolio
object should have two objectives: 1) mean and 2) ETL/ES/CVaR. If the portfolio object does not contain these objectives, they will be added using default parameters. The efficient frontier is created viameanetl.efficient.frontier
.- "mean-EQS":
This is a special case for an efficient frontier that can be created by CVXR solvers. The
portfolio
object should have two objectives: 1) mean and 2) EQS. If the portfolio object does not contain these objectives, they will be added using default parameters. The efficient frontier is created viameanrisk.efficient.frontier
.- "mean-risk":
This is a special case for multiple efficient frontiers. The efficient frontier is created via
meanrisk.efficient.frontier
.- "DEoptim":
This can handle more complex constraints and objectives than the simple mean-var and mean-ETL cases. For this type, we actually call
optimize.portfolio
withoptimize_method="DEoptim"
and then extract the efficient frontier withextract.efficient.frontier
.- "random":
This can handle more complex constraints and objectives than the simple mean-var and mean-ETL cases. For this type, we actually call
optimize.portfolio
withoptimize_method="random"
and then extract the efficient frontier withextract.efficient.frontier
.
Value
an object of class 'efficient.frontier' with the objective measures and weights of portfolios along the efficient frontier.
Author(s)
Ross Bennett, Xinran Zhao
See Also
optimize.portfolio
,
portfolio.spec
,
meanvar.efficient.frontier
,
meanetl.efficient.frontier