# portfOptim: Portfolio optimization for an index model In RcmdrPlugin.RiskDemo: R Commander Plug-in for Risk Demonstration

## Description

Finds an optimal portfolio for long-term investments and plots a return distribution.

## Usage

 ```1 2 3``` ```portfOptim(i, symbol, yield, vol, beta, indexVol = 0.2, nStocks = 7, total = 1, balanceInt = 1, C = 0.05, riskProportion = 1, riskfreeRate = 0, sim = FALSE) ```

## Arguments

 `i` vector of the indices of the included risky investments `symbol` character vector of the symbols of the risky investments `yield` vector of expected yields (in euros) `vol` vector of volatilities `beta` vector of betas `indexVol` portfolio index volatility `nStocks` number of stocks in the portfolio `total` total sum invested (in euros) `balanceInt` balancing interval of the portfolio (in years) `C` expected portfolio return (in euros) `riskProportion` proportion of risky investments `riskfreeRate` risk-free interest rate `sim` is the return distribution simulated and plotted (logical value)?

## Details

The arguments vol, beta, indexVol, riskProportion and riskfreeRate are given in decimals. The portfolio is optimized by minimizing the variance of the portfolio yield for a given expected yield. The returns are assumed to be log-normally distributed. The covariance matrix is computed using the single index model and the properties of the log-normal distribution.

## Value

 `portfolio` numeric vector of allocations to each stock (in euros) `returnExpectation` expected value of the return distribution (in euros) `returnDeviation` standard deviation of the return distribution (in euros) `VaR` 0.5%,1%,5%,10% and 50% percentiles of the return distribution (in euros)

## Note

This function is usually called by drawFigure.

## Author(s)

Arto Luoma <arto.luoma@wippies.com>

## References

Bodie, Kane, and Marcus (2014) Investments, 10th Global Edition, McGraw-Hill Education, (see Section 7.4 The Markowitz Portfolio Optimization Model and Section 8.2 The Single-Index Model).

`drawFigure`

## Examples

 ```1 2 3``` ```data(stockData, package="RcmdrPlugin.RiskDemo") with(stockData,portfOptim(i=1:5,symbol=rownames(stockData), yield=divYield/100,vol=vol/100,beta=beta/100,total=100, sim=TRUE)) ```

### Example output

```Loading required package: rgl
This is demography 1.22

Warning messages:
1: In rgl.init(initValue, onlyNULL) : RGL: unable to open X11 display
2: 'rgl_init' failed, running with rgl.useNULL = TRUE
call: fun(...)
4: no DISPLAY variable so Tk is not available
\$portfolio
NESTE    AM1 KEMIRA  METSA  METSB
18.6  -18.4  202.5   38.6 -141.3

\$returnExpectation
[1] 5

\$returnDeviation
[,1]
[1,] 68.77

\$VaR
0.5%          1%          5%         10%         50%
-204.864975 -170.250035 -111.388197  -83.078267    5.994019
```

RcmdrPlugin.RiskDemo documentation built on April 6, 2021, 5:06 p.m.