Академический Документы
Профессиональный Документы
Культура Документы
On each example worksheet, read the comments at the bottom of the sheet, then
click Tools Solver... to examine the decision variables, constraints, and objective.
To find the optimal solution, click the Solve button.
The models in this workbook deal with decisions to invest in stocks and bonds. To help you
understand the models in this workbook, we briefly explain the ideas behind the stock and bond
models in the Theory worksheet.
The Markowitz model uses the Solver to determine the percent of our available funds to invest
in each of five stocks, so as to incur the least risk for a target rate of return. The resulting
portfolio of stocks is called an efficient portfolio. In this model, we assume that the variances
and covariances of stocks are known. In the Full Markowitz model, we calculate the variances
and covariances of stocks from a history of stock prices.
The Efficient Frontier worksheet contains a Markowitz model and an embedded chart. A
short VBA program, also included in the workbook, uses the Solver to optimize the
Markowitz model for several different target rates of return. The VBA code is run and the
resulting portfolio returns and variances are plotted on the chart when you press the button on
the worksheet.
The Sharpe model computes an efficient portfolio using alphas and betas which relate the
return on each stock to the return on the market and the risk-free rate. The alphas, betas and
residual variances are computed via linear regression from a history of stock prices.
The four Bond worksheets illustrate how a portfolio of bonds may be 'immunized' against
changes in interest rates. The model Bond1 assumes that bond durations are known. In model
Bond2, the durations are calculated using Excels DURATION function.
Models Bond3 and Bond4 illustrate 'exact matching' in fixed-income portfolios. Here we
assume that the investor has a series of liabilities (for example, pension payments) to be met in
future periods, and the principal and interest on the bonds must cover the liabilities in each
period.
254543550.xlsx
Stock 2
20.00%
7.00%
0
Portfolio %
Expected Return
Linear QP Terms
20.00%
8.00%
0
Stock 3
20.00%
9.50%
0
Stock 4
20.00%
6.50%
0
Stock 5
20.00%
14.00%
0
Total
100.00%
Variance/Covariance Matrix
Stock 1
Stock 2
2.50%
0.10%
1.00%
-0.50%
1.60%
Stock 1
Stock 2
Stock 3
Stock 4
Stock 5
0.10%
1.10%
-0.10%
1.20%
-0.85%
Stock 3
1.00%
-0.10%
1.20%
0.65%
0.75%
Stock 4
-0.50%
1.20%
0.65%
0.40%
1.00%
Stock 5
1.60%
-0.85%
0.75%
1.00%
2.00%
Variance
Std. Dev.
Return
Problem
An investor wants to put together a portfolio consisting of up to 5 stocks. Using the Markowitz method, what is the
best combination of stocks to minimize risk for a given return? The variances are known for each stock, as are the
covariances between all stocks. The returns for all stocks are also known.
Solution
1) The variables are the percentage allocations of our funds to invest in each stock. In this worksheet, the variables
are given the name Allocations. The sum of the allocations (which must be 100%) is computed in the cell named
Total_Portfolio.
2) The constraints are very simple. First there are the logical constraints:
Allocations >= 0 via the Assume Non-Negative option
Total_Portfolio = 1
Then there is a constraint that the portfolio return should be at least a certain target value (9% in this example). This
return is calculated in the cell named Portfolio_return:
Portfolio_Return >= 0.09
3) The objective is to minimize portfolio variance, which is calculated according to the Markowitz method in the cell
named Portfolio_Variance.
Remarks
In this worksheet, we use the QUADPRODUCT function to compute the portfolio variance. If you see #NAME? on
this worksheet, you need to open the add-in (DOTPRD32.XLL or DOTPROD.XLL) that provides QUADPRODUCT.
In the Full Markowitz worksheet, we calculate the portfolio variance 'manually' without using QUADPRODUCT.
The Markowitz method can only be used if all the variances of individual stocks, and the covariances between each
pair of stocks are known. In this model we assumed that all the terms are given. In the Full Markowitz worksheet we
actually calculate the variances and covariances from a history of stock prices.
Page 4
254543550.xlsx
0.68%
8.22%
9.00%
ee #NAME? on
witz worksheet we
Page 5
254543550.xlsx
20.00%
8.70%
Stock 2
20.00%
7.10%
Stock 3
20.00%
9.40%
Stock 4
20.00%
10.70%
Stock 5
20.00%
6.90%
Total
100.00%
Variance/Covariance Matrix
Stock 1
Stock 2
Stock 3
Stock 4
Stock 5
0.03%
0.12%
0.03%
0.06%
0.01%
0.12%
1.23%
0.20%
0.16%
-0.05%
0.03%
0.20%
0.04%
0.04%
-0.01%
0.06%
0.16%
0.04%
0.51%
0.02%
0.01%
-0.05%
-0.01%
0.02%
0.05%
Variance Terms
0.01%
0.07%
0.01%
0.03%
0.00%
Return Terms
1.74%
1.42%
1.88%
2.14%
1.38%
Stock 1
Stock 2
Stock 3
Stock 4
Stock 5
Variance
Std. Dev.
Return
0.12%
3.49%
8.56%
10.00%
12.00%
8.00%
7.00%
9.00%
7.00%
8.00%
6.00%
9.00%
11.00%
Stock 2
15.00%
17.00%
4.00%
-8.00%
15.00%
22.00%
3.00%
-14.00%
2.00%
15.00%
Stock 3
12.00%
13.00%
9.00%
7.00%
9.00%
11.00%
9.00%
6.00%
8.00%
10.00%
Stock 4
18.00%
16.00%
3.00%
4.00%
8.00%
10.00%
-3.00%
15.00%
20.00%
16.00%
Stock 5
5.00%
8.00%
10.00%
9.00%
5.00%
4.00%
4.00%
6.00%
8.00%
10.00%
Problem
An investor wants to put together a portfolio consisting of up to 5 stocks. Using the Markowitz method, what is the
best combination of stocks to minimize risk for a given return? In this model, we calculate stock returns, the variance
of each stock, and the covariances between stocks, using the Excel functions AVERAGE, VARP and COVAR.
Solution
1) The variables are the percentage allocations of our funds to invest in each stock. In this worksheet, the variables
are cells B6 to F6 (they are not given a name). The sum of the percentage allocations (which must be 100%) is
computed in cell H6.
2) The constraints are very simple. First there are the logical constraints:
B6:F6 >= 0 via the Assume Non-Negative option
H6 = 1
Then there is a constraint that the portfolio return should be at least a certain target value (9% in this example). This
return is calculated in cell I19, as the sum of the weighted stock returns:
I19 >= 0.09
3) The objective is to minimize portfolio variance, which is calculated from the weighted individual stock variances
Page 6
254543550.xlsx
Page 7
254543550.xlsx
0.00%
7.00%
Portfolio %
Expected Return
Stock 2
3.57%
8.00%
Stock 3
0.00%
9.50%
Stock 4
0.00%
6.50%
Stock 5
96.43%
15.00%
Total
100.00%
Variance/Covariance Matrix
Stock 1
Stock 1
Stock 2
Stock 3
Stock 4
Stock 5
2.50%
0.10%
1.00%
-0.50%
1.60%
Stock 2
0.10%
1.10%
-0.10%
1.20%
-0.85%
Stock 3
1.00%
-0.10%
1.20%
0.65%
0.75%
Stock 4
-0.50%
1.20%
0.65%
0.40%
1.00%
Stock 5
1.60%
-0.85%
0.75%
1.00%
2.00%
Variance
Variance Terms
0.00%
-0.03%
0.00%
0.00%
1.83%
Return Terms
0.00%
0.29%
0.00%
0.00%
14.46%
Std. Dev.
Des. Ret
Return
0.0180255
13.43%
14.75%
14.75%
This worksheet includes a Markowitz portfolio model that can be optimized by the Solver to find the minimum variance
portfolio for a given target rate of return. We then use VBA (Visual Basic Application Edition) code to set the target
rate of return to different values (from 10% to almost 15%) and run the Solver to optimize the model for each target return.
The VBA code stores the target returns and resulting portfolio variances in cells J21 through K40, which are linked to
the X-Y plot shown to the right. When you press the button labeled 'Create Frontier', the VBA code is run and the
resulting efficient frontier is drawn on the embedded chart.
To see the VBA code controlling the Solver, select Tools Macro... Visual Basic Editor, or press Alt+F11. In the VBA
window, in the left-hand Project list window double-click on Modules, then double-click on Module1. To successully
run the code and create the chart, you may need to choose Tools References... in the VBA Editor and click to set a
check mark next to 'Solver'.
Page 8
254543550.xlsx
Efficient Frontier
12.06
10.06
8.06
Return
6.06
4.06
2.06
0.06
0
Variance
Page 9
10
12
254543550.xlsx
Stock 2
Stock 3
Stock 4
Stock 5
20.00%
20.00%
20.00%
20.00%
20.00%
0.577381 1.672619 0.64881 0.934524 0.767857
0.047738 -0.042738 0.049881 0.043452 0.016786
0.000261 0.014236 0.000353 0.006059 0.000389
0.00001 0.00057 0.00001 0.00024 0.00002
Total
100.00%
Portfolio Variance
0.12%
Portfolio Return
8.56%
10.00%
12.00%
8.00%
7.00%
9.00%
7.00%
8.00%
6.00%
9.00%
11.00%
Stock 2
15.00%
17.00%
4.00%
-8.00%
15.00%
22.00%
3.00%
-14.00%
2.00%
15.00%
Stock 3
12.00%
13.00%
9.00%
7.00%
9.00%
11.00%
9.00%
6.00%
8.00%
10.00%
Stock 4
18.00%
16.00%
3.00%
4.00%
8.00%
10.00%
-3.00%
15.00%
20.00%
16.00%
Stock 5
5.00%
8.00%
10.00%
9.00%
5.00%
4.00%
4.00%
6.00%
8.00%
10.00%
Market
8.00%
10.00%
9.00%
7.00%
4.00%
6.00%
5.00%
5.00%
6.00%
8.00%
Problem
An investor wants to put together a portfolio consisting of up to 5 stocks. Using the Sharpe Single-Index method,
what is the best combination of stocks to maximize return for a given level of risk (variance)?
Solution
1) The variables are the percentage or fractional allocations of our funds to invest in each stock. In this worksheet,
the variables are given the name Portfolio_fractions. The sum of the allocations (which must be 100%) is computed
in the cell named Portfolio_Total.
2) The constraints are very simple. First there are the logical constraints:
Portfolio_Fractions >= 0 via the Assume Non-Negative option
Portfolio_Total = 1
Then there is a constraint that the portfolio variance should be no more than 0.0003 (in this example). The portfolio
variance is calculated in the cell named Variance:
Variance <= 0.0003
3) The objective is to maximize portfolio return which is calculated according to the Sharpe method in the cell
named Return.
Remarks
This model uses historical data on the stocks and market to calculate the returns and variance of the stocks and
the portfolio. It also uses Excel's regression tools to estimate the alphas and betas, as well as the residual error,
necessary to use the Sharpe Single Index method.
A different approach to this problem would be to minimize risk for a certain return. It is easy to adjust the Solver to
do this. Simply change the set cell to be the variance and adjust the constraint to hold the return at a given level.
Page 10
254543550.xlsx
ndex method,
this worksheet,
0%) is computed
he stocks and
t a given level.
Page 11
254543550.xlsx
20.00%
2.8
8.00%
Bond 2
20.00%
3.1
6.00%
Bond 3
Bond 4
20.00%
3.7
10.00%
Bond 5
20.00%
3.5
9.00%
Bond 6
10.00%
3.8
8.00%
10.00%
4
5.00%
3.8
3.4
7.90%
Portfolio Duration
Portfolio Yield
Total
100.00%
Problem
An investor wants to put together a portfolio consisting of up to 6 different bonds. To minimize risk of
loss of principal value due to interest rate fluctuations and to assure enough cash-flow at a certain point
in the future, he wants to make sure that the average duration of the bonds equals his investment time
horizon. How should the investor choose his portfolio to optimize the combined yield of the bonds,
while making sure that the duration of the portfolio equals the investment time horizon? The duration
and the yield to maturity are known for each bond.
Solution
1) The variables are the percentages or fractions of our available funds to invest in each bond. In
worksheet BOND1 these are given the name Portfolio_fractions.
2) The constraints are very simple. First we have the logical constraints:
Portfolio_fractions >= 0 via the Assume Non-Negative option
Portfolio_total = 1
Then there is the constraint to make sure that the portfolio duration equals the investment time horizon:
Portfolio_duration = Time_horizon
3) The objective is to maximize the portfolio yield. This is given the name Portfolio_yield
Remarks
In this model we assume that the duration of the bond is known. In worksheet BOND2 we will see how
to use EXCEL's build-in functions to calculate the duration of each bond.
Page 12
254543550.xlsx
20.00%
8.00%
$150
$1,000
Bond 2
Bond 3
20.00%
6.00%
$100
$1,000
Bond 4
20.00%
9.00%
$120
$1,000
Bond 5
20.00%
10.00%
$175
$1,000
Bond 6
20.00%
7.00%
$0
$1,000
20.00%
9.00%
$125
$1,000
Total
120.00%
3.5
4.19957
9.80%
Problem
An investor wants to put together a portfolio consisting of up to 6 different bonds. To minimize risk of
loss of principal value due to interest rate fluctuations and to assure enough cash-flow at a certain point
in the future, he wants to make sure that the average duration of the bonds equals his investment time
horizon. How should the investor choose his portfolio to optimize the combined yield of the bonds,
while making sure that the duration of the portfolio equals the investment time horizon? All bonds
mature in 4 years and have one annual interest payment. The annual payments, the yield and the
face values of the bonds are all known
Solution
1) The variables are the percentages or fractions of our available funds to invest in each bond. In
worksheet BOND1 these are given the name Portfolio_fractions.
2) The constraints are very simple. First we have the logical constraints:
Portfolio_fractions >= 0 via the Assume Non-Negative option
Portfolio_total = 1
Then there is the constraint to make sure that the portfolio duration equals the investment time horizon:
Portfolio_duration = Time_horizon
3) The objective is to maximize the portfolio yield. This is given the name Portfolio_yield
Remarks
The solution is the same as in worksheet BOND1. The difference is that instead of the duration of
each bond being given, it is now calculated from the yield, annual coupon and face value.
The Excel function DURATION is only available if you have installed the Analysis ToolPak add-in. If
you see #NAME? on the worksheet, choose Tools Add-Ins..., click to put a check mark next to
Analysis ToolPak, then click OK. If Analysis ToolPak is missing from the list of available add-ins, you
may need to install it from the Excel or Office CD.
Page 13
254543550.xlsx
7%
Interest Rate
Characteristics of bonds
Bond 1
Face Value
Coupon Payment
Years to Maturity
Price
Bond 2
Bond 1
Year 1
Year 2
Year 3
Year 4
Year 5
Bond 2
10
Number Purchased
Cash Flow
Bond 3
Bond 4
Bond 5
$1,000
$1,000
$1,000
$1,000
$1,000
$100
$125
$150
$200
$75
3
5
6
4
6
$1,078.73 $1,225.51 $1,381.32 $1,440.34 $1,023.83
Bond 1
$1,000
$1,000
$1,000
Bond 3
10
Bond 2
$1,250
$1,250
$1,250
$1,250
$1,250
Year 6
Bond 4
10
Bond 3
$1,500
$1,500
$1,500
$1,500
$1,500
$1,500
Bond 5
10
Bond 4
10
Bond 5
$2,000
$2,000
$2,000
$2,000
$750
$750
$750
$750
$750
$750
Cost
$61,497
Total
$6,500
$6,500
$6,500
$5,500
$3,500
$2,250
Problem
In models BOND1 and BOND2 we saw a way for an investor to protect against interest rate fluctuations. Here, we'll look
at another method. An investor wants to put together a portfolio consisting of up to 6 different bonds. He has certain cashflow requirements in the future that the coupons of the bonds should cover. (For example, a pension fund must meet
requirements for future pension payments.) These payments are independent of interest rate changes. How should the
investor choose his portfolio to minimize the cost of the bonds, while making sure that the payments cover his future cashflow requirements?
Solution
1) The variables are the number of each bond to include in the portfolio. In worksheet BOND3 these are given the name
Purchased_bonds.
2) The constraints are very simple. First we have the logical constraints:
Purchased_bonds >= 0 via the Assume Non-Negative option
Purchased_bonds = integer (We can not buy fractions of a bond)
Then there is the constraint to make sure that the cash-flow requirements are met:
Cash_flow >= Liabilities
3) The objective is to minimize the portfolio cost. This is given the name Total_cost.
Remarks
In this model we assume that money coming in from maturing bonds can not be used to cover the cash-flow requirements.
Also, we do not account for excess money in one period that may be transferred to the next period. In model BOND4 we
will account for this.
Page 14
254543550.xlsx
Liability
$32,000
$25,000
$22,000
$28,000
$25,000
$20,000
sh-flow requirements.
model BOND4 we
Page 15
254543550.xlsx
7%
Interest Rate
Characteristics of bonds
Bond 1
Face Value
Coupon Payment
Years to Maturity
Price
Bond 2
$1,000
$100
3
$1,078.73
Bond 1
Cash Flow
Year 1
Year 2
Year 3
Bond 2
50
Number Purchased
Bond 3
$1,000
$125
5
$1,225.51
Bond 1
Bond 3
50
Bond 2
$5,000
$5,000
$5,000
Year 4
Year 5
Bond 4
$1,000
$150
6
$1,381.32
Bond 4
50
Bond 3
$6,250
$6,250
$6,250
$6,250
$6,250
Year 6
Bond 5
$1,000
$1,000
$175
$75
4
6
$1,355.66 $1,023.83
Bond 5
Cost
50 $303,253
Bond 5
Total w/Int
50
Bond 4
$7,500
$7,500
$7,500
$7,500
$7,500
$7,500
$8,750
$8,750
$8,750
$8,750
$3,750
$3,750
$3,750
$3,750
$3,750
$3,750
$31,250
$30,448
$37,079
$42,384
$32,891
$19,694
Problem
An investor wants to put together a portfolio consisting of up to 6 different bonds. He has certain cash-flow requirements in the future
that the coupons of the bonds should cover. (For example, a pension fund must meet requirements for future pension payments.)
These payments are independent of interest rate changes. Excess payments in a period can be reinvested, to be available in the
next period, at a certain interest rate. How should the investor choose his portfolio to minimize the cost of the bonds, while making
sure that the payments cover his future cash-flow requirements?
Solution
1) The variables are the number of each bond to include in the portfolio. In worksheet BOND3 these are given the name
Purchased_bonds.
2) The constraints are very simple. First we have the logical constraints:
Purchased_bonds >= 0 via the Assume Non-Negative option
Purchased_bonds = integer (We can not buy fractions of a bond)
Then there is the constraint to make sure that the cash-flow requirements are met:
Cash_flow >= Liabilities
3) The objective is to minimize the portfolio cost. This is given the name Total_cost.
Remarks
The solution is similar to the one in BOND3. The difference is that the cash-flow takes into account the reinvestment of excess
funds in one period for the next period. Remember that the original idea behind exact matching was to minimize the influence
of interest rate changes. In this model, however, we are again more dependent on the interest rate, since a shift in the future
rate would affect the solution to the model. Thus, the market value of the portfolio may fluctuate to a greater extent than if we
ignored reinvestment opportunities.
Page 16
254543550.xlsx
Liability
$32,000
$25,000
$22,000
$28,000
$25,000
$20,000
ension payments.)
be available in the
ment of excess
e the influence
ft in the future
xtent than if we
Page 17