ALP What Is Alpha?
The raw material of profitable trading — how to find it and prove it's real
Learning Objectives
- •Understand alpha as excess return beyond market/risk factors
- •Know the difference between alpha and beta exposure
- •See why alpha decays and how to deal with it
- •Measure alpha quality using the Information Coefficient
- •Understand the Fundamental Law of Active Management
Explain Like I'm 5
Alpha is the extra return you get from being smart, not from just riding the market. If the market goes up 10% and your portfolio goes up 15%, that extra 5% is alpha. It's the value you add through skill, not just by showing up.
Think of It This Way
Think of it like a race. Beta is having a fast car (market exposure). Alpha is being a skilled driver who takes better lines through corners. Everyone with a fast car finishes in roughly the same time. The skilled driver finishes first. Alpha is driving skill. Beta is car speed.
1Alpha vs Beta
Return Decomposition: Alpha vs Beta
2Alpha Decay — Nothing Lasts Forever
Alpha Decay Over Time by Signal Type
3The Information Coefficient
Information Coefficient by Strategy Type
4The Fundamental Law of Active Management
Information Ratio vs Breadth (at Different IC Levels)
5Common Alpha Myths
6The Alpha Lifecycle
Key Formulas
Alpha (CAPM)
Portfolio return minus expected return from market exposure. Positive alpha = you added value beyond what market exposure alone explains.
Fundamental Law of Active Management
Information Ratio = IC × √(Breadth). You can have a high IR through better predictions (high IC) or more bets (high breadth). Most systematic strategies take the breadth path.
Hands-On Code
Computing Information Coefficient
import numpy as np
from scipy.stats import spearmanr
def compute_ic(predictions, actual_returns):
"""Compute Information Coefficient (rank IC)."""
ic, p_value = spearmanr(predictions, actual_returns)
return ic, p_value
# Example: your model predictions vs actual returns
np.random.seed(42)
n = 1000
# Signal with genuine (weak) alpha
signal = np.random.randn(n) * 0.1 # your prediction
noise = np.random.randn(n)
actual = 0.08 * signal + noise # weak relationship
ic, pval = compute_ic(signal, actual)
print(f"IC: {ic:.4f}")
print(f"p-value: {pval:.4f}")
print(f"IC > 0.05? {'Yes — worth exploring' if abs(ic) > 0.05 else 'No — probably noise'}")
# IR estimation
breadth = 600 # trades per year
ir = ic * np.sqrt(breadth)
print(f"\nEstimated IR: {ir:.2f}")
print(f"IR > 0.5? {'Yes — tradeable strategy' if ir > 0.5 else 'No — need more breadth or IC'}")An IC of 0.05-0.10 sounds small. But with 600 trades/year, the IR can be quite high. You don't need to be a genius predictor — you need to be slightly better than random, applied consistently.
Knowledge Check
Q1.A strategy returns 15% when the market returns 12% with beta=1.0. What is the alpha?
Q2.According to the Fundamental Law, how can you improve your Information Ratio?
Assignment
Create a random signal and measure its IC against actual market returns. Then create a slightly informed signal (add a small correlation with future returns) and measure IC again. At what IC level does the signal become tradeable given 500 trades/year? Use the IR formula.