Heurist Logo
Back to Skill Marketplace
tradermonty

uptrend-analyzer

VerifiedStocksaccess level:low

Analyzes market breadth using Monty's Uptrend Ratio Dashboard data to diagnose the current market environment. Generates a 0-100 composite score from 5 components (breadth, sector participation, rotation, momentum, historical context). Use when asking about market breadth, uptrend ratios, or whether the market environment supports equity exposure. No API key required.

Install

npx @heurist-network/skills add uptrend-analyzer

Installs

10

Stars

283

Timeline

Updated Mar 8, 2026

Created Mar 7, 2026

Verification

Reviewed and verified

SHA256: 88a8b7772179bd66...

Approved Mar 7, 2026 by admin

Access Level

low

Files (24)

SKILL.md

references/uptrend_methodology.md

scripts/calculators/__init__.py

scripts/calculators/historical_context_calculator.py

scripts/calculators/market_breadth_calculator.py

scripts/calculators/momentum_calculator.py

scripts/calculators/sector_participation_calculator.py

scripts/calculators/sector_rotation_calculator.py

scripts/data_fetcher.py

scripts/report_generator.py

scripts/scorer.py

scripts/tests/conftest.py

scripts/tests/helpers.py

scripts/tests/test_data_fetcher.py

scripts/tests/test_historical_context_calculator.py

scripts/tests/test_market_breadth_calculator.py

scripts/tests/test_momentum_calculator.py

scripts/tests/test_new_features.py

scripts/tests/test_report_generator.py

scripts/tests/test_scorer.py

scripts/tests/test_sector_participation_calculator.py

scripts/tests/test_sector_rotation_calculator.py

scripts/tests/test_uptrend_analyzer.py

scripts/uptrend_analyzer.py

Summary

SKILL.md

Uptrend Analyzer Skill

Purpose

Diagnose market breadth health using Monty's Uptrend Ratio Dashboard, which tracks ~2,800 US stocks across 11 sectors. Generates a 0-100 composite score (higher = healthier) with exposure guidance.

Unlike the Market Top Detector (API-based risk scorer), this skill uses free CSV data to assess "participation breadth" - whether the market's advance is broad or narrow.

When to Use This Skill

English:

  • User asks "Is the market breadth healthy?" or "How broad is the rally?"
  • User wants to assess uptrend ratios across sectors
  • User asks about market participation or breadth conditions
  • User needs exposure guidance based on breadth analysis
  • User references Monty's Uptrend Dashboard or uptrend ratios

Japanese:

  • 「市場のブレドスは健全?」「上昇の裾野は広い?」
  • セクター別のアップトレンド比率を確認したい
  • 相場参加率・ブレドス状況を診断したい
  • ブレドス分析に基づくエクスポージャーガイダンスが欲しい
  • Montyのアップトレンドダッシュボードについて質問

Difference from Market Top Detector

AspectUptrend AnalyzerMarket Top Detector
Score DirectionHigher = healthierHigher = riskier
Data SourceFree GitHub CSVFMP API (paid)
FocusBreadth participationTop formation risk
API KeyNot requiredRequired (FMP)
MethodologyMonty Uptrend RatiosO'Neil/Minervini/Monty

Execution Workflow

Phase 1: Execute Python Script

Run the analysis script (no API key needed):

python3 skills/uptrend-analyzer/scripts/uptrend_analyzer.py

The script will:

  1. Download CSV data from Monty's GitHub repository
  2. Calculate 5 component scores
  3. Generate composite score and reports

Phase 2: Present Results

Present the generated Markdown report to the user, highlighting:

  • Composite score and zone classification
  • Exposure guidance (Full/Normal/Reduced/Defensive/Preservation)
  • Sector heatmap showing strongest and weakest sectors
  • Key momentum and rotation signals

5-Component Scoring System

#ComponentWeightKey Signal
1Market Breadth (Overall)30%Ratio level + trend direction
2Sector Participation25%Uptrend sector count + ratio spread
3Sector Rotation15%Cyclical vs Defensive balance
4Momentum20%Slope direction + acceleration
5Historical Context10%Percentile rank in history

Scoring Zones

ScoreZoneExposure Guidance
80-100Strong BullFull Exposure (100%)
60-79BullNormal Exposure (80-100%)
40-59NeutralReduced Exposure (60-80%)
20-39CautiousDefensive (30-60%)
0-19BearCapital Preservation (0-30%)

7-Level Zone Detail

Each scoring zone is further divided into sub-zones for finer-grained assessment:

ScoreZone DetailColor
80-100Strong BullGreen
70-79Bull-UpperLight Green
60-69Bull-LowerLight Green
40-59NeutralYellow
30-39Cautious-UpperOrange
20-29Cautious-LowerOrange
0-19BearRed

Warning System

Active warnings trigger exposure penalties that tighten guidance even when the composite score is high:

WarningConditionPenalty
Late CycleCommodity avg > both Cyclical and Defensive-5
High SpreadMax-min sector ratio spread > 40pp-3
DivergenceIntra-group std > 8pp, spread > 20pp, or trend dissenters-3

Penalties stack (max -10) + multi-warning discount (+1 when ≥2 active). Applied after composite scoring.

Momentum Smoothing

Slope values are smoothed using EMA(3) (Exponential Moving Average, span=3) before scoring. Acceleration is calculated by comparing the recent 10-point average vs prior 10-point average of smoothed slopes (10v10 window), with fallback to 5v5 when fewer than 20 data points are available.

Historical Confidence Indicator

The Historical Context component includes a confidence assessment based on:

  • Sample size: Number of historical data points available
  • Regime coverage: Proportion of distinct market regimes (bull/bear/neutral) observed
  • Recency: How recent the latest data point is

Confidence levels: High, Medium, Low.


API Requirements

Required: None (uses free GitHub CSV data)

Output Files

  • JSON: uptrend_analysis_YYYY-MM-DD_HHMMSS.json
  • Markdown: uptrend_analysis_YYYY-MM-DD_HHMMSS.md

Reference Documents

references/uptrend_methodology.md

  • Uptrend Ratio definition and thresholds
  • 5-component scoring methodology
  • Sector classification (Cyclical/Defensive/Commodity)
  • Historical calibration notes

When to Load References

  • First use: Load uptrend_methodology.md for full framework understanding
  • Regular execution: References not needed - script handles scoring