Back to Blog
Strategy Insights

BTC Dominance, Fear and Greed, Altcoin Season: Macro Signals That Actually Trade

QFQuantForge Team·April 3, 2026·9 min read

Crypto Twitter loves macro indicators. BTC dominance charts, Fear and Greed index screenshots, altcoin season declarations. They make compelling narrative content. But can they actually trade? We built four strategies around the most popular cross-asset macro signals in crypto and subjected them to our full validation pipeline. One survived. Three did not. The results reveal a stark gap between indicators that explain the market in hindsight and indicators that predict it in real time.

Four Strategies Tested

correlation_regime monitors the rolling correlation between BTC and traditional equity indices. The hypothesis is that when BTC-equity correlation is high, crypto trades as a risk asset and macro flows dominate. When correlation breaks down, crypto-specific dynamics take over and altcoins decouple. The strategy uses correlation regime shifts as entry and exit signals.

macro_trend_composite combines four macro indicators into a voting system: BTC dominance trend, Fear and Greed index, altcoin season score, and stablecoin market cap momentum. It requires a threshold number of bullish signals before entering long positions.

btc_dominance_momentum trades based on the rate of change of BTC dominance. Rising dominance suggests capital is rotating from alts to BTC (risk-off), while falling dominance suggests capital flowing into altcoins (risk-on). The strategy goes long altcoins when dominance is falling.

eth_btc_regime uses the ETH/BTC ratio as a proxy for altcoin market health. EMA crossovers on the ratio signal alt-season (long altcoins) or BTC-season (reduce alt exposure).

The Winner: correlation_regime

correlation_regime produced 6 ROBUST symbols: NEAR, DOGE, AVAX, MATIC, ADA, and DOT, all positive in 4 of 5 regime periods. This was by far the best result among the four macro strategies. The optimized parameters are corr_threshold=0.5, price_sma_fast=5, price_sma_slow=20, and btc_price_sma=14.

The critical detail is that this strategy was completely dead at default parameters. The tournament screening showed near-zero signal with out-of-box settings. It was only after parameter sweep optimization that the edge appeared, with sweep best Sharpe reaching 2.78 on BNB. This pattern is the opposite of our successful price-based strategies, which showed signal at defaults and improved with tuning. Macro strategies need precise threshold calibration to extract signal from what is inherently a noisy, lower-frequency data source.

Why Default Parameters Fail on Macro Strategies

Macro indicators operate on a different timescale than price-based signals. BTC-equity correlation shifts over weeks, not hours. BTC dominance trends persist for months. Fear and Greed oscillates but with long cycles. The default thresholds in most implementations are set for daily chart analysis, not for generating automated trading signals on 4-hour candles.

The corr_threshold parameter illustrates this perfectly. At the default 0.7, the strategy rarely triggers because BTC-equity correlation only reaches that extreme during crisis periods. At 0.5, the strategy captures meaningful regime shifts that occur regularly enough to generate tradeable signals. The difference between 0.7 and 0.5 is not a minor tweak. It is the difference between zero trades per year and 15 to 25 trades per year.

The Failures

macro_trend_composite produced only 2 ROBUST symbols (AVAX and ETH) despite using four independent signals. The problem is that the signals are not truly independent. Fear and Greed, altcoin season, and BTC dominance all measure aspects of the same underlying risk appetite cycle. When the market is bullish, all four tend to be bullish simultaneously. When bearish, all four go negative. The voting system rarely disagrees, which means it adds complexity without adding information.

btc_dominance_momentum produced 0 ROBUST symbols despite sweep Sharpe of 1.77. This is another case where sweep optimization found parameters that fit a specific period but failed to generalize. BTC dominance trends are real, but they are too slow and too noisy to generate reliable short-term trading signals. By the time dominance has clearly shifted, the corresponding altcoin moves are already priced in.

eth_btc_regime was the worst performer with 0 positive results even after sweep optimization. The ETH/BTC ratio has been in a structural decline since mid-2022, and EMA crossovers on a declining ratio produce consistently wrong signals about altcoin season timing. The indicator that worked in 2017-2018 no longer captures the market dynamic it was designed for.

The Calibration Lesson

The overarching lesson from macro strategy testing is that calibration is everything. Price-based strategies like mean_reversion_bb work at many parameter settings because the underlying signal (price oscillation around Bollinger Bands) is robust. Macro strategies have a narrow parameter window where the signal exists and a wide window where it does not. Missing that window by a small margin produces zero signal rather than degraded signal.

This has practical implications for deployment. Macro strategies require periodic recalibration as market structure evolves. The correlation dynamics between BTC and equities have changed multiple times since 2020 (pre-COVID, post-COVID stimulus, 2022 tightening, ETF era). A static set of parameters will eventually drift out of the signal window. We plan to re-run the sweep every six months to verify that the current thresholds remain in the productive range.

Deployment

We deployed correlation_regime on six symbols in April 2026: NEAR, DOGE, AVAX, MATIC, ADA, and DOT. All run on 4-hour candles with corr_threshold=0.5, price_sma_fast=5, price_sma_slow=20, and btc_price_sma=14. Each bot receives $1,000 allocation. The strategy adds genuine macro-level diversification to our portfolio because it trades on equity-crypto correlation dynamics rather than any crypto-internal signal. When all our price-based strategies are seeing the same crypto market data, correlation_regime is looking at a different dimension entirely.