← ClaudeAtlas

alpha-combination-and-neutralizationlisted

Score several alphas, combine them, and strip the exposures you did not mean to take. TRIGGER - information coefficient, IC, rank IC, ICIR, IC decay, "is my IC good", IC t-stat, Newey-West on IC, overlapping forward returns; combining alphas, blending signals, alpha weighting, z-score or rank combination, multi-factor signal; sector neutral, beta neutral, market neutral signal, industry neutralization, residualize the alpha, cross-sectional regression residuals, orthogonalize signals; winsorize, clip outliers, cross-sectional standardization; turnover-aware combination, signal smoothing, "my alpha dies after costs". SKIP for one time-series trend signal (trend-following-models), for the factor library and the alphalens forward-return convention (factor-and-timeseries-research, lib-alphalens), for weights under constraints (portfolio-and-risk), and for whether the survivor is real (backtest-validation).
howard-lynn-ye/fin-skills · ★ 1 · AI & Automation · score 77
Install: claude install-skill howard-lynn-ye/fin-skills
# Alpha combination and neutralization **Three numbers in a standard alpha research note are routinely wrong, and none of them raise.** The IC t-stat, because the observations are not independent. The word "neutral", because the exposure came from the wrong window. And the winsorization step, because it was placed after a rank and clips nothing. Everything marked ✅ Measured comes from `scripts/alpha_combine.py` — numpy + pandas + scipy, seed 20260909, 200 names x 1,200 days x 8 sectors, **7 s**. The panel's alphas have their skill planted in *known* components of the return, so neutralization can be checked rather than asserted. ## 1. Conventions this skill uses, so the numbers can be checked | Quantity | Definition here | |---|---| | IC | cross-sectional correlation of the alpha known at `t` with the forward return from `t` | | rank IC | the Spearman version — Pearson on within-row ranks | | ICIR | `mean(IC)/std(IC)`, annualized by `sqrt(252)` | | one-way turnover | `0.5 * Σ_i |w_t,i − w_{t−1,i}|` on a unit-gross book; `1.0` = the book flipped | | net | gross minus `bps × one-way turnover`, the convention `../../../fin-core/skills/backtest-validation/scripts/cost_curve.py` consumes | ✅ Measured — the script's vectorized rank IC agrees with `scipy.stats.spearmanr` row by row to **1.39e−17**. Do not take a hand-rolled IC on trust; ten rows against scipy costs nothing. ## 2. IC is not the number that decides anything ✅ Measured, five alphas, daily rebalance, 10 bps one-w