Factor & Behavioral Finance
Level: 3 — Production (from-scratch derivations, code-from-memory, explain-out-loud) Time limit: 45 minutes Total marks: 60
Instructions: Show all working. Where code is requested, write it from memory (pseudocode with real function names acceptable). Use for inline math.
Question 1 — Fama-French Derivation & Regression (12 marks)
(a) Write out the full Fama-French three-factor and five-factor model equations, defining every term including the factor construction (SMB, HML, RMW, CMA). (6)
(b) A fund's monthly regression yields: Interpret each loading in words, and state whether this fund tilts toward small/large and value/growth. (4)
(c) The alpha of monthly — annualise it (compounded) and explain what a statistically significant positive alpha would imply for the EMH. (2)
Question 2 — Value & Momentum From Scratch (10 marks)
(a) Define the value and momentum factors. For momentum, specify the standard look-back and skip-month convention and explain why the most recent month is skipped. (5)
(b) Explain, out loud in your own words, why value and momentum are often combined in one portfolio despite both being "return-predictive" — reference their return correlation. (3)
(c) Give the behavioral explanation for the momentum premium (under-reaction) and one risk-based explanation. (2)
Question 3 — Code From Memory: Building a Long-Short Factor Portfolio (12 marks)
You have a DataFrame df with columns ['date','ticker','signal','ret_fwd'].
(a) Write Python/pandas pseudocode that, for each date, ranks stocks into deciles by signal, goes long the top decile and short the bottom decile (equal-weighted), and returns the monthly long-short return series. (8)
(b) Write the code to compute the annualised Sharpe ratio of that return series (assume monthly data, risk-free = 0). (4)
Question 4 — Low-Volatility & Size Factors (8 marks)
(a) State the low-volatility anomaly and explain why it contradicts the classic CAPM prediction. (4)
(b) The size factor (SMB) historically earned a premium but has weakened. Give TWO reasons commonly cited for its decline. (4)
Question 5 — Behavioral Biases: Diagnosis & Mechanism (12 marks)
For EACH of the following, define the bias and describe the specific trading mistake it causes:
(a) Disposition effect (link it explicitly to loss aversion and prospect theory). (4)
(b) Anchoring vs confirmation bias — distinguish them with one market example each. (4)
(c) Herding and recency bias — explain how together they can inflate a bubble. (4)
Question 6 — Smart Beta & EMH Debate (6 marks)
(a) Define smart beta and explain how it differs from both traditional market-cap indexing and active management. (3)
(b) State the strong, semi-strong, and weak forms of the EMH in one line each, and say which form factor premia most directly challenge. (3)
Answer keyMark scheme & solutions
Question 1 (12)
(a) [6 marks]
Three-factor:
- = market excess return (1)
- SMB (Small Minus Big) = return of small-cap portfolio minus large-cap (size) (1)
- HML (High Minus Low) = return of high book-to-market (value) minus low B/M (growth) (1)
Five-factor adds:
- RMW (Robust Minus Weak) = high profitability minus low profitability (1)
- CMA (Conservative Minus Aggressive) = low investment firms minus high investment firms (1)
- Correct full equation & alpha defined as intercept/abnormal return (1)
(b) [4 marks]
- : slightly less than market risk / defensive-ish (1)
- SMB : tilts toward small-cap (1)
- HML : negative → tilts toward growth, not value (1)
- Overall: small-cap growth fund (1)
(c) [2 marks] Annualised: (1) Significant positive alpha implies returns not fully explained by factor risks → evidence against strong/semi-strong EMH (skill or unpriced risk) (1)
Question 2 (10)
(a) [5 marks]
- Value: buy cheap stocks (high B/M, low P/E, high earnings/dividend yield), short expensive (2)
- Momentum: buy past winners, short past losers (1)
- Look-back: past 12 months, skip the most recent 1 month (12-1) (1)
- Skip reason: short-term (1-month) reversal effect from bid-ask bounce/liquidity contaminates the signal (1)
(b) [3 marks] Value and momentum have negative correlation (~ -0.5 to -0.7 of factor returns) (1); combining diversifies — when value struggles momentum often works (1); improves portfolio Sharpe beyond either alone (1).
(c) [2 marks] Behavioral: investors under-react to news, so prices drift and trends persist (1). Risk-based: winners are riskier / time-varying risk exposure justifying premium (1).
Question 3 (12)
(a) [8 marks]
def long_short(df):
out = []
for date, g in df.groupby('date'):
g = g.dropna(subset=['signal','ret_fwd'])
g['decile'] = pd.qcut(g['signal'], 10, labels=False)
long_ret = g.loc[g.decile == 9, 'ret_fwd'].mean()
short_ret = g.loc[g.decile == 0, 'ret_fwd'].mean()
out.append({'date': date, 'ls_ret': long_ret - short_ret})
return pd.DataFrame(out).set_index('date')['ls_ret']Marks: groupby date (2), qcut into deciles (2), long top / short bottom equal-weight mean (2), return long-short series (2).
(b) [4 marks]
import numpy as np
def ann_sharpe(r):
return (r.mean() / r.std(ddof=1)) * np.sqrt(12)Marks: monthly mean/std ratio (2), annualise by (2).
Question 4 (8)
(a) [4 marks] Low-vol anomaly: low-volatility/low-beta stocks earn higher risk-adjusted returns than high-vol stocks (2). Contradicts CAPM, which predicts return should rise with beta (positive risk-return line); here the empirical line is flat or inverted (2). (Causes: leverage constraints, lottery preference for high-vol names.)
(b) [4 marks] Any two:
- Premium concentrated in tiny/illiquid microcaps with high transaction costs (2)
- Post-publication decay / arbitrage after discovery (2)
- Once controlling for quality/junk, "size" largely disappears (2)
- Data/survivorship issues in original studies (2)
Question 5 (12)
(a) [4 marks] Disposition effect: tendency to sell winners too early and hold losers too long (2). Mechanism: prospect theory — investors are risk-averse in gains (lock in) but risk-seeking in losses (gamble to avoid realizing a loss); loss aversion makes realizing a loss psychologically painful (2).
(b) [4 marks]
- Anchoring: fixating on an irrelevant reference (e.g., purchase price or a 52-week high) when valuing (2)
- Confirmation bias: seeking/weighting only info that supports an existing view, ignoring contradicting data (2)
(c) [4 marks] Herding: following the crowd's trades rather than own analysis (1). Recency bias: over-weighting recent price rises as the norm (1). Together: recent gains → extrapolation → more buying → others herd in → self-reinforcing price spike detached from fundamentals = bubble (2).
Question 6 (6)
(a) [3 marks] Smart beta: rules-based, transparent strategies that weight by factors (value, low-vol, etc.) rather than market cap (2); systematic like passive (low cost, rules) but tilts away from cap-weight like active — a middle ground (1).
(b) [3 marks]
- Weak: prices reflect all past price/volume info (1)
- Semi-strong: prices reflect all public info (1)
- Strong: prices reflect all info incl. private (0.5); persistent factor premia most challenge semi-strong form (0.5)
[
{"claim":"Annualised alpha of 0.25% monthly compounded ≈ 3.04%","code":"a=(1+Rational(25,10000))**12-1; result=abs(float(a)-0.03042)<0.0005"},
{"claim":"Sharpe annualisation factor for monthly data is sqrt(12)","code":"result=abs(float(sqrt(12))-3.4641016)<1e-4"},
{"claim":"HML loading -0.30 indicates growth tilt (negative sign)","code":"hml=-0.30; result=(hml<0)"},
{"claim":"Value-momentum diversification: combined variance < average if correlation negative","code":"s=1; rho=-0.6; comb=0.5*0.5*(s*s)+0.5*0.5*(s*s)+2*0.5*0.5*rho*s*s; result=comb<0.5*(s*s)"}
]