From tradermonty-claude-trading-skills
Quantifies market breadth health using TraderMonty's public CSV data, generating a 0-100 composite score across 6 components. No API key required.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tradermonty-claude-trading-skills:market-breadth-analyzerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Quantify market breadth health using a data-driven 6-component scoring system (0-100). Uses TraderMonty's publicly available CSV data to measure how broadly the market is participating in a rally or decline.
references/breadth_analysis_methodology.mdscripts/calculators/__init__.pyscripts/calculators/bearish_signal_calculator.pyscripts/calculators/cycle_calculator.pyscripts/calculators/divergence_calculator.pyscripts/calculators/historical_context_calculator.pyscripts/calculators/ma_crossover_calculator.pyscripts/calculators/trend_level_calculator.pyscripts/csv_client.pyscripts/history_tracker.pyscripts/market_breadth_analyzer.pyscripts/report_generator.pyscripts/scorer.pyscripts/tests/conftest.pyscripts/tests/test_bearish_signal_calculator.pyscripts/tests/test_cycle_calculator.pyscripts/tests/test_divergence_calculator.pyscripts/tests/test_historical_context_calculator.pyscripts/tests/test_history_tracker.pyscripts/tests/test_ma_crossover_calculator.pyQuantify market breadth health using a data-driven 6-component scoring system (0-100). Uses TraderMonty's publicly available CSV data to measure how broadly the market is participating in a rally or decline.
Score direction: 100 = Maximum health (broad participation), 0 = Critical weakness.
No API key required - uses freely available CSV data from GitHub Pages.
English:
Japanese:
requests library (for fetching CSV data)| Aspect | Market Breadth Analyzer | Breadth Chart Analyst |
|---|---|---|
| Data Source | CSV (automated) | Chart images (manual) |
| API Required | None | None |
| Output | Quantitative 0-100 score | Qualitative chart analysis |
| Components | 6 scored dimensions | Visual pattern recognition |
| Repeatability | Fully reproducible | Analyst-dependent |
Run the analysis script. If using a nested or date-stamped --output-dir in cron runs, create it first; the history writer expects the directory to already exist.
mkdir -p reports/<routine-or-date>
python3 skills/market-breadth-analyzer/scripts/market_breadth_analyzer.py \
--detail-url "https://tradermonty.github.io/market-breadth-analysis/market_breadth_data.csv" \
--summary-url "https://tradermonty.github.io/market-breadth-analysis/market_breadth_summary.csv" \
--output-dir reports/<routine-or-date>
For a simple ad-hoc run, omit --output-dir or use an existing directory. In scheduled cron runs from the repository root, prefer a repo-relative output directory such as reports/after-close-YYYY-MM-DD rather than an absolute path. If an absolute nested --output-dir unexpectedly fails at the history-writing step despite the directory existing, rerun once with the equivalent repo-relative path before treating the breadth analysis as unavailable.
The script will:
Present the generated Markdown report to the user, highlighting:
| # | Component | Weight | Key Signal |
|---|---|---|---|
| 1 | Breadth Level & Trend | 25% | Current 8MA level + 200MA trend direction + 8MA direction modifier |
| 2 | 8MA vs 200MA Crossover | 20% | Momentum via MA gap and direction |
| 3 | Peak/Trough Cycle | 20% | Position in breadth cycle |
| 4 | Bearish Signal | 15% | Backtested bearish signal flag |
| 5 | Historical Percentile | 10% | Current vs full history distribution |
| 6 | S&P 500 Divergence | 10% | Multi-window (20d + 60d) price vs breadth divergence |
Weight Redistribution: If any component lacks sufficient data (e.g., no peak/trough markers detected), it is excluded and its weight is proportionally redistributed among the remaining components. The report shows both original and effective weights.
Score History: Composite scores are persisted across runs (keyed by data date). The report includes a trend summary (improving/deteriorating/stable) when multiple observations are available.
| Score | Zone | Equity Exposure | Action |
|---|---|---|---|
| 80-100 | Strong | 90-100% | Full position, growth/momentum favored |
| 60-79 | Healthy | 75-90% | Normal operations |
| 40-59 | Neutral | 60-75% | Selective positioning, tighten stops |
| 20-39 | Weakening | 40-60% | Profit-taking, raise cash |
| 0-19 | Critical | 25-40% | Capital preservation, watch for trough |
Detail CSV: market_breadth_data.csv
Summary CSV: market_breadth_summary.csv
Both are publicly hosted on GitHub Pages - no authentication required.
market_breadth_YYYY-MM-DD_HHMMSS.jsonmarket_breadth_YYYY-MM-DD_HHMMSS.mdmarket_breadth_history.json (persists across runs, max 20 entries)references/breadth_analysis_methodology.mdnpx claudepluginhub joshuarweaver/cascade-business-ops --plugin tradermonty-claude-trading-skillsAnalyzes market breadth via Monty's Uptrend Ratio Dashboard to diagnose market health and generate a 0-100 composite score with exposure guidance. No API key required.
Detects market regime (Bull/Bear/Sideways) for any asset via Markov models. Returns signal, transition matrix, and walk-forward backtest. Drops into existing trading agents without rewriting them.
Orchestrates InvestSkill analysis modules on a stock at configurable depth (quick/standard/comprehensive) and compiles a professional HTML report with Chart.js visualizations.