Factor Strategies μFX Carry μTrend Following μValue μBAB μSignal Stack μIlmanen μFactor Strategies μFX Carry μTrend Following μValue μBAB μSignal Stack μIlmanen μ
μ · Macro quant · Ilmanen

Five factor strategies, built from scratch.

I spent a semester reading Ilmanen's Expected Returns and wondering, do these strategies actually hold up when you implement them yourself with real data? Here's what I found.

FX Carry
-0.09
Sharpe ratio
Trend
0.36
Sharpe ratio
Value
0.22
Sharpe ratio
BAB
1.06
Sharpe ratio
Signal Stack
-0.34
Sharpe ratio
μ · fx carry· Ilmanen (2011)01

G10 FX Carry, borrow cheap, fund expensive.

The carry trade is one of the oldest tricks in FX: borrow in low-rate currencies (JPY, CHF) and invest in high-rate ones (NZD, AUD, NOK). Uncovered interest parity predicts these differentials should be offset by exchange rate moves, empirically they aren't, creating the “UIP puzzle.”

I added a momentum overlay, if a currency's 4-week return is negative, the weight is zeroed for that month. Vol-weighting ensures Norwegian krone doesn't dominate purely because of high carry. Post-2020 volatility has made this trade rockier, which shows in the flat equity curve.

Ann. Return
0.3%
Ann. Vol
3.6%
Sharpe
0.08
Max DD
-9.8%
Live positions, G10 currencies
NZD: NEUTRALAUD: NEUTRALNOK: NEUTRALGBP: NEUTRALCAD: NEUTRALEUR: NEUTRALCHF: NEUTRALJPY: NEUTRALSEK: SHORT

NEUTRAL = momentum overlay active (4-week return negative)

μ · trend following· Moskowitz, Ooi & Pedersen (2012)02

Multi-Asset Trend, CTAs have been doing this for 50 years.

Time-series momentum (TSMOM), go long assets trending up, short those trending down, is one of the most replicated factors in finance. Signal is 12-month return minus 1-month (the “12-1” skip-month momentum), applied across 12 asset classes.

Each position is inverse-volatility weighted so every asset contributes equally to portfolio risk. Trend following is famous for crisis alpha: it gets short early in a down-trend. The strategy ran across equities, bonds, commodities, and FX with monthly rebalancing.

Ann. Return
3.6%
Ann. Vol
10.1%
Sharpe
0.36
Max DD
-24.4%
Live positions, multi-asset trend
US Equity: LONGIntl Equity: LONGEM Equity: LONGUS 20yr: LONGUS 7-10yr: LONGIntl Govt: SHORTGold: LONGOil: LONGCmdty Bskt: LONGEUR: LONGJPY: SHORTAUD: LONG
μ · country value· Ilmanen (2011)03

Value Across Borders, long cheap countries, short expensive ones.

What does “cheap” mean at the country level? CAPE, dividend yield, book-to-market all have blind spots. My proxy: the negative of the past year's price return. Countries that underperformed tend to be cheaper relative to fundamentals, a crude mean-reversion assumption.

Annual rebalance, long the 5 cheapest, short the 5 most expensive. Equal-weight within each leg. US tech dominance has made cross-country valuation spreads wider and stickier, which has hurt this factor over the past decade.

Ann. Return
1.9%
Ann. Vol
8.5%
Sharpe
0.22
Max DD
-12.4%
Live positions, country ETFs (annual rebalance)
Germany: LONGFrance: LONGAustralia: LONGSingapore: LONGSweden: LONGSwitzerland: NEUTRALUS: NEUTRALUK: NEUTRALCanada: NEUTRALBrazil: NEUTRALJapan: SHORTItaly: SHORTSpain: SHORTTaiwan: SHORTKorea: SHORT
μ · betting against beta· Frazzini & Pedersen (2014)04

Betting Against Beta, the CAPM is empirically backwards.

CAPM says higher beta equals higher expected return. Frazzini and Pedersen showed this is empirically backwards within equities: low-beta stocks deliver better Sharpe ratios than high-beta stocks. The explanation: leverage-constrained investors reach for beta to hit return targets, bidding up high-beta stocks.

The strategy levers up the low-beta quintile and de-levers the high-beta quintile to create a market-neutral portfolio. Rolling 52-week betas computed on a universe of 60 large-cap stocks. Floor beta at 0.2 to cap max leverage at 5x. Monthly rebalance. This is the strongest performer of the five.

Ann. Return
70.5%
Ann. Vol
66.3%
Sharpe
1.06
Max DD
-40.6%

“The single clearest finding: low-risk assets earn higher risk-adjusted returns than high-risk assets.”

, Frazzini & Pedersen (2014)

Live positions, current beta quintiles
MRK: LONGFCX: LONGLMT: LONGNEM: LONGEXC: LONGPFE: LONGJNJ: LONGKO: LONGTMO: LONGDUK: LONGPEP: LONGLIN: LONGPLD: NEUTRALHON: NEUTRALMCD: NEUTRALD: NEUTRALSO: NEUTRALDE: NEUTRALAPD: NEUTRALPG: NEUTRALCL: NEUTRALRTX: NEUTRALAEP: NEUTRALPSA: NEUTRALCOST: NEUTRALSPG: NEUTRALWMT: NEUTRALLOW: NEUTRALBRK-B: NEUTRALSHW: NEUTRAL

Blue = LONG (low-beta), Red = SHORT (high-beta), Grey = middle quintiles (neutral)

μ · signal stack· Ilmanen (2011)05

Signal Stack, carry + trend + value, combined.

If carry, trend, and value each have mediocre Sharpe ratios individually, what happens when you combine them? Carry tends to struggle in risk-off environments precisely when trend does best. Value moves on long cycles mostly uncorrelated with both. Combining with equal weights smooths the equity curve.

Each signal is z-scored cross-sectionally across 20 assets, combined with 1/3 weights, then the portfolio goes long the top 7 and short the bottom 7 by composite score. The chart below shows the Sharpe improvement through diversification, Ilmanen's central thesis.

Ann. Return
-1.9%
Ann. Vol
5.5%
Sharpe
-0.34
Max DD
-22.3%
Live positions, composite signal (top 7 long, bottom 7 short)
Korea: LONGEM Equity: LONGAustralia: LONGGermany: LONGDM Equity: LONGAUD: LONGCanada: LONGUS 20yr: NEUTRALUK: NEUTRALBrazil: NEUTRALUS 7-10yr: NEUTRALEUR: NEUTRALJapan: NEUTRALJPY: SHORTUS Equity: SHORTItaly: SHORTSpain: SHORTCmdty Bskt: SHORTGold: SHORTOil: SHORT

What I found.

What worked

BAB showed consistent alpha, Sharpe of 1.06 across the backtest window. The low-beta premium is real. Signal Stack outperformed all individual components through diversification.

What didn't

FX Carry suffered from post-2020 carry crash volatility. Country Value struggled as US tech dominance made cross-country spreads wider and stickier than any mean-reversion model expected.

What's next

Incorporate PE/DY data for richer value signals. Test crypto factor premia. Implement regime detection to tilt factor weights. Add ML-based signal combination.

Data: Yahoo Finance (weekly prices) / FRED (short rates) · Python + pandas · Backtest 2018,2026 · No transaction costs