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
INTERCEPTandSLOPEfunctions 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?