create an efficient frontier
create.EfficientFrontier(R, portfolio, type, n.portfolios = 25,
risk_aversion = NULL, match.col = "ES", search_size = 2000, ...)
an object of class 'efficient.frontier' with the objective measures and weights of portfolios along the efficient frontier.
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
.
Ross Bennett
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