Signals

SignalResearcher was useful because it generated plausible, economically motivated alpha candidates. The validation system was useful because it rejected all six. The gates have teeth: LLM output is not rubber-stamped into the strategy registry.

The pre-registered validation stack used two nulls - a signal-shuffle cross-sectional null and a block-bootstrap time-ordering null - plus Bonferroni correction over N=1000 and an internal holdout. The 2013-2015 OOS window remained untouched.

Candidates proposed

6

Candidates accepted

0

Null draws

N=1000

OOS contamination

0

Rejected candidates

Each row records the proposed economic mechanism and the validation reason it did not enter the deterministic money path.

NameMechanismFamilyReasonGateThreshold
liq_adj_mean_reversionMean reversion is the strongest base signal (IC=+0.031, t=+2.94) but its raw form treats illiquid micro-caps equally with liquid large-caps. Illiquid names can exhibit spurious bid-ask-bounce reversals rather than genuine price discovery. By multiplying the winsorized mean reversion signal by the cross-sectional rank of 21-day average dollar volume, we continuously up-weight reversals in liquid names (where trades are feasible) and down-weight them in illiquid names (where signal is noisier and capacity is constrained). Winsorizing at 5% before scaling trims extreme reversal readings. The rank transform on dollar volume avoids the highly skewed raw dollar volume distribution dominating the scaling factor. This preserves the full cross-sectional rank ordering while concentrating signal alpha in the tradeable tier of the universe.pricereal IC-Sharpe did not exceed Bonferroni block-bootstrap threshold-0.531 failed2.436
vol_norm_momentumBase momentum has a negative IC (-0.069, t=-2.13) at 63 days, consistent with post-2008 mean-reverting market dynamics where raw price momentum underperformed. A Sharpe-ratio-style adjustment — dividing the 63-day return by 21-day realized daily volatility — attempts to isolate calm, persistent uptrends from volatile momentum that tends to reverse. Stocks with high returns but elevated short-term vol are penalized; stocks with moderate steady returns and low vol are rewarded. This separates 'trend' from 'noise momentum'. The 21-day vol window is shorter than the return window, consistent with momentum literature using trailing short-horizon realized risk. safe_div handles the zero-volatility edge case for suspended names.pricemonthly rebalance names below 100rejectedinsufficient_signal_coverage
earnings_yield_normalizedThe composite value signal has a negative IC (-0.041, t=-2.67) at 126 days, suggesting the raw value factor is either mis-specified or capturing a different regime effect. Earnings yield (EPS diluted divided by price) is a fundamental normalization that directly measures each dollar of earnings per dollar of market price — the cleanest theoretical anchor for equity value from the Gordon growth model. Unlike composite factor scores, earnings yield is single-variable and avoids aggregation artifacts. Winsorizing at 5% handles negative EPS (loss-making firms flip sign, making the metric ambiguous) and extreme growth stocks with near-zero prices. The z_score standardizes cross-sectionally. Using the same close price denominator as market pricing keeps the metric consistent with realized returns.fundamentalmonthly rebalance names below 100rejectedinsufficient_signal_coverage
liquid_univ_mean_rev_screenMean reversion (IC=+0.031, t=+2.94) is the strongest signal in the universe, but may be diluted by illiquid names where the reversal is too small to capture after transaction costs and where noise from thin order books is elevated. This screen restricts the mean reversion signal to the top 60% of the universe by 21-day average dollar volume. Within this liquid subset, price discovery is more efficient, reversals reflect genuine supply/demand imbalances, and the signal is more likely to be implementable. The z-score is computed within the screened universe only. The 21-day rolling average smooths daily dollar volume spikes from single events. The 0.4 threshold balances breadth (retaining 60% of names) against quality of the liquidity filter.priceoverall coverage below proposal-type thresholdrejectedinsufficient_signal_coverage
contrarian_multifactor_comboThe three signals with the most significant t-stats show divergent signs: mean_reversion is strongly positive (IC=+0.031, t=+2.94) while quality (IC=-0.066, t=-3.12) and value (IC=-0.041, t=-2.67) are reliably negative. Rather than discarding informative fundamental signals, we exploit their consistent directional predictability in reverse. The combination assigns +1.5 weight to mean_reversion (strongest positive IC), -1.0 to quality (strongest negative IC, highest t-stat magnitude among fundamentals), and -0.5 to value (moderate negative IC). This creates a composite that is long short-term price reverters and low-quality/low-value names — a regime-specific tilt that reflects the post-2008 period where distressed recovery dynamics dominated. sum_abs_then_zscore normalization stabilizes the composite. Decay horizon of 63 days balances the 21-day price signal with the 126-day fundamental signals.hybridmonthly rebalance names below 100rejectedinsufficient_signal_coverage
revenue_growth_rate_normThe base growth signal has the lowest IC magnitude (-0.032, t=-1.63) and lowest coverage (0.73) in the universe. A fundamental normalization — computing the 4-period change in revenue divided by the rolling 4-period mean of absolute revenue — standardizes growth as a percentage rate rather than an absolute dollar change. Small companies can show large absolute revenue changes with modest relative growth, while large companies show small absolute changes with meaningful relative growth. Dividing by rolling mean absolute revenue (rather than a single lag) reduces sensitivity to a single anomalous revenue period in the denominator. Winsorizing at 5% handles extreme growth episodes such as post-restructuring surges or IPO ramp-ups. This normalization directly addresses size bias in the raw growth signal, potentially improving cross-sectional comparability and coverage quality.fundamentalmonthly rebalance names below 100rejectedinsufficient_signal_coverage

Signal-shuffle cross-sectional null

Permutes signal values inside each rebalance cross-section. It preserves the return environment and breaks only the proposed signal-to-return alignment.

Block-bootstrap time-ordering null

Resamples time blocks to test whether the apparent IC survives disrupted ordering while preserving local time-series structure.

Bonferroni correction

The family-wise alpha budget is divided across N=1000 candidates, so a large creative batch makes each individual gate harder to clear.

Internal holdout

Discovery-period creativity is checked against a separate 2011-2012 holdout before anything can reach the strategy registry.