QF-Learn

The efficient frontier and modern portfolio theory

The efficient frontier is the set of portfolios that give the highest expected return for each level of risk. Any portfolio below it is beaten by one on it, with more return for the same volatility or less volatility for the same return.

Harry Markowitz introduced the idea in “Portfolio Selection” (Journal of Finance, 1952), the start of what is now called modern portfolio theory. Its key insight is that a portfolio’s risk depends not only on how risky each holding is, but on how the holdings move together.

The maths of two assets

A portfolio with weight w in asset B and 1 − w in asset A has:

Rp = (1 − w)·μA + w·μB
σp² = (1 − w)²σA² + w²σB² + 2w(1 − w)·ρ·σAσB

Return is a straight average of the two, but risk is not, because of the last term. When the correlation ρ is below 1, the portfolio’s volatility is less than the average of the two volatilities. That gap is the benefit of diversification, and it is the only free lunch in finance.

Worked example

Asset A is bond-like (7% expected return, 8% volatility), asset B is stock-like (12% return, 20% volatility), and their correlation is 0.2. This code traces the mixes and finds the least risky one:

Python
import numpy as np

mu = np.array([0.07, 0.12])        # expected returns: bonds-like, stocks-like
vol = np.array([0.08, 0.20])       # volatilities
rho = 0.2                          # correlation
cov = np.array([[vol[0]**2, rho * vol[0] * vol[1]],
                [rho * vol[0] * vol[1], vol[1]**2]])

print(" w_stocks  return  volatility")
for w in np.linspace(0, 1, 6):
    weights = np.array([1 - w, w])
    ret = weights @ mu
    risk = np.sqrt(weights @ cov @ weights)
    print(f"   {w:4.0%}    {ret:6.2%}   {risk:6.2%}")

# Minimum-variance portfolio for two assets
w_min = (vol[0]**2 - rho * vol[0] * vol[1]) / (vol[0]**2 + vol[1]**2 - 2 * rho * vol[0] * vol[1])
weights = np.array([1 - w_min, w_min])
print(f"minimum variance: {w_min:.1%} stocks, return {weights @ mu:.2%}, "
      f"volatility {np.sqrt(weights @ cov @ weights):.2%}")
Output
w_stocks  return  volatility
     0%     7.00%    8.00%
    20%     8.00%    8.20%
    40%     9.00%   10.12%
    60%    10.00%   13.02%
    80%    11.00%   16.40%
   100%    12.00%   20.00%
minimum variance: 8.0% stocks, return 7.40%, volatility 7.84%
Efficient frontier for two assetsExpected return against volatility for every mix of a bond-like and a stock-like asset. The curve bends left from the all-bond point, reaching its lowest volatility of about 7.8% at 8% in stocks, then rises to the all-stock point at 20% volatility and 12% return.81012101520Minimum varianceVolatility (%)Expected return (%)Efficient frontierInefficient mixes
Adding 8% stocks to an all-bond portfolio raises return and lowers risk at the same time. Every mix to the right of the minimum-variance point is on the efficient frontier.

The striking result is the first step: moving from all bonds to 8% stocks lowers volatility (from 8.00% to 7.84%) while raising expected return (from 7.00% to 7.40%). No investor who cares only about return and volatility should hold all bonds here.

Choosing a point on the frontier

The frontier lists the sensible portfolios; it does not pick one. Add a risk-free asset and the choice gets sharper: draw a line from the risk-free rate that just touches the frontier. The point it touches, the tangency portfolio, has the highest Sharpe ratio of any risky portfolio. Every investor then holds that portfolio mixed with cash or borrowing, according to their appetite for risk. That line is the capital market line, and it led to the CAPM.

Limits in practice

Prices that drive these returns are often modelled with geometric Brownian motion, which is where simulation-based portfolio studies start.

Learn this on your phone, one short lesson at a time

QF-Learn turns topics like this into five-minute lessons with quizzes, finance games and certificates. It is free, and it is coming to Android and iOS. Leave your email and you will be first to get it.