create an efficient frontier
create.EfficientFrontier(R, portfolio, type, n.portfolios = 25,
risk_aversion = NULL, match.col = "ES", search_size = 2000, ...)
xts object of asset returns
object of class 'portfolio' specifying the constraints and objectives, see portfolio.spec
.
type of efficient frontier, see Details.
number of portfolios to calculate along the efficient frontier
vector of risk_aversion values to construct the efficient frontier.
n.portfolios
is ignored if risk_aversion
is specified and the number
of points along the efficient frontier will be equal to the length of risk_aversion
.
column to match when extracting the efficient frontier from an objected created by optimize.portfolio
.
passed to optimize.portfolio
for type="DEoptim" or type="random".
passthrough parameters to optimize.portfolio
.
an object of class 'efficient.frontier' with the objective measures and weights of portfolios along the efficient frontier.
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 via
meanvar.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 via
meanetl.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
with optimize_method="DEoptim"
and then extract the efficient frontier with
extract.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
with optimize_method="random"
and then extract the efficient frontier with
extract.efficient.frontier
.
optimize.portfolio
,
portfolio.spec
,
meanvar.efficient.frontier
,
meanetl.efficient.frontier