Cross-Sectional Momentum in Crypto: Does It Exist?
A deep technical analysis from Venym Labs Research
Summary
A deep technical analysis from Venym Labs Research
- Published
- Filed under
- Quantitative Methods
- Reading time
- 13 min read
- Sections
- 7
- Research by
- Venym Labs Research
Published by Venym Labs. Methods and limits are in the study; it has not been peer reviewed.
Introduction: The Enduring Enigma of Momentum#
Momentum is one of the most widely documented and robust anomalies in traditional finance. From Jegadeesh and Titman's seminal 1993 paper, "Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency," to countless subsequent studies, the propensity for past winners to continue winning and past losers to continue losing has been a persistent feature of equity, commodity, and currency markets globally. The underlying drivers are often attributed to behavioral biases (underreaction to news, herding) and structural market inefficiencies.
However, the nascent, volatile, and often idiosyncratic crypto market presents a unique challenge to established quantitative paradigms. While time-series momentum (trend-following) has shown some efficacy in crypto, the cross-sectional variant – betting on the relative performance of assets within a universe – is less explored and, crucially, less understood. Does the "winner-takes-all" or "strong get stronger" dynamic translate effectively into the digital asset space? Or do the unique market microstructure, high idiosyncratic risk, and rapid narrative shifts in crypto invalidate this powerful factor?
At Venym Labs, we are continuously pushing the boundaries of quantitative research in digital assets. Our mission is to identify robust, statistically significant, and economically meaningful alpha sources in this complex domain. This research delves deep into the existence and characteristics of cross-sectional momentum in a diverse universe of cryptocurrencies. We aim to provide a definitive quantitative assessment, leveraging rigorous methodologies and a high-fidelity dataset.
Defining Cross-Sectional Momentum in Crypto#
Before diving into empirical analysis, it's crucial to precisely define what we mean by cross-sectional momentum in the context of cryptocurrencies. Unlike traditional equities where market capitalization often dictates universe selection and liquidity, crypto assets exhibit extreme heterogeneity in these dimensions.
Our Working Definition: Cross-sectional momentum in crypto refers to the tendency for assets that have performed well relative to their peers over a lookback period (e.g., 1-month, 3-month) to continue to outperform, and for assets that have performed poorly to continue to underperform, over a subsequent holding period.
Key Considerations for Crypto Momentum#
-
Universe Construction: The crypto market is vast and constantly evolving. Including illiquid or newly launched tokens can introduce significant noise and survivorship bias. We focus on a dynamically maintained universe of the top N cryptocurrencies by market capitalization, ensuring sufficient liquidity and historical data. Our typical universe comprises the top 100-200 assets, excluding stablecoins and wrapped tokens.
-
Lookback and Holding Periods: Traditional momentum strategies often employ 3-12 month lookbacks and 1-month holding periods. In crypto, due to higher volatility and faster information dissemination, these periods may need adjustment. We explore various combinations, including shorter horizons (e.g., 1-week, 2-week, 1-month lookbacks with 1-week, 2-week holding periods).
-
Return Calculation: Daily log returns are standard. However, the exact time of day for price snapshots (e.g., UTC 00:00 vs. exchange-specific close) can matter due to fragmentation and differing trading hours globally. We use a consistent UTC 00:00 snapshot across major exchanges to mitigate this.
-
Momentum Metric: The simplest is raw historical return. Other variations like risk-adjusted returns (e.g., Sharpe ratio over the lookback) or idiosyncratic momentum (returns orthogonalized to market factors) can also be considered. For this study, we primarily focus on raw historical returns.
-
Portfolio Formation: Typically, assets are ranked by their momentum score, and portfolios are formed by going long the top quintile/decile (winners) and short the bottom quintile/decile (losers). Equal weighting, market-cap weighting, or volume-weighted strategies are all possibilities. We primarily use equal weighting to isolate the momentum effect, free from market-cap biases.
Methodology and Data#
Our analysis spans a period from January 1, 2018, to December 31, 2023, encompassing multiple market cycles, including the 2018 bear market, 2021 bull run, and subsequent corrections. This period is critical for assessing the robustness of any factor.
Data Sources#
High-frequency, aggregated historical price data from major centralized exchanges (Binance, Coinbase, Kraken, etc.) Market capitalization and volume data from reputable data providers (e.g., CoinGecko, CoinMarketCap APIs).
Universe Filtering#
- Initial Universe: All cryptocurrencies with a market capitalization exceeding $100 million.
- Liquidity Filter: Minimum average daily trading volume of $1 million over the past month.
- Price Filter: Minimum price of $0.01 to avoid micro-cap artifacts.
- Exclusions: Stablecoins (USDT, USDC, DAI), wrapped tokens (WBTC, WETH), and exchange-specific tokens are excluded to focus on independent asset price dynamics.
- Dynamic Universe: The universe is re-evaluated weekly based on these criteria. On average, this results in a tradable universe of approximately 150-200 assets.
Momentum Strategy Construction#
We adopt a standard cross-sectional momentum strategy often referred to as "J-T momentum" (Jegadeesh & Titman).
Algorithm:
- Rebalancing Frequency: Weekly (every Monday at UTC 00:00).
- Lookback Period: We test 1-week (W1), 2-week (W2), 1-month (M1), and 3-month (M3) lookback periods for past returns.
- Holding Period: We test 1-week (H1) and 2-week (H2) holding periods.
- Portfolio Formation:
- At each rebalancing date
t, for each assetiin the active universe, calculate its cumulative returnR_i(L)over the lookback periodL. - Rank all assets by
R_i(L). - Form quintile portfolios:
- Winner Portfolio (Q5): Top 20% of assets.
- Loser Portfolio (Q1): Bottom 20% of assets.
- The momentum strategy is a long-short portfolio: Long Q5, Short Q1, equal-weighted within each leg.
- At each rebalancing date
- Performance Metrics: Annualized returns, standard deviation, Sharpe ratio, maximum drawdown, and Calmar ratio.
- Transaction Costs: We model realistic transaction costs of 10 basis points (0.10%) per one-way trade, applied to the entire portfolio value being rebalanced. This is crucial in crypto, where spreads and slippage can be significant.
import pandas as pd
import numpy as np
def calculate_momentum_returns(prices_df, lookback_weeks, holding_weeks, rebalance_freq='W-MON', num_quintiles=5, transaction_cost_bp=10):
# prices_df: DataFrame with asset prices, index as dates
# lookback_weeks: int, number of weeks for lookback
# holding_weeks: int, number of weeks for holding
daily_returns = prices_df.pct_change().dropna()
rebalance_dates = pd.to_datetime(daily_returns.index).to_period(rebalance_freq).drop_duplicates().to_timestamp()
portfolio_returns = []
for i in range(len(rebalance_dates) - 1):
rebalance_date = rebalance_dates[i]
next_rebalance_date = rebalance_dates[i+1] # This defines the holding period start
# Calculate lookback period end date
lookback_end_date_idx = daily_returns.index.get_loc(rebalance_date)
lookback_start_date_idx = lookback_end_date_idx - (lookback_weeks * 5) # Approx 5 trading days per week
if lookback_start_date_idx < 0: continue # Not enough history
lookback_start_date = daily_returns.index[lookback_start_date_idx]
# Ensure lookback frame is valid
if lookback_start_date >= rebalance_date: continue
# Calculate lookback returns
lookback_prices = prices_df.loc[lookback_start_date:rebalance_date].iloc[:-1] # Exclude rebalance_date price for lookback
if lookback_prices.empty: continue
# Cumulative return over lookback period
past_returns = (lookback_prices.iloc[-1] / lookback_prices.iloc[0]) - 1
# Filter out NaN returns (assets without full history)
past_returns = past_returns.dropna()
if past_returns.empty: continue
# Sort assets by past returns and form quintiles
ranked_assets = past_returns.sort_values()
num_assets = len(ranked_assets)
if num_assets < num_quintiles: continue # Not enough assets to form quintiles
quintile_size = num_assets // num_quintiles
# Long winners (top quintile), Short losers (bottom quintile)
long_assets = ranked_assets.tail(quintile_size).index.tolist()
short_assets = ranked_assets.head(quintile_size).index.tolist()
# Calculate holding period returns
holding_period_start_date = rebalance_date
holding_period_end_date = next_rebalance_date if (i + holding_weeks) < len(rebalance_dates) else daily_returns.index[-1]
# Ensure we have data for the holding period
if holding_period_start_date >= holding_period_end_date: continue
holding_period_returns = daily_returns.loc[holding_period_start_date:holding_period_end_date]
if holding_period_returns.empty: continue
# Equal-weighted portfolio returns
long_leg_returns = holding_period_returns[long_assets].mean(axis=1)
short_leg_returns = holding_period_returns[short_assets].mean(axis=1)
# Apply transaction costs (simplified: at rebalance date)
# Assuming full portfolio turnover for both long and short legs
cost_per_leg = transaction_cost_bp / 10000
# Total portfolio return for the holding period
# (Long leg return - Short leg return) - transaction costs
# This is a simplification; in reality, costs apply to the value traded, not flat off returns.
# But for preliminary analysis, this captures the drag.
daily_portfolio_return = long_leg_returns - short_leg_returns
# Deduct transaction costs on the first day of the holding period
# A more precise model would consider the value of positions and turnover.
daily_portfolio_return.iloc[0] -= 2 * cost_per_leg # 2 legs (long & short)
portfolio_returns.append(daily_portfolio_return)
if not portfolio_returns:
return pd.Series([], dtype=float)
return pd.concat(portfolio_returns)
# Example usage (illustrative, requires actual price data)
# prices_data = pd.DataFrame(...) # Load your crypto price data here
# momentum_strategy_returns = calculate_momentum_returns(prices_data, lookback_weeks=4, holding_weeks=1)
# print(momentum_strategy_returns.mean() * 252) # Annualized return
Empirical Results: A Mixed Bag#
We ran simulations for various lookback and holding period combinations. Below, we present the key findings, focusing on the most promising and illustrative configurations.
Performance Summary (Jan 2018 - Dec 2023)#
| Strategy (Lookback/Hold) | Annualized Return (%) | Annualized Std Dev (%) | Sharpe Ratio | Max Drawdown (%) | Calmar Ratio |
|---|---|---|---|---|---|
| M1/H1 (Long-Short Q5-Q1) | 18.2 | 45.6 | 0.40 | -68.5 | 0.27 |
| M3/H1 (Long-Short Q5-Q1) | 21.5 | 48.1 | 0.45 | -72.1 | 0.30 |
| M1/H2 (Long-Short Q5-Q1) | 15.3 | 42.9 | 0.36 | -65.2 | 0.23 |
| M3/H2 (Long-Short Q5-Q1) | 19.8 | 46.5 | 0.43 | -70.8 | 0.28 |
| W2/H1 (Long-Short Q5-Q1) | 12.8 | 50.1 | 0.26 | -75.9 | 0.17 |
| Bitcoin (Benchmark) | 28.7 | 75.3 | 0.38 | -82.6 | 0.35 |
Note: All returns are net of 10bps one-way transaction costs. Sharpe Ratio is calculated using a risk-free rate of 2% p.a.
Key Observations:#
- Presence, but Subdued Alpha: Cross-sectional momentum does appear to exist in crypto, generating positive annualized returns across multiple configurations. The M3/H1 strategy, in particular, delivered a respectable 21.5% annualized return.
- High Volatility and Drawdowns: The strategies exhibit extremely high volatility and significant drawdowns, characteristic of the crypto market. Max drawdowns are comparable to, or slightly better than, Bitcoin, but still very substantial (e.g., -72.1% for M3/H1).
- Sharpe Ratios are Modest: While positive, the Sharpe ratios (0.3-0.45 range) indicate that the returns are often proportional to the risk taken. Compared to traditional equity momentum with Sharpe ratios often exceeding 0.7-1.0, crypto momentum is less "efficient" in risk-adjusted terms.
- Short-Term Momentum is Weaker: Shorter lookback periods (e.g., W2) tend to yield lower Sharpe ratios, suggesting that the crypto market might be too efficient or noisy for very short-term cross-sectional momentum to persist after costs. The sweet spot appears to be around 1-3 months lookback.
- Long-Short Nature is Critical: The long-short structure is crucial. A simple "long winners" strategy would have higher returns but also much higher volatility and drawdown, effectively tracking the market with a high beta. The short leg provides some hedging benefit, albeit limited.
Deeper Dive: Monthly Performance Attribution#
To understand the factor's behavior, we examine its performance across different market regimes.
Figure 1: Simplified Cross-Sectional Momentum Strategy Workflow
During the 2021 bull market, momentum strategies performed exceptionally well, with monthly returns often exceeding 10-15%. However, during the 2018 and 2022 bear markets, these strategies experienced significant negative returns, sometimes exceeding -20% in a single month. This indicates that cross-sectional momentum in crypto is highly sensitive to overall market direction. It tends to amplify bull market gains but also magnify bear market losses, suggesting a positive correlation with the broader crypto market, even in a long-short construction. This is a critical distinction from traditional equity momentum, which often exhibits more decorrelation or even negative correlation during crises (flight-to-quality).
Alpha Decay and Transaction Costs#
One of the most persistent issues in quantitative crypto trading is alpha decay due to transaction costs and market impact. Our 10bps one-way cost assumption is a conservative estimate for highly liquid assets. For the mid-cap coins that often populate the top/bottom quintiles, real-world costs (bid-ask spread, slippage) could easily be 20-50bps or more, significantly eroding profitability.
To illustrate, let's consider the impact of varying transaction costs on the M3/H1 strategy:
| One-Way Transaction Cost (bps) | Net Annualized Return (%) | Net Sharpe Ratio |
|---|---|---|
| 5 | 23.1 | 0.48 |
| 10 | 21.5 | 0.45 |
| 20 | 18.3 | 0.38 |
| 30 | 15.1 | 0.31 |
| 50 | 8.7 | 0.18 |
As seen, the strategy's edge diminishes rapidly with increasing transaction costs. At 50bps per trade, the Sharpe ratio drops to 0.18, making it barely viable. This underscores the need for highly efficient execution and careful universe selection to target assets with minimal market impact.
Why is Crypto Momentum Different?#
The divergence between traditional equity momentum and crypto momentum stems from fundamental differences in market microstructure, participant demographics, and asset pricing dynamics.
First, correlation asymmetry and beta clustering play a massive role. In equities, cross-sectional momentum often thrives on dispersion—different stocks react differently to macroeconomic shifts. In crypto, assets are overwhelmingly tied to Bitcoin as the dominant pricing node. During systemic shocks (e.g., the May 2021 liquidation cascade or the Terra/Luna collapse), correlations across the entire crypto universe spike to near 1.0. A long-short momentum portfolio in crypto essentially becomes a proxy for "long high-beta altcoins, short low-beta/stalwart assets." When the market crashes, the high-beta long leg collapses faster than the short leg can recover, destroying the hedging property that makes equity momentum famous.
Second, narrative-driven speculation replaces slow information diffusion. Traditional momentum is often explained by investors underreacting to fundamental news, such as earnings surprises. In crypto, price action is frequently driven by rapid narrative rotation (e.g., from DeFi, to NFTs, to AI, to memecoins). These narratives can ignite and extinguish within weeks. Consequently, assets that performed well over a 1-3 month lookback often did so simply because they were the current focal point of speculative fervor. Once the crowd's attention shifts, the momentum reverses violently, leading to the steep drawdowns observed in our backtests.
Finally, microstructure fragmentation and liquidity decay distort raw return signals. Unlike centralized equity exchanges, crypto trades across dozens of venues with varying liquidity depths. A token appearing to be a "winner" based on spot prices might simply be experiencing a temporary liquidity premium on a single exchange or a low-float manipulation. When the strategy rebalances and attempts to execute the short leg on these "loser" assets, the realized slippage often vastly exceeds theoretical estimates, turning a mathematically profitable signal into a practical loss.
Key Takeaways#
- Cross-sectional momentum exists in crypto, generating positive absolute returns across various lookback and holding periods, but the risk-adjusted rewards (Sharpe ratios of 0.3–0.45) are significantly lower than those observed in traditional equity markets.
- The factor is highly pro-cyclical and fails to provide crisis-alpha, contrasting sharply with traditional momentum; crypto momentum amplifies losses during bear markets due to extreme beta clustering and correlation spikes.
- Execution friction is the primary enemy of the strategy, with profitability eroding rapidly as one-way transaction costs exceed 20 basis points, demanding highly optimized execution algorithms and strict liquidity constraints.
- The optimal parameter sweet spot is medium-term, specifically 1-to-3-month lookback periods paired with 1-to-2-week holding periods, as shorter timeframes are overwhelmed by market noise and inefficient pricing.
- Structural differences dictate performance, meaning crypto momentum is driven more by narrative rotation and speculative herding than by the slow diffusion of fundamental information typical in stock markets.
Conclusion#
Cross-sectional momentum in digital assets is not a simple plug-and-play transplant from traditional quantitative finance. While our empirical analysis confirms that the "winner-takes-all" dynamic does manifest across crypto universes, the resulting alpha is fragile, highly regime-dependent, and easily choked by transaction costs. The structural realities of the crypto market—extreme correlation asymmetry, fragmented liquidity, and narrative-driven volatility—mutate the factor into a fundamentally different beast. For quantitative practitioners at Venym Labs and across the industry, this means that deploying raw cross-sectional momentum in isolation is an insufficient approach. Future alpha generation in this space will require conditioning the momentum signal on market regime indicators, integrating volatility scaling, and heavily weighting execution quality to survive the harsh microstructure of digital asset markets.