Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
tradermonty avatar

Ibd Distribution Day Monitor

  • 508 installs
  • 2.6k repo stars
  • Updated August 4, 2026
  • tradermonty/claude-trading-skills

ibd-distribution-day-monitor is a Python trading analysis skill that detects IBD-style distribution days on QQQ and SPY, tracks 25-session expiration and 5% invalidation, and emits NORMAL to SEVERE risk levels with TQQQ

About

ibd-distribution-day-monitor is a production-status skill from tradermonty/claude-trading-skills that automates William O'Neil CAN SLIM distribution day detection for QQQ and SPY indices. A distribution day triggers when an index closes down at least 0.2% on higher volume than the prior session. The skill tracks 25-session expiration and 5% price-recovery invalidation separately, counting d5, d15, and d25 active clusters to classify market risk as NORMAL, CAUTION, HIGH, or SEVERE. It emits TQQQ-weighted exposure recommendations (100/75/50/25%) with trailing-stop adjustments via the ibd_monitor.py script (rule version ibd_dd_v1.0). Daily QQQ and SPY OHLCV data comes from the Financial Modeling Prep API. The skill produces auditable JSON and Markdown reports but does not execute trades.

  • ibd-distribution-day-monitor

Ibd Distribution Day Monitor by the numbers

  • 508 all-time installs (skills.sh)
  • +33 installs in the week ending Jul 27, 2026 (Skillselion tracking)
  • Ranked #806 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/tradermonty/claude-trading-skills --skill ibd-distribution-day-monitor

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs508
repo stars2.6k
Last updatedAugust 4, 2026
Repositorytradermonty/claude-trading-skills

How do you monitor IBD distribution days daily?

Use ibd-distribution-day-monitor for development tasks

Who is it for?

Quantitative traders running daily post-market IBD distribution day reviews on QQQ/SPY with Financial Modeling Prep data and TQQQ exposure policies.

Skip if: Developers without an FMP API key or teams needing intraday trade execution rather than post-close risk classification reports.

When should I use this skill?

User asks to monitor distribution days, check QQQ/SPY market risk, adjust TQQQ exposure, or run daily CAN SLIM regime analysis after market close.

What you get

JSON and Markdown risk reports with active distribution day counts, d5/d15/d25 clusters, and TQQQ/QQQ exposure recommendations.

  • JSON risk reports
  • Markdown distribution day summaries
  • Exposure recommendations

By the numbers

  • Distribution day threshold: close down ≥0.2% on higher volume
  • 25-session expiration and 5% invalidation rules tracked separately
  • Four risk levels: NORMAL, CAUTION, HIGH, SEVERE with TQQQ 100/75/50/25% exposure

Files

SKILL.mdMarkdownGitHub ↗

IBD Distribution Day Monitor

Purpose

Detect IBD-style Distribution Days for major market ETFs (QQQ as Nasdaq proxy, SPY as S&P 500 proxy) and produce a daily market deterioration signal plus a TQQQ/QQQ exposure recommendation. Designed for post-market review.

When to Use

Invoke this skill:

  • Daily after the US market close.
  • Before increasing TQQQ exposure or rebalancing leveraged positions.
  • When evaluating whether an uptrend is becoming vulnerable to a correction.
  • As an upstream input to FTD (Follow-Through Day) detection or other market-state frameworks.

Do NOT use this skill to:

  • Execute trades or modify orders.
  • Generate discretionary market predictions outside of the IBD ruleset.

Inputs

  • Symbols (default: QQQ, SPY) and lookback (default 80 trading sessions).
  • Optional --as-of YYYY-MM-DD for backtesting against a historical session.
  • Strategy context: instrument (TQQQ or QQQ), current exposure %, base trailing stop %.
  • FMP API key via --api-key, config.data.api_key, or FMP_API_KEY env var (in that priority order).

Core Rules

A Distribution Day is detected when: 1. Today's close is at least 0.2% below yesterday's close. 2. Today's volume is greater than yesterday's volume.

A Distribution Day is removed from the active count when either:

  • More than 25 trading sessions have elapsed since the DD.
  • The index has gained 5% from the DD close (using post-DD high by default; configurable to close-source).

Today's DD is never invalidated immediately because there are no post-DD sessions to evaluate the 5% gain against.

Counting Conventions

  • d5_count / d15_count / d25_count count active records with age_sessions <= N.
  • This means N+1 sessions are inspected (age 0..N inclusive). Reports therefore say "within N elapsed sessions" rather than "直近 N 取引日" to avoid ambiguity.

Risk Classification

RiskTrigger
NORMALd25 <= 2
CAUTIONd25 >= 3
HIGHd25 >= 5 OR d15 >= 3 OR d5 >= 2
SEVEREd25 >= 6 OR d15 >= 4 OR (market_below_21ema_or_50ma AND d25 >= 5)

When both QQQ and SPY are loaded, QQQ-weighted overall logic applies (TQQQ-aware): a single SEVERE escalates to SEVERE; QQQ HIGH escalates to overall HIGH; QQQ NORMAL + SPY HIGH still escalates to HIGH (broad-market spillover).

TQQQ Exposure Policy

RiskActionTarget ExposureTrailing Stop
NORMALHOLD_OR_FOLLOW_BASE_STRATEGY100%base
CAUTIONAVOID_NEW_ADDS75%min(base, 7%)
HIGHREDUCE_EXPOSURE50%min(base, 5%)
SEVERECLOSE_TQQQ_OR_HEDGE25%min(base, 3%)

QQQ uses a less aggressive policy (HIGH=75%, SEVERE=50%) since it lacks 3x leverage.

Workflow

1. Load OHLCV for the configured symbols via FMP (get_historical_prices). 2. Validate data quality; record skipped sessions in audit. 3. Rebase via prepare_effective_history so effective_history[0] is the evaluation session. 4. Detect raw Distribution Days; enrich with high_since, invalidation event, and status. 5. Count d5 / d15 / d25 active records. 6. Compute 21EMA and 50SMA filters; flag market_below_21ema_or_50ma (None if data insufficient). 7. Classify each index, then combine using QQQ-weighted policy. 8. Generate portfolio action for the configured instrument. 9. Write JSON + Markdown reports to --output-dir with API keys redacted.

Outputs

Saved to reports/ (or --output-dir):

  • ibd_distribution_day_monitor_YYYY-MM-DD_HHMMSS.json
  • ibd_distribution_day_monitor_YYYY-MM-DD_HHMMSS.md

JSON is UTF-8 with ensure_ascii=False (Japanese explanations preserved). Sensitive keys (api_key, fmp_api_key, token, etc.) are redacted automatically.

Operating Principles

  • Do not override the IBD rule definitions unless config/default.yaml is changed deliberately.
  • Always explain which dates contributed to the active count.
  • Treat missing or unreliable volume data as a warning (audit_flag), not as a Distribution Day.
  • Do not place trades. The portfolio action is a risk-management suggestion, not an execution instruction.

CLI

python3 skills/ibd-distribution-day-monitor/scripts/ibd_monitor.py \
  --symbols QQQ,SPY \
  --lookback-days 80 \
  --instrument TQQQ \
  --current-exposure 100 \
  --base-trailing-stop 10 \
  --output-dir reports/

API Requirements

FMP API key required. Free tier (250 calls/day) is sufficient for daily QQQ + SPY runs.

Related Skills

  • ftd-detector: Bottom confirmation via Follow-Through Days (counterpart of this top-side signal).
  • market-top-detector: Composite 0-100 top probability score using O'Neil distribution + other components.
  • position-sizer: Convert risk-management recommendations into share counts.

Related skills

FAQ

What defines an IBD distribution day?

ibd-distribution-day-monitor flags a distribution day when QQQ or SPY closes down at least 0.2% on higher volume than the previous session, then tracks 25-session expiration and 5% price-recovery invalidation.

Does ibd-distribution-day-monitor execute trades?

ibd-distribution-day-monitor produces risk classifications and TQQQ/QQQ exposure recommendations as JSON and Markdown reports via ibd_monitor.py but does not execute trades itself.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.