Lab for Lecture 11: The Treynor-Black Model

Constructing an optimal portfolio combining active stock picks with passive market exposure

Building a Treynor-Black Portfolio with the Magnificent 7

Data

Use the stock_returns_mag7.xlsx dataset to obtain monthly returns on the Magnificent 7 stocks (AAPL, AMZN, GOOG, MSFT, META, NVDA, TSLA), and the fama_french_3_factors.xlsx dataset to obtain the market excess return (Mkt-RF) and the risk-free rate (RF).

You will need to merge the two datasets by date and calculate each stock’s excess return.

From fama_french_3_factors.xlsx keep only the following variables:

Column Name Data
Date Date at monthly frequency
Mkt-RF Monthly excess return on the market portfolio (market return minus risk-free rate)
RF Monthly risk-free rate (1-month T-bill rate)

Analysis

Using the alpha, beta, and idiosyncratic variance estimates from a single-index (market) model, apply the Treynor-Black model to construct the optimal portfolio that combines the passive market portfolio, with an active portfolio of the Mag 7 stocks.

Step 1: Estimate Alphas and Idiosyncratic Variances

Using the above mentioned datasets:

  • Calculate each stock’s monthly excess return: \(R_{i,t} - R_{f,t}\) for each stock \(i\) and each month \(t\) in the sample.
    • Report the mean, standard deviation, and variance of excess returns for each stock, and the market.
  • For each of the seven stocks, use the Excel INTERCEPT and SLOPE functions to calculate the \(\alpha_i\) (intercept) and \(\beta_i\) (slope) we would obtain from regressions of the stocks’ excess returns on market excess returns: \[R_{i,t} - R_{f,t} = \alpha_i + \beta_i (R_{m,t} - R_{f,t}) + \epsilon_{i,t}\]
  • Calculate the \(R^2\) for each single-index model regression, and the idiosyncratic variance \(\sigma^2(\epsilon_i)\) (variance of the residuals) for each stock.

Step 2: Active Portfolio Construction (Internal Weights)

For each stock, calculate the alpha-to-idiosyncratic-variance ratio \(\alpha_i / \sigma^2(\epsilon_i)\). Then compute the internal weight of each stock in the active portfolio: \[w_i = \frac{\alpha_i / \sigma^2(\epsilon_i)}{\sum_{j=1}^{7} \alpha_j / \sigma^2(\epsilon_j)}\]

Step 3: Compute Active Portfolio Characteristics

\[\alpha_A = \sum_{i=1}^{7} w_i \alpha_i \qquad \beta_A = \sum_{i=1}^{7} w_i \beta_i \qquad \sigma^2(\epsilon_A) = \sum_{i=1}^{7} w_i^2 \sigma^2(\epsilon_i)\]

Step 4: Compute Optimal Allocation to Active Portfolio

First calculate the initial active weight: \[w_A^0 = \frac{\alpha_A / \sigma^2(\epsilon_A)}{E(R_M)/\sigma_M^2}\]

Then adjust for the active portfolio’s beta: \[w_A^* = \frac{w_A^0}{1 + (1 - \beta_A)w_A^0}\]

Step 5: Compute the Final Weights in the Complete Portfolio.**

The weight in the market portfolio is \(w_M^* = 1 - w_A^*\), and each stock’s final weight is \(w_i^* = w_A^* \times w_i\).

Questions

  • Which stock has the highest alpha-to-idiosyncratic-variance ratio, and therefore receives the largest weight in the active portfolio? Why does this ratio—rather than alpha alone—determine the weights?
  • What are the alpha, beta, and idiosyncratic variance of the active portfolio? Is the active portfolio more or less sensitive to market movements than the market itself (i.e., is \(\beta_A\) greater or less than 1)?
  • What fraction of the total portfolio is allocated to the active portfolio (\(w_A^*\)) versus the market portfolio (\(w_M^*\))? What drives this split?
  • Do any stocks receive negative weights in the active portfolio? If so, what does a negative weight mean in economic terms, and which feature of the stock (its alpha) causes this?
  • How would the portfolio change if you were less confident in your alpha estimates—for example, if you halved all alphas? What would happen to \(w_A^*\) and the final stock weights?