
Uptrend Analyzer
Interpret Monty’s uptrend-ratio CSVs and Finviz-style rules to gauge US equity breadth by sector before sizing risk or themes.
Overview
uptrend-analyzer is an agent skill most often used in Idea (also Grow, Operate) that explains Monty’s uptrend-ratio rules and CSV sources for US sector breadth analysis.
Install
npx skills add https://github.com/tradermonty/claude-trading-skills --skill uptrend-analyzerWhat is this skill?
- Uptrend definition: eight concurrent filters (price, liquidity, SMAs, golden cross, 52W range, 4-week performance)
- Daily GitHub CSVs: uptrend_ratio_timeseries.csv and sector_summary.csv from tradermonty/uptrend-dashboard
- Tracks ~2,800 US stocks across 11 GICS sectors plus aggregate market ratio
- Uptrend ratio = qualifying uptrends divided by base-filter universe
- Live Streamlit dashboard reference at uptrend-dashboard.streamlit.app
- Approximately 2,800 US stocks tracked
- 8 simultaneous uptrend classification conditions
Adoption & trust: 528 installs on skills.sh; 1.8k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You see uptrend-ratio headlines but lack a consistent definition, data files, and sector breakdown to interpret market breadth.
Who is it for?
Solo equity traders or indie builders automating research notebooks and agents around Monty’s public uptrend dashboard data.
Skip if: Builders who need live broker execution, options greeks, or crypto-native signals without adapting the US stock CSV workflow.
When should I use this skill?
Analyzing US equity uptrend breadth, sector ratios, or Monty uptrend dashboard CSV methodology.
What do I get? / Deliverables
You apply the documented eight-condition uptrend screen, pull the right daily CSV columns, and compute interpretable sector and market-wide uptrend ratios.
- Sector and market uptrend ratio interpretation aligned to documented filters
- Guidance on which CSV file and columns to use for a given date range
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Market-breadth research belongs earliest in the journey when deciding what to trade or build around macro/sector tone. The skill is methodology over ~2,800 stocks and 11 GICS sectors—canonical shelf is opportunity and market research, not ship or launch.
Where it fits
Compare 11 sector uptrend ratios from sector_summary.csv before picking a thematic wedge for a newsletter or scanner product.
Embed daily breadth commentary in a subscriber report using uptrend_ratio_timeseries.csv trend breaks.
Revalidate discretionary rules when aggregate 'all' ratio diverges from your largest held sector.
How it compares
Research methodology over public CSV breadth stats—not a replacement for your brokerage API or generic stock MCP quotes.
Common Questions / FAQ
Who is uptrend-analyzer for?
Individual traders and small teams analyzing US stock market breadth with Monty’s uptrend ratio dashboard and GitHub-published CSV time series.
When should I use uptrend-analyzer?
In Idea research when framing sector themes; in Grow when reviewing whether breadth supports your content or alerts; in Operate when re-checking risk posture against latest sector_summary snapshots.
Is uptrend-analyzer safe to install?
It is primarily analytical documentation; confirm data sources (GitHub repo, Streamlit app) and review Security Audits on this Prism page before piping credentials into any fetch automation.
SKILL.md
READMESKILL.md - Uptrend Analyzer
# Uptrend Analyzer Methodology ## Data Source: Monty's Uptrend Ratio Dashboard Monty's Uptrend Ratio Dashboard tracks approximately 2,800 US stocks across 11 GICS sectors. For each stock, it determines whether the stock is in an "uptrend" based on the criteria below. The dashboard publishes daily CSV data on GitHub. **GitHub Repository:** `tradermonty/uptrend-dashboard` **Live Dashboard:** https://uptrend-dashboard.streamlit.app/ ### Uptrend Definition (Finviz Elite Screener) A stock is classified as "uptrend" when it meets **all** of the following conditions: | Condition | Description | |-----------|-------------| | Price > $10 | Penny stocks excluded | | Avg Volume > 100K | Sufficient liquidity | | Market Cap > $50M | Micro-cap and above | | Price > SMA20 | Short-term uptrend | | Price > SMA200 | Long-term uptrend | | SMA50 > SMA200 | Golden cross (bullish structure) | | 52W High/Low > 30% above Low | Recovering from bottom | | 4-Week Performance: Up | Recent momentum positive | The **uptrend ratio** = (stocks meeting all conditions) / (stocks meeting base filters: price, volume, market cap). ### CSV Files | File | Description | Update Frequency | |------|-------------|------------------| | `uptrend_ratio_timeseries.csv` | Daily ratios for "all" + 11 sectors | Daily | | `sector_summary.csv` | Latest snapshot of all sectors | Daily | **Data availability:** - "all" (full market): Since 2023-08-11 - Sector-level data: Since 2024-07-21 ### Timeseries Columns | Column | Type | Description | |--------|------|-------------| | worksheet | string | "all" or sector slug (e.g., "sec_technology") | | date | string | YYYY-MM-DD format | | count | int | Number of stocks in uptrend | | total | int | Total stocks tracked | | ratio | float | count/total (0-1 scale, raw decimal) | | ma_10 | float | 10-day simple moving average of ratio | | slope | float | 1-day difference of ma_10 (`ma_10.diff()`) | | trend | string | "up" (slope > 0) or "down" (slope <= 0) | ### Sector Summary Columns | Column | Type | Description | |--------|------|-------------| | Sector | string | Display name (e.g., "Technology") | | Ratio | float | Current uptrend ratio (0-1) | | 10MA | float | 10-day MA of ratio | | Trend | string | "Up" or "Down" | | Slope | float | 1-day difference of MA | | Status | string | "Overbought", "Oversold", or "Normal" | ### Indicator Calculations (from source code) All indicators are computed on-the-fly from raw count/total data: ``` ratio = count / total ma_10 = ratio.rolling(10).mean() # 10-day simple MA slope = ma_10.diff() # 1-day change of MA trend = "up" if slope > 0 else "down" ``` **Peak/Trough Detection:** The dashboard uses `scipy.signal.find_peaks` with parameters `distance=20, prominence=0.015` to identify local tops and bottoms in the 10MA series. --- ## Official Dashboard Thresholds These thresholds are defined in `src/constants.py` of the source repository: | Threshold | Value | Meaning | |-----------|-------|---------| | **Upper (Overbought)** | **37%** | Ratio above this = overbought conditions | | **Lower (Oversold)** | **9.7%** | Ratio below this = oversold / crisis | | MA Period | 10 | Simple moving average window | ### Status Determination ``` ratio > 0.37 -> "Overbought" ratio < 0.097 -> "Oversold" otherwise -> "Normal" ``` ### Practical Interpretation | Ratio | Interpretation | Market Environment | |-------|---------------|-------------------| | 50%+ | Strong breadth | Broad bull market, most stocks participating | | 37-50% | Overbought / Healthy | Above upper threshold, strong but extended | | 25-37% | Normal / Recovering | Between thresholds, typical trading range | | 9.7-25% | Weak | Below normal, breadth deteriorating | | < 9.7% | Oversold / Crisis | Below lower threshold, extreme selling | --- ## 5-Component Scoring System ### Component 1: Market Breadth (Overall) - Weight: 30% **Rationale:** The overall uptrend ratio is the single most impo