Learn R Programming

fPortfolio (version 260.72)

PortfolioClass: Portfolio Class

Description

A collection and description of functions allowing to gain information about optimal portfolios. Generally, optimization is done via three arguments, data, specification of the portfolio, and constraints, while function portfolioFrontier() has two additional arguments for title and description. The functions are: ll{ feasiblePortfolio Returns a feasible portfolio, cmlPortfolio returns the capital market line portfolio, tangencyPortfolio returns the tangency portfolio, minvariancePortfolio returns the minimum variance portfolio, efficientPortfolio returns an efficient portfolio, portfolioFrontier returns the efficient frontier, show print method for 'fPPORTFOLIO' objects, plot plot method for objects of class fPORTFOLIO. }

Usage

portfolioFrontier(data, spec = portfolioSpec(), constraints = NULL, 
    title = NULL, description = NULL)

feasiblePortfolio(data, spec = portfolioSpec(), constraints = NULL) cmlPortfolio(data, spec = portfolioSpec(), constraints = NULL) tangencyPortfolio(data, spec = portfolioSpec(), constraints = NULL) minvariancePortfolio(data, spec = portfolioSpec(), constraints = NULL) efficientPortfolio(data, spec = portfolioSpec(), constraints = NULL)

show.fPORTFOLIO(object) ## S3 method for class 'fPORTFOLIO': plot(x, which = "ask", control = list(), ...) ## S3 method for class 'fPORTFOLIO': summary(object, \dots)

Arguments

constraints
a character string vector, containing the constraints of the form "minW[asset]=percentage" for box constraints resp. "maxsumW[assets]=percentage" for sector constraints.
control
[plot, *Sliders] - a list, defining the plotting parameters. The list modifies amongst others the color, e.g. minvariance.col, type of point, e.g. tangency.pch, or the dimension of the point, e.g. cml.cex
data
a multivariate time series described by an S4 object of class timeSeries. If your timeSerie is not a timeSeries object, consult the generic function as.timeSeries to convert your time series.
description
[portfolioFrontier] - a character string, allowing for a brief project description, by default NULL, i.e. Date and User.
object
[show, *Sliders] - an S4 object of class fPORTFOLIO, containing slots call, data, specification, constraints, portfolio, title, description, see Value for a full slot description.
spec
an S4 object of class fPFOLIOSPEC, containing slots call, model, portfolio, title, description, see PortfolioSpec for a full slot description.
title
[portfolioFrontier] - a character string, containing the title for the object, by default NULL.
which
[plot] - which of the plots should be displayed? which can be either a character string, "all" (displays all plots) or "ask" (interactively asks which one to display), or a vector of integer
x
[plot] - an S4 object of class fPORTFOLIO.
...
[plot, *Sliders] - optional arguments to be passed.

Value

  • portfolioFrontier() returns an S4 object of class "fPORTFOLIO", with the following slots:
  • @calla call, returning the matched function call.
  • @dataa list with two named elements, series holding the time series data if available, otherwise NA, and statistics, itself a named list with two named elements mu and Sigma holding the vector of means and the matrix of covariances.
  • @descriptiona character string, allowing for a brief project description.
  • @portfolioa list, containing parameter specifications for the portfolio: weights a numeric vector specifying the portfolio weights, targetReturn a numeric value specifying the target return, targetRisk a numeric value specifying the target risk, targetMean a numeric value specifying the target return determinated with function mean(), targetStdev a numeric value specifying the target risk in standart deviation as risk measure.
  • @specificationa list with one named element spec which represents an object of class fPFOLIOSPEC, including all information about the portfolio specifications, see PortfolioSpec for further details.
  • @titlea title string.
  • feasiblePortfolio cmlPortfolio tangencyPortfolio minvariancePortfolio efficientPortfolio return an S4 object of class fPORTFOLIO having information only about one portfolio.

Details

Portfolio Class: This S4 class contains all information about the portfolio. Basically this are risk measure, mean and covariance estimation, target return, risk free rate, number of frontier points, ranges for calculation, see the "Value" section for a detailed description of the slots. Portfolio Frontier: The function portfolioFrontier calculates the whole efficient frontier. The portfolio information consists of five arguments: data, specifications, constraints, title and description. The data can be either the mean vector and the covariance matrix in a equivalently named list or a time series table. The specifications are done by the portfolioSpec function, see PortfolioSpec. The constrains have the following syntax. For bound constraints: "minW[asset]=percentage" and for sector constraints "maxsumW[assets]=percentage". The function chooses from this information the right algorithm to calculate the efficient frontier. The function returns an S4 object of class fPortfolio containing amongst others risk, return and weights of the whole efficient frontier, see Value for further details. Individual Portfolios: Individual portfolio functions allow a direct computation of portfolios with specific properties. The functions are: ll{ feasiblePortfolio a feasible portfolio, cmlPortfolio the capital market line portfolio, tangencyPortfolio the tangency portfolio, minvariancePortfolio the minimum variance portfolio, efficientPortfolio an efficient portfolio. } The functions require three arguments: data, spec (specifications), and constraints, see above. The functions are named according to their specific property and return the result of the computed or optimized portfolio as an S4 object of class fPortfolio. FeasiblePortfolio: The weights are retrieved from the specification structure, by default they are undefined, NULL, and in this case the function feasiblePortfolio assumes equal weights. To set user specified weights in the specification structure, use the function setWeights.

See Also

PortfolioData, PortfolioSpec, PortfolioConstraints, PortfolioPlots, PortfolioPlots.

Examples

Run this code
## minvariancePortfolio -
   # Load Data and Convert to timeSeries Object:
   Data = as.timeSeries(data(smallcap.ts))
   Data = Data[, c("BKE", "GG", "GYMB", "KRON")]
   Data
   # Set Default Specifications:
   Spec = portfolioSpec()
   Spec
   # Allow for unlimited Short Selling:
   Constraints = "Short"
   # Compute Short Selling Minimum Variance Portfolio
   minvariancePortfolio(Data, Spec, Constraints)
    
## portfolioFrontier -
   # Modify Constraints - Now Long Only Constraints:
   Constraint = c("minW[1:nAssets]=0")
   # Calculation of the Efficient Frontier
   frontier = portfolioFrontier(Data, Spec, Constraint)
   print(frontier)
    
## plot -
   # Plot Efficient Frontier with Minimum Variance Portfolio
   # plot(frontier, which = c(1, 3))
    
## frontierSlider -
   # Try Frontier Slider:
   # frontierSlider(frontier)

Run the code above in your browser using DataLab