From tradermonty-claude-trading-skills
Detects market top probability (0-100 score) using O'Neil Distribution Days, Minervini leading stock deterioration, and Monty defensive sector rotation for 2-8 week tactical timing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tradermonty-claude-trading-skills:market-top-detectorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Detect the probability of a market top formation using a quantitative 6-component scoring system (0-100). Integrates three proven market top detection methodologies:
references/distribution_day_guide.mdreferences/historical_tops.mdreferences/market_top_methodology.mdscripts/breadth_csv_client.pyscripts/calculators/__init__.pyscripts/calculators/breadth_calculator.pyscripts/calculators/defensive_rotation_calculator.pyscripts/calculators/distribution_day_calculator.pyscripts/calculators/index_technical_calculator.pyscripts/calculators/leading_stock_calculator.pyscripts/calculators/math_utils.pyscripts/calculators/sentiment_calculator.pyscripts/fmp_client.pyscripts/historical_comparator.pyscripts/market_top_detector.pyscripts/report_generator.pyscripts/scenario_engine.pyscripts/scorer.pyscripts/tests/conftest.pyscripts/tests/helpers.pyDetect the probability of a market top formation using a quantitative 6-component scoring system (0-100). Integrates three proven market top detection methodologies:
Unlike the Bubble Detector (macro/multi-month evaluation), this skill focuses on tactical 2-8 week timing signals that precede 10-20% market corrections.
English:
Japanese:
Required:
$FMP_API_KEY environment variable or pass --api-key. Free tier sufficient (~33 API calls per execution).Optional:
--vix-term.Data Freshness: All manually collected data should be from the most recent 3 business days for accurate analysis.
| Aspect | Market Top Detector | Bubble Detector |
|---|---|---|
| Timeframe | 2-8 weeks | Months to years |
| Target | 10-20% correction | Bubble collapse (30%+) |
| Methodology | O'Neil/Minervini/Monty | Minsky/Kindleberger |
| Data | Price/Volume + Breadth | Valuation + Sentiment + Social |
| Score Range | 0-100 composite | 0-15 points |
Before running the Python script, collect the following data using WebSearch. Data Freshness Requirement: All data must be from the most recent 3 business days. Stale data degrades analysis quality.
1. S&P 500 Breadth (200DMA above %)
AUTO-FETCHED from TraderMonty CSV (no WebSearch needed)
The script fetches this automatically from GitHub Pages CSV data.
Override: --breadth-200dma [VALUE] to use a manual value instead.
Disable: --no-auto-breadth to skip auto-fetch entirely.
2. [REQUIRED] S&P 500 Breadth (50DMA above %)
Valid range: 20-100
Primary search: "S&P 500 percent stocks above 50 day moving average"
Fallback: "market breadth 50dma site:barchart.com"
Direct fallback when search snippets are poor: fetch `https://www.barchart.com/stocks/quotes/$S5FI/overview` and extract the embedded `lastPrice` / `tradeTime` for “S&P 500 Stocks Above 50-Day Average”.
Record the data date
3. [REQUIRED] CBOE Equity Put/Call Ratio
Valid range: 0.30-1.50
Primary search: "CBOE equity put call ratio today"
Fallback: "CBOE total put call ratio current"
Fallback: "put call ratio site:cboe.com"
Direct fallback when Cboe CSV endpoints are stale: fetch `https://ycharts.com/indicators/cboe_equity_put_call_ratio` and parse the “Last Value” / “Latest Period” table fields. Treat this as a secondary source and cite it in freshness notes.
Record the data date
4. [OPTIONAL] VIX Term Structure
Values: steep_contango / contango / flat / backwardation
Primary search: "VIX VIX3M ratio term structure today"
Fallback: "VIX futures term structure contango backwardation"
Note: Auto-detected from FMP API if VIX3M quote available.
CLI --vix-term overrides auto-detection.
5. [OPTIONAL] Margin Debt YoY %
Primary search: "FINRA margin debt latest year over year percent"
Fallback: "NYSE margin debt monthly"
Note: Typically 1-2 months lagged. Record the reporting month.
Run the script with collected data as CLI arguments:
python3 skills/market-top-detector/scripts/market_top_detector.py \
--api-key $FMP_API_KEY \
--breadth-50dma [VALUE] --breadth-50dma-date [YYYY-MM-DD] \
--put-call [VALUE] --put-call-date [YYYY-MM-DD] \
--vix-term [steep_contango|contango|flat|backwardation] \
--margin-debt-yoy [VALUE] --margin-debt-date [YYYY-MM-DD] \
--output-dir reports/ \
--context "Consumer Confidence=[VALUE]" "Gold Price=[VALUE]"
# 200DMA breadth is auto-fetched from TraderMonty CSV.
# Override with --breadth-200dma [VALUE] if needed.
# Disable with --no-auto-breadth to skip auto-fetch.
The script will:
Present the generated Markdown report to the user, highlighting:
| # | Component | Weight | Data Source | Key Signal |
|---|---|---|---|---|
| 1 | Distribution Day Count | 25% | FMP API | Institutional selling in last 25 trading days |
| 2 | Leading Stock Health | 20% | FMP API | Growth ETF basket deterioration |
| 3 | Defensive Sector Rotation | 15% | FMP API | Defensive vs Growth relative performance |
| 4 | Market Breadth Divergence | 15% | Auto (CSV) + WebSearch | 200DMA (auto) / 50DMA (WebSearch) breadth vs index level |
| 5 | Index Technical Condition | 15% | FMP API | MA structure, failed rallies, lower highs |
| 6 | Sentiment & Speculation | 10% | FMP + WebSearch | VIX, Put/Call, term structure |
| Score | Zone | Risk Budget | Action |
|---|---|---|---|
| 0-20 | Green (Normal) | 100% | Normal operations |
| 21-40 | Yellow (Early Warning) | 80-90% | Tighten stops, reduce new entries |
| 41-60 | Orange (Elevated Risk) | 60-75% | Profit-taking on weak positions |
| 61-80 | Red (High Probability Top) | 40-55% | Aggressive profit-taking |
| 81-100 | Critical (Top Formation) | 20-35% | Maximum defense, hedging |
Required: FMP API key (free tier sufficient: ~33 calls per execution) Optional: WebSearch data for breadth and sentiment (improves accuracy)
market_top_YYYY-MM-DD_HHMMSS.jsonmarket_top_YYYY-MM-DD_HHMMSS.mdreferences/market_top_methodology.mdreferences/distribution_day_guide.mdreferences/historical_tops.mdmarket_top_methodology.md for full framework understandingdistribution_day_guide.mdhistorical_tops.mdnpx claudepluginhub tradermonty/claude-trading-skillsEvaluates US market bubble risk using quantitative metrics (Put/Call, VIX, margin debt, breadth, IPO data) and a revised Minsky/Kindleberger framework. Applies two-phase scoring with bias prevention. Useful for bubble risk, valuation concerns, or profit-timing decisions.
Performs technical analysis of US stocks using chart patterns (head & shoulders, triangles), candlesticks, indicators (RSI, MACD, Bollinger Bands, moving averages), volume, trends, and support/resistance. Generates price and volume chart data tables with --chart flag.
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.