Altcoin Season Detection Bot With Python
Learn how to build an Altcoin Season Detection Bot with Python using Bitcoin Dominance, ETH/BTC strength, market breadth, and automated alerts for systematic crypto trading.
Every crypto bull market seems to produce the same story. At first, Bitcoin dominates headlines. Institutional investors accumulate Bitcoin. Media coverage focuses on Bitcoin ETFs, adoption, and price targets. Then, seemingly overnight, attention shifts. Ethereum starts outperforming. Large-cap altcoins begin rallying. Soon after, social media becomes flooded with screenshots of massive gains from smaller cryptocurrencies.
By then, most traders believe altcoin season has arrived. The problem? The biggest gains often occur before the majority recognizes the shift.
This is why quantitative traders prefer objective market regime detection instead of relying on social media sentiment, influencer opinions, or news headlines. Rather than asking "Do I feel like it's altcoin season?" they ask "What does the data say?"
In this article, you'll learn how to build an Altcoin Season Detection Bot in Python that continuously monitors market conditions and identifies when capital begins rotating from Bitcoin into altcoins. By the end, you'll understand how to define altcoin season quantitatively, build a scoring framework, collect market data, calculate key indicators, generate signals and alerts, and backtest your detection model.

What Is Altcoin Season? A Quantitative Definition
Many traders describe altcoin season emotionally: "Everything except Bitcoin is pumping." While intuitive, that definition cannot be automated. Instead, we need measurable criteria:
If this ratio exceeds 75% (i.e., 38 out of 50 top altcoins outperforming Bitcoin), market conditions may indicate altcoin season. This gives us something immediately measurable and testable.
The Core Signals
A robust detection system combines multiple sources of evidence. Think of it as building a case — the more signals that agree, the stronger the conclusion.
Signal 1: Bitcoin Dominance
Bitcoin Dominance measures BTC's share of total crypto market capitalization:
A declining dominance trend () indicates capital flowing toward altcoins.
1import requests
2
3url = "https://api.coingecko.com/api/v3/global"
4data = requests.get(url).json()
5btc_dominance = data["data"]["market_cap_percentage"]["btc"]
6print(f"Bitcoin Dominance: {btc_dominance:.2f}%")Signal 2: ETH/BTC Relative Strength
Ethereum often acts as a bridge between Bitcoin and the broader altcoin market. Historically, Bitcoin leads first, Ethereum follows, and altcoins follow Ethereum. The ratio:
A rising ratio indicates Ethereum is outperforming Bitcoin — often occurring before widespread altcoin strength appears.
1eth_btc_ratio = eth["close"] / btc["close"]
Signal 3: Altcoin Breadth
Breadth measures participation — how many altcoins are actually outperforming Bitcoin:
1returns = pd.read_csv("altcoin_returns.csv")
2btc_return = returns["BTC"]
3altcoins = returns.drop(columns=["BTC"])
4
5# Fraction of altcoins outperforming BTC
6breadth = (altcoins.gt(btc_return, axis=0)).mean(axis=1)Scenario A: Only ETH outperforms BTC. Scenario B: 40 out of 50 major alts outperform BTC. Scenario B clearly indicates genuine altcoin season — breadth reveals the difference.
Signal 4: TOTAL3 Relative Performance
TOTAL3 represents total crypto market cap excluding Bitcoin and Ethereum — a cleaner view of the altcoin market:
When TOTAL3 begins outperforming Bitcoin, broader altcoin participation may be emerging.
Designing an Altcoin Season Score
A single indicator rarely tells the whole story. Instead, create a scoring model:
| Signal | Points |
|---|---|
| Bitcoin Dominance Falling (MA50 < MA200) | +25 |
| ETH/BTC Rising (above trend) | +25 |
| Breadth Above 70% | +25 |
| TOTAL3 Outperforming Bitcoin | +25 |
Total Score = 0–100
- 0–25: Bitcoin Season
- 25–50: Neutral
- 50–75: Emerging Altcoin Season
- 75–100: Strong Altcoin Season

Building the Scoring Engine
1def altcoin_season_score(btcd_signal, ethbtc_signal, breadth_signal, total3_signal):
2 """Calculate composite altcoin season score from four signals."""
3 score = 0
4 score += 25 if btcd_signal else 0
5 score += 25 if ethbtc_signal else 0
6 score += 25 if breadth_signal else 0
7 score += 25 if total3_signal else 0
8 return scoreThis framework can be expanded with different weights, confidence scores, or machine learning models. The key idea is combining evidence rather than relying on a single metric.
Creating Automated Alerts
A detector becomes significantly more useful when it generates alerts. Trigger when score crosses 75:
1import requests
2
3def send_telegram_alert(score):
4 message = f"🚨 Altcoin Season Score: {score}/100 — Strong Signal Detected"
5 requests.post(
6 f"https://api.telegram.org/botTOKEN/sendMessage",
7 data={"chat_id": "CHAT_ID", "text": message}
8 )Delivery channels: Email, Telegram, Discord, Slack, SMS. Your bot executes this automatically whenever the score crosses a threshold.

Backtesting the Detection Bot
Before trusting a signal, validate with historical data. Key questions:
- How often did the detector identify major altcoin runs?
- How many false positives occurred?
- How early did signals appear before the broad market recognized the shift?
Evaluation metrics:
Common Mistakes
| Mistake | Reality |
|---|---|
| Using too few coins | Monitoring only 5 altcoins may not reflect the broader market |
| Ignoring survivorship bias | Many coins disappear — testing only survivors creates unrealistic results |
| Overfitting thresholds | A threshold perfectly fitting past data may fail in future cycles |
| Ignoring liquidity | A signal is only useful if assets can actually be traded efficiently |
| Treating every cycle as identical | Crypto markets evolve — no indicator works forever without adaptation |
Advanced Enhancements
Once the basic bot works, enhancements include dynamic weighting where weights adjust based on market conditions, machine learning classification (Random Forest, XGBoost, Logistic Regression) using the four signals as features, and Hidden Markov Models to classify regimes without manually defined thresholds.
Production Architecture
Data Collection → Signal Calculation → Feature Engineering → Scoring Engine
→ Alert Generation → Database Storage → Dashboard Visualization → Performance Monitoring
This architecture runs continuously with scheduled updates — working whether you're watching the market or sleeping.

Key Takeaways
- Altcoin season should be defined quantitatively, not emotionally — measure it, don't feel it
- Bitcoin Dominance remains one of the most valuable indicators of capital rotation
- ETH/BTC often acts as an early leadership signal — Ethereum leads before alts follow
- Breadth reveals whether participation is broad or narrow — participation width matters
- Combining multiple indicators produces more reliable signals — a scoring framework beats any single metric
- Automated alerts improve reaction speed — in a 24/7 market, automation is essential
- Backtesting is essential before deployment — validate detection quality historically
Conclusion: Turning Market Structure Into Automated Intelligence
Most crypto traders spend their time searching for the next big coin. Quantitative traders spend their time building systems that identify favorable market conditions. The difference is subtle but powerful.
Rather than predicting which asset will explode next, an Altcoin Season Detection Bot focuses on understanding where capital is flowing throughout the crypto ecosystem. By monitoring Bitcoin Dominance, ETH/BTC strength, market breadth, and altcoin performance, you can transform vague market narratives into objective signals.
More importantly, you can automate the process. The result is a system that works whether you're watching the market or sleeping. And in a market that never closes, that may be one of the most valuable edges an algorithmic trader can build.