Signal Research
This skill provides the systematic methodology for discovering, engineering, evaluating, and combining predictive trading signals (alpha signals) using quantitative methods. It covers the full research pipeline — from raw data to deployable signal — including factor model construction, feature engineering, signal evaluation metrics (Information Coefficient, Information Ratio, decay analysis), combinatorial signal testing with overfitting safeguards, time-series cross-validation, and crypto-specific signal discovery. This is the research layer that feeds into trading strategies.
When to Use This Skill
- When searching for new predictive signals (alpha discovery)
- When constructing factor models (single-factor or multi-factor)
- When engineering features from raw market/on-chain data
- When evaluating whether a signal has genuine predictive power
- When analyzing how quickly a signal decays over time
- When combining multiple signals into a composite model
- When applying proper cross-validation for time-series financial data
- When quantifying crypto-specific signals (funding rate, sentiment, on-chain metrics)
What This Skill Does
- Alpha Signal Discovery: Systematic process for generating and screening candidate signals
- Factor Model Construction: Builds single-factor and multi-factor models with proper orthogonalization
- Feature Engineering: Transforms raw data into predictive features (returns, z-scores, ratios, ranks)
- Signal Evaluation: Measures predictive power using IC, IR, turnover, and decay rate
- Overfitting Prevention: Applies multiple testing corrections, walk-forward validation, and out-of-sample discipline
- Signal Combination: Combines signals using ranking, z-scoring, and weighted composites
- Crypto Signal Specialization: Evaluates funding rate signals, social sentiment quantification, and on-chain metric factors
How to Use
Alpha Discovery
Discover new alpha signals for BTC using price, volume, and funding rate data over the past 2 years
Factor Model
Build a multi-factor model for crypto top-20 assets using momentum, value, and volatility factors
Signal Evaluation
Evaluate the predictive power of this signal: 7-day funding rate z-score for ETH perpetual futures
Feature Engineering
Engineer trading features from raw OHLCV + on-chain data for [token]. What transformations add predictive value?
Signal Decay
How quickly does the momentum signal (20-day return) decay for BTC? What's the optimal holding period?
Data Sources
With MCP/CLI tools connected:
- yFinance MCPs (tooyipjee, maxscheijen, Adity-star) — Historical OHLCV, returns computation, fundamental data
- Empyrical MCP — Performance metrics, risk-adjusted returns, factor analysis support
- CoinGecko MCP / CoinGecko Price MCP — Crypto price history, market cap, volume, social metrics
- Binance MCP (TermiX, snjyor) — Funding rates, open interest, order book depth, liquidation data
- Crypto Sentiment MCP — Social sentiment scores, Fear & Greed index, social volume
- DeFiLlama — TVL data, fee revenue, protocol metrics for on-chain factor construction
- Whale Tracker MCP — Whale flow data for exchange flow factors
Without tool access: Ask the user to provide:
- Historical price data (OHLCV) for the asset(s) — minimum 252 trading days (1 year), ideally 500+
- Any additional data series they want to test as signals (funding rates, sentiment scores, on-chain metrics)
- The universe of assets (single asset or cross-sectional)
- Target holding period (1 day, 1 week, 1 month)
- Forward return data for evaluating signal predictions
Proceed with analysis framework using provided data. Note statistical limitations of small samples.
Methodology
Step 1: Define the Research Question
Before generating signals, precisely define what you are trying to predict.
RESEARCH QUESTION FRAMEWORK:
1. TARGET VARIABLE: What are you predicting?
- Forward 1-day return (short-term)
- Forward 5-day return (swing trading)
- Forward 21-day return (monthly)
- Forward return sign (direction only)
- Risk-adjusted forward return (Sharpe of next N days)
2. UNIVERSE: What assets?
- Single asset (BTC, ETH, SPY, etc.)
- Cross-sectional (top 50 crypto, S&P 500 members)
- Single asset = time-series signal
- Cross-sectional = relative ranking signal
3. SIGNAL TYPE: What kind of edge?
- Momentum: Past returns predict future returns
- Mean-reversion: Extreme moves revert
- Value: Cheap assets outperform expensive ones
- Quality: High-quality assets outperform low-quality
- Sentiment: Crowd behavior predicts short-term moves
- Flow: Money movement predicts price direction
4. HOLDING PERIOD: How long will you hold?
- Must match the signal's predictive horizon
- A 1-day signal used for 30-day holding = misuse
Step 2: Feature Engineering — Raw Data to Predictive Features
Transform raw data into features that may have predictive power.
Core Feature Transformations:
RETURNS (most common base feature):
Simple return: r_t = (P_t - P_{t-1}) / P_{t-1}
Log return: r_t = ln(P_t / P_{t-1}) [better for compounding analysis]
N-day return: r_{t,N} = (P_t - P_{t-N}) / P_{t-N}
Periods: 1d, 5d, 10d, 21d, 63d, 126d, 252d
VOLATILITY:
Realized vol: σ_N = StdDev(r_t, N) × √252 [annualized]
Parkinson vol: σ_P = √(1/(4N×ln2) × Σ(ln(H_t/L_t))²) [uses high-low, more efficient]
Vol ratio: σ_short / σ_long [vol regime detection]
Periods: 5d, 10d, 21d, 63d
Z-SCORES (standardization for cross-sectional comparisons):
z = (x - μ) / σ
Rolling z-score: z_t = (x_t - mean(x, N)) / std(x, N)
Cross-sectional z: z_i = (x_i - mean(x, all assets)) / std(x, all assets)
Common window: 21-day, 63-day rolling
RATIOS:
Price / SMA(N): Trend deviation ratio
Volume / SMA(Volume, N): Volume surge ratio
ATR(short) / ATR(long): Volatility expansion/contraction ratio
RSI: Already a ratio (0-100 scale)
RANKS (robust to outliers -- preferred for cross-sectional):
Percentile rank: rank_i = rank(x_i) / N
No outlier sensitivity (rank of 1000% return = same as rank of 50% return)
Always normalize: 0 (worst) to 1 (best)
INTERACTION FEATURES:
Momentum × Volume: High return + high volume = stronger signal
Volatility × Direction: Low vol + positive return = quality trend
Price vs MA × RSI: Near MA + oversold RSI = mean-reversion setup
LAGGED FEATURES:
Signal value at t-1, t-2, ..., t-N
Useful for: detecting signal persistence and autocorrelation
Caution: More lags = more overfitting risk
Crypto-Specific Feature Engineering:
FUNDING RATE FEATURES:
Raw funding rate (8h intervals)
Cumulative funding (7d, 14d, 30d)
Funding rate z-score: z = (FR_t - mean(FR, 30d)) / std(FR, 30d)
Funding rate momentum: FR_t - FR_{t-7}
Extreme funding dummy: 1 if |FR| > 0.05%, else 0
SENTIMENT FEATURES:
Fear & Greed Index (0-100): Contrarian signal at extremes
Social volume z-score: Unusual social activity
Weighted sentiment: Volume-weighted average of sentiment scores
Sentiment divergence: Price rising but sentiment falling (or vice versa)
ON-CHAIN FEATURES:
Exchange flow z-score: Net flow vs 30d average (see onchain-analysis skill)
Active address momentum: 7d MA / 30d MA of daily active addresses
NVT ratio: Market cap / Daily on-chain transaction volume
MVRV ratio: Market cap / Realized cap (BTC/ETH specific)
Staking ratio change: Delta in % of supply staked over 7d/30d
Whale accumulation score: Net whale flow z-score (see onchain-analysis)
Step 3: Single-Factor Signal Evaluation
Evaluate each candidate signal individually before combining.
Information Coefficient (IC):
IC = Spearman rank correlation between signal value and forward return
IC INTERPRETATION:
| IC Value | Interpretation | Quality |
|----------|---------------|---------|
| > 0.10 | Very strong | Rare -- check for overfitting |
| 0.05-0.10 | Strong | Good single factor |
| 0.02-0.05 | Moderate | Useful in combination |
| 0.00-0.02 | Weak | May add marginal value in multi-factor |
| < 0.00 | Negative or zero | Discard (or use as reverse signal if significant) |
WHY SPEARMAN (not Pearson):
- Robust to outliers (crypto has extreme outliers)
- Captures monotonic relationships (not just linear)
- Works with ranked portfolios (long top decile, short bottom decile)
CALCULATION:
For each period t:
IC_t = SpearmanCorr(Signal_values_t, Forward_returns_{t+1 to t+H})
Average IC = mean(IC_t across all periods)
IC standard error = std(IC_t) / √(N_periods)
IC t-stat = Average IC / IC standard error
STATISTICAL SIGNIFICANCE:
t-stat > 2.0 (p < 0.05): Signal is statistically significant
t-stat > 2.5: More robust significance
t-stat > 3.0: Strong evidence of predictive power
Information Ratio (IR):
IR = Mean(IC) / StdDev(IC)
IR = how consistently the signal predicts (Sharpe ratio of IC)
| IR Value | Interpretation |
|----------|---------------|
| > 0.5 | Excellent -- very consistent signal |
| 0.3-0.5 | Good -- reliable signal |
| 0.1-0.3 | Moderate -- usable but inconsistent |
| < 0.1 | Poor -- too noisy to rely on |
A signal can have a decent IC but poor IR if it only works in certain market regimes.
Turnover:
Turnover = fraction of portfolio that changes when signal is re-evaluated
Turnover = Σ|weight_{t} - weight_{t-1}| / 2
LOW TURNOVER (< 20% monthly): Cheap to trade, long-term factors
HIGH TURNOVER (> 100% monthly): Expensive, must overcome transaction costs
NET IC = IC - (Turnover × Transaction_Cost_per_unit)
If Net IC < 0: Signal is profitable before costs but unprofitable after costs → DISCARD
TRANSACTION COST ESTIMATES:
| Market | One-way Cost | Round-trip |
|--------|-------------|-----------|
| US equities (liquid) | 5 bps | 10 bps |
| US equities (small) | 15 bps | 30 bps |
| Crypto (BTC/ETH, CEX) | 5-10 bps | 10-20 bps |
| Crypto (altcoin, CEX) | 10-30 bps | 20-60 bps |
| Crypto (DEX, major) | 30-50 bps | 60-100 bps |
| Crypto (DEX, small) | 50-300 bps | 100-600 bps |
Step 4: Signal Decay Analysis
Measure how quickly a signal loses predictive power over time.
SIGNAL DECAY METHODOLOGY:
1. Compute IC at different forward horizons:
IC_1d = IC using 1-day forward returns
IC_2d = IC using 2-day forward returns
IC_5d = IC using 5-day forward returns
IC_10d = IC using 10-day forward returns
IC_21d = IC using 21-day forward returns
2. Plot IC vs horizon → decay curve
3. Fit exponential decay: IC(h) = IC_0 × e^(-λh)
- IC_0: signal strength at generation
- λ: decay rate (higher = faster decay)
- Half-life = ln(2) / λ
4. OPTIMAL HOLDING PERIOD = horizon where IC is maximized
or = half-life of the decay curve
TYPICAL DECAY RATES:
| Signal Type | Half-Life | Optimal Holding |
|------------|-----------|-----------------|
| Momentum (short-term, 5d return) | 3-7 days | 5-10 days |
| Momentum (medium, 21d return) | 10-30 days | 15-30 days |
| Momentum (long, 126d return) | 30-90 days | 60-120 days |
| Mean-reversion (RSI extreme) | 1-3 days | 1-5 days |
| Funding rate extreme | 1-5 days | 2-7 days |
| Sentiment extreme | 1-3 days | 1-5 days |
| On-chain flow signal | 3-14 days | 5-21 days |
| Value (NVT, P/E) | 30-90 days | 30-90 days |
IF A SIGNAL HAS NO DECAY (flat IC across horizons):
- May be a structural alpha (rare and valuable)
- Or may be a data artifact -- investigate carefully
- Test on out-of-sample data
IF A SIGNAL DECAYS IN < 1 DAY:
- Only usable for high-frequency trading
- Transaction costs likely eat the edge
- Requires low-latency execution infrastructure
Step 5: Cross-Validation for Time Series
Standard k-fold cross-validation is INVALID for time series because it leaks future information. Use these methods instead.
METHOD 1: WALK-FORWARD VALIDATION (Recommended)
Train: [────────────] (e.g., days 1-252)
Test: [────] (e.g., days 253-273)
Then slide forward:
Train: [──────────────] (e.g., days 22-273)
Test: [────] (e.g., days 274-294)
Parameters:
- Training window: 252 trading days (1 year) minimum
- Test window: 21 trading days (1 month) typical
- Step size: 21 days (non-overlapping test periods)
- Total walks: (Total days - Training window) / Step size
METHOD 2: EXPANDING WINDOW
Train: [──] (days 1-252)
Test: [──] (days 253-273)
Train: [────] (days 1-273)
Test: [──] (days 274-294)
Train: [──────] (days 1-294)
Test: [──] (days 295-315)
Advantage: Uses all available training data
Disadvantage: Earlier data may be less relevant (regime changes)
METHOD 3: PURGED K-FOLD (for cross-sectional signals)
Standard k-fold BUT:
1. Sort by time
2. Create a GAP (purge window) between train and test folds
3. Gap size = maximum holding period + 1
4. Prevents information leakage from overlapping return horizons
Example (5-fold, 5-day forward returns):
Fold 1: Train [all except fold 1], Gap [5 days each side], Test [fold 1]
The 5-day gap ensures no return period in train overlaps with test
VALIDATION RULES:
- NEVER use standard k-fold for time series data
- NEVER include future data in training (even indirectly via normalization)
- Test period should cover at least 2 full market cycles (bull + bear)
- Minimum 100 test-period observations for statistical validity
- Report ALL walk-forward results (not just the best)
Step 6: Multi-Factor Model Construction
Combine individually validated signals into a composite model.
Factor Combination Methods:
METHOD 1: EQUAL-WEIGHT Z-SCORE COMBINATION (Simplest)
1. For each signal, compute cross-sectional z-score at each time t
2. Composite = mean(z-score_1, z-score_2, ..., z-score_K)
3. Rank assets by composite score
4. Long top quintile, short bottom quintile (or just long top)
Pros: Robust, no estimation error, hard to overfit
Cons: Ignores signal strength differences
METHOD 2: IC-WEIGHTED COMBINATION
1. Compute rolling IC for each signal (trailing 63 days)
2. Weight_k = max(IC_k, 0) / Σ max(IC_j, 0)
3. Composite = Σ(Weight_k × z-score_k)
Pros: Adapts to which signals are currently working
Cons: Slightly more prone to overfitting than equal-weight
METHOD 3: REGRESSION-BASED (Most Powerful, Most Dangerous)
Forward_return = β_1 × Signal_1 + β_2 × Signal_2 + ... + β_K × Signal_K + ε
Estimated via: OLS, Ridge, Lasso, or Elastic Net
- Ridge (L2): Shrinks coefficients, handles multicollinearity
- Lasso (L1): Sets weak signals to exactly zero (feature selection)
- Elastic Net: Combination of Ridge + Lasso
CRITICAL: Estimate coefficients ONLY on training data
- Use walk-forward to estimate β on training, test on holdout
- Re-estimate coefficients every rebalance period
- Regularization is MANDATORY (unregularized OLS will overfit)
METHOD 4: RANK-BASED COMBINATION (Most Robust)
1. For each signal, rank all assets (0 = worst, 1 = best)
2. Composite rank = mean(rank_1, rank_2, ..., rank_K)
3. Advantages: No parametric assumptions, robust to outliers
Factor Orthogonalization:
PROBLEM: Signals often overlap (e.g., momentum and trend-following are correlated)
SOLUTION: Orthogonalize factors to remove redundancy
PROCESS:
1. Compute correlation matrix of all candidate signals
2. If two signals have |correlation| > 0.7: they are redundant
3. Keep the one with higher IC, discard or residualize the other
4. Residualization: Signal_B_orth = Signal_B - β × Signal_A
(regress B on A, use residuals as the orthogonalized B)
5. Maximum factors in a model: 5-7 (more = overfitting risk)
6. Each factor should capture a DIFFERENT source of return
FACTOR CATEGORY DIVERSIFICATION:
Include at most 1-2 signals from each category:
- Momentum (1 signal: e.g., 21d return)
- Value (1 signal: e.g., NVT z-score)
- Volatility (1 signal: e.g., vol ratio)
- Flow (1 signal: e.g., exchange flow z-score)
- Sentiment (1 signal: e.g., Fear & Greed z-score)
Step 7: Overfitting Prevention and Multiple Testing Correction
The biggest risk in signal research is finding patterns that do not generalize.
OVERFITTING WARNING SIGNS:
1. Signal works perfectly in-sample but fails out-of-sample
2. Signal requires very specific parameter values (e.g., RSI(13) works but RSI(12) and RSI(14) don't)
3. Signal has extremely high IC (>0.15) -- probably fitting noise
4. Signal needs many conditions/filters to work
5. Signal was found after testing 100+ variants
MULTIPLE TESTING CORRECTION:
When you test N signals, some will appear significant by chance.
Bonferroni correction (conservative):
Adjusted p-value threshold = 0.05 / N
If you tested 20 signals: need p < 0.0025 (t-stat > 3.0)
If you tested 100 signals: need p < 0.0005 (t-stat > 3.5)
Benjamini-Hochberg (less conservative):
1. Sort p-values from smallest to largest: p_(1) ≤ p_(2) ≤ ... ≤ p_(N)
2. Find largest k where p_(k) ≤ (k/N) × 0.05
3. All signals with p ≤ p_(k) are significant
HAIRCUT RULE OF THUMB:
Reported backtest Sharpe should be haircut by:
Adjusted Sharpe = Reported Sharpe × (1 - 0.1 × √(Number of signals tested / 10))
Example: Tested 50 signals, best has Sharpe 2.0
Adjusted = 2.0 × (1 - 0.1 × √5) = 2.0 × 0.776 = 1.55
STRUCTURAL SAFEGUARDS:
1. Define your signal universe BEFORE testing (don't add signals after seeing results)
2. Reserve 30% of data as a FINAL holdout -- never touch until the very end
3. Use walk-forward validation (not in-sample optimization)
4. Prefer simple models (fewer parameters = less overfitting)
5. Require economic rationale for every signal (not just statistical significance)
6. Test on multiple assets / time periods -- signal should generalize
Step 8: Signal Deployment Decision Framework
After evaluation, decide whether a signal is ready for live trading.
SIGNAL READINESS CHECKLIST:
| Criterion | Threshold | Pass/Fail |
|-----------|-----------|-----------|
| Average IC | > 0.02 (single asset) or > 0.03 (cross-sectional) | |
| IC t-statistic | > 2.5 (after multiple testing correction) | |
| Information Ratio | > 0.2 | |
| Out-of-sample IC | > 50% of in-sample IC | |
| Walk-forward Sharpe | > 0.5 (after transaction costs) | |
| Signal decay half-life | > 2× rebalance frequency | |
| Turnover (monthly) | Low enough that costs < 50% of gross alpha | |
| Economic rationale | Clear, documented | |
| Works in multiple periods | Bull + bear + sideways | |
| Survives multiple testing correction | Yes | |
DECISION:
All criteria pass → Deploy at small size, monitor for 3 months
1-2 criteria fail → Refine signal, retest
3+ criteria fail → Discard signal or return to feature engineering
DEPLOYMENT SIZING:
New signal: 25% of full intended allocation
After 3 months positive: 50% of full allocation
After 6 months positive: 75% of full allocation
After 12 months positive: full allocation
At any point if signal degrades: reduce to 25% or halt
Anti-Patterns
DO NOT do these — they are the most common signal research failures:
-
Data snooping / p-hacking: Testing hundreds of signal variations and reporting only the best one. Apply multiple testing corrections and require out-of-sample validation.
-
Lookahead bias: Using information that would not have been available at the time of the signal. Example: Using a company’s annual earnings report data on the day it was filed, not the day it was released. Always use point-in-time data.
-
Survivorship bias: Only analyzing assets that exist today. Crypto tokens that went to zero, stocks that were delisted — ignoring them inflates backtest performance. Use full historical universe.
-
Overfitting to parameters: If your signal only works with RSI(13) and not RSI(12) or RSI(14), it is overfit. Good signals are robust to small parameter changes.
-
Ignoring transaction costs: A signal with IC of 0.05 but 200% monthly turnover is worthless in crypto after DEX fees. Always compute net-of-cost IC and Sharpe.
-
Confusing correlation with causation: Just because funding rate predicts returns does not mean funding rate causes returns. Understand the mechanism — funding rate extremes attract arbitrageurs who push price.
-
Using standard k-fold on time series: This leaks future information into training data. Always use walk-forward, expanding window, or purged k-fold.
-
Too many factors in one model: More than 5-7 factors in a model virtually guarantees overfitting. Each factor must contribute independent, orthogonal predictive power.
Validation Checkpoints
Input Validation
- Research question clearly defined (target variable, universe, holding period)
- Sufficient historical data (minimum 252 days; 500+ preferred; crypto: 24/7 data)
- Data is point-in-time (no lookahead bias)
- Universe includes delisted/dead assets (no survivorship bias)
- Data is clean (no gaps, outliers handled, adjusted for splits/forks)
- Training/test split defined BEFORE any signal testing begins
- Multiple testing correction method selected
Signal Evaluation Validation
- IC computed using Spearman rank correlation
- IC t-statistic reported with statistical significance
- Information Ratio computed and above minimum threshold
- Signal decay curve plotted with half-life calculated
- Turnover computed and net-of-cost IC is positive
- Walk-forward validation used (not in-sample optimization)
- Out-of-sample IC is at least 50% of in-sample IC
- Multiple testing correction applied
Model Validation
- Factors are not highly correlated (|r| < 0.7 pairwise)
- Economic rationale documented for every factor
- Model has at most 5-7 factors
- Walk-forward Sharpe is positive after transaction costs
- Model tested across multiple market regimes
- Final holdout data confirms results
Example
User: “Evaluate whether the 7-day funding rate z-score is a predictive signal for BTC forward 5-day returns.”
Analysis:
## Signal Evaluation: BTC Funding Rate Z-Score → 5-Day Forward Return
### Signal Definition
- Signal: z_t = (FR_7d_avg_t - mean(FR_7d, 90d)) / std(FR_7d, 90d)
- FR_7d_avg = average 8-hour funding rate over past 7 days
- Z-scored against trailing 90-day distribution
- Hypothesis: Extreme positive funding (overleveraged longs) predicts
negative 5-day returns. Extreme negative funding (overleveraged shorts)
predicts positive 5-day returns. Signal is CONTRARIAN.
- Economic rationale: Extreme funding rates create carry costs that force
position unwinds. Arbitrageurs also exploit extreme funding by taking
the opposing side, pushing price in the contrarian direction.
### Data
- Asset: BTC/USDT perpetual (Binance)
- Period: Jan 2021 -- Dec 2024 (4 years, ~1,460 daily observations)
- Training: Jan 2021 -- Dec 2023 (3 years)
- Test: Jan 2024 -- Dec 2024 (1 year, fully out-of-sample)
- Funding rate: 8-hour intervals, averaged to daily
### Feature Engineering
- Raw signal: 7-day average funding rate
- Transformation: 90-day rolling z-score
- Signal value: Negated (multiply by -1) because signal is contrarian
- High z → overlevered longs → bearish → we want negative signal
- Low z → overlevered shorts → bullish → we want positive signal
### Results: Information Coefficient
| Period | Mean IC | IC Std Dev | IC t-stat | IR |
|--------|---------|-----------|-----------|-----|
| Full sample (2021-2024) | 0.047 | 0.12 | 3.24 | 0.39 |
| Training (2021-2023) | 0.052 | 0.13 | 2.98 | 0.40 |
| Test (2024) | 0.038 | 0.10 | 2.71 | 0.38 |
| Bull regime (2021, 2024 Q4) | 0.061 | 0.14 | 2.42 | 0.44 |
| Bear regime (2022) | 0.039 | 0.11 | 2.18 | 0.35 |
| Sideways regime (2023) | 0.041 | 0.12 | 2.05 | 0.34 |
### Signal Decay Analysis
| Forward Horizon | IC | Significance |
|----------------|-----|-------------|
| 1-day | 0.021 | Weak |
| 2-day | 0.032 | Moderate |
| 3-day | 0.041 | Moderate |
| 5-day | 0.047 | Strong (peak) |
| 7-day | 0.039 | Moderate |
| 10-day | 0.028 | Moderate |
| 14-day | 0.015 | Weak |
| 21-day | 0.005 | Negligible |
Half-life: ~8 days
Optimal holding period: 5-7 days
Signal is largely exhausted by day 14
### Turnover Analysis
- Signal rebalance frequency: Weekly (every 5 days)
- Average position change per rebalance: 35% (one-way turnover)
- Transaction cost assumption: 10 bps round-trip (Binance taker)
- Monthly turnover cost: ~30 bps
- Gross monthly alpha (from IC): ~1.4%
- Net monthly alpha: ~1.1% → Viable after costs
### Walk-Forward Validation
- 3-year training, 1-year test
- Walk-forward Sharpe (net of costs): 1.42
- Out-of-sample IC retention: 73% of in-sample (0.038 / 0.052)
- Signal works in all 3 regimes tested
### Multiple Testing Correction
- Signals tested in this research batch: 8
- Bonferroni threshold: p < 0.05/8 = 0.00625 → t-stat > 2.73
- Full-sample t-stat: 3.24 > 2.73 → PASSES Bonferroni correction
- Test-set t-stat: 2.71 → borderline (close to 2.73)
→ Signal is significant but not overwhelmingly so on test alone
### Signal Readiness Checklist
| Criterion | Value | Pass? |
|-----------|-------|-------|
| Average IC > 0.02 | 0.047 | Yes |
| IC t-stat > 2.5 (corrected) | 3.24 (full), 2.71 (test) | Yes (marginal on test) |
| IR > 0.2 | 0.39 | Yes |
| OOS IC > 50% of IS | 73% | Yes |
| Walk-forward Sharpe > 0.5 | 1.42 | Yes |
| Half-life > 2× rebalance | 8d > 2×5d? No (8 < 10) | Marginal |
| Net-of-cost alpha positive | 1.1% monthly | Yes |
| Economic rationale | Clear (leverage unwind) | Yes |
| Works across regimes | Bull, bear, sideways | Yes |
| Survives multiple testing | Bonferroni p < 0.00625 | Yes |
### Recommendation
APPROVED for deployment at 25% allocation. Signal has genuine predictive
power for BTC 5-day returns with economic rationale (leverage unwind effect).
The contrarian funding rate signal is strongest at 5-7 day horizons with a
half-life of ~8 days.
Caution: Marginal significance on the test set alone suggests this signal
should be combined with other factors (momentum, exchange flow) rather than
traded in isolation. See [Risk Management](/trading-skills/risk-management/) for position sizing.
Deploy: 25% size for 3 months → evaluate → scale if Sharpe holds > 1.0.