Skip to content
cccskills
FreePublished on GitHub

parabolic-short-trade-planner

Screen US stocks for signs that a sharp rally may be exhausting. Build conditional short-selling plans, check borrowing and trading restrictions, and evaluate five-minute price bars to report triggered entries, stop levels, and share counts without sending orders.

OriginalShow the original description

Screen US equities for parabolic exhaustion patterns and generate conditional pre-market short plans, then evaluate intraday trigger fires from live 5-min bars. Phase 1 daily 5-factor scorer (MA extension / acceleration / volume climax / range expansion / liquidity), Phase 2 per-candidate plans for ORL break / first-red 5-min / VWAP fail with explicit borrow / SSR / manual-confirmation gating, Phase 3 one-shot intraday FSM that detects trigger fires and resolves concrete share counts. Covers Phase 1 + Phase 2 + Phase 3.

Run score Not tested

See how to install

Good for

  • Build a watchlist of sharply rising US stocks
  • Prepare conditional short-selling plans before market open
  • Review borrowing availability and short-sale restrictions
  • Check entry triggers using five-minute price bars

Files included (98)

  • SKILL.md8.7 KB
  • references/broker_capability_matrix.md2.1 KB
  • references/intraday_trigger_playbook.md4.6 KB
  • references/parabolic_short_methodology.md2.4 KB
  • references/short_invalidation_rules.md2.0 KB
  • references/short_risk_management.md2.6 KB
  • references/smoke_test_runbook.md21.3 KB
  • references/smoke_universe_diverse.csv53 B
  • references/smoke_universe_relaxed.csv44 B
  • requirements.txt204 B
  • scripts/_fmp_compat.py5.8 KB
  • scripts/_market_calendar.py11.1 KB
  • scripts/adapters/__init__.py0 B
  • scripts/adapters/alpaca_inventory_adapter.py3.9 KB
  • scripts/adapters/alpaca_market_data_adapter.py6.5 KB
  • scripts/adapters/fixture_market_data_adapter.py3.0 KB
  • scripts/adapters/market_data_adapter.py2.2 KB
  • scripts/bar_normalizer.py3.0 KB
  • scripts/broker_short_inventory_adapter.py2.7 KB
  • scripts/calculators/__init__.py0 B
  • scripts/calculators/acceleration_calculator.py3.2 KB
  • scripts/calculators/atr_calculator.py1.3 KB
  • scripts/calculators/liquidity_metrics_calculator.py1.8 KB
  • scripts/calculators/ma_extension_calculator.py2.5 KB
  • scripts/calculators/parabolic_score_calculator.py3.9 KB
  • scripts/calculators/range_expansion_calculator.py1.7 KB
  • scripts/check_live_apis.py12.6 KB
  • scripts/fmp_client.py26.3 KB
  • scripts/generate_pre_market_plan.py11.9 KB
  • scripts/intraday_evaluators/__init__.py276 B
  • scripts/intraday_evaluators/first_red_evaluator.py3.9 KB
  • scripts/intraday_evaluators/orl_evaluator.py5.3 KB
  • scripts/intraday_evaluators/vwap_fail_evaluator.py6.0 KB
  • scripts/intraday_size_resolver.py2.6 KB
  • scripts/intraday_state_machine.py1.8 KB
  • scripts/intraday_state_store.py2.0 KB
  • scripts/invalidation_rules.py3.0 KB
  • scripts/manual_reasons.py2.3 KB
  • scripts/market_clock.py2.5 KB
  • scripts/math_helpers.py2.8 KB
  • scripts/monitor_intraday_trigger.py10.1 KB
  • scripts/parabolic_report_generator.py8.0 KB
  • scripts/parabolic_scorer.py3.1 KB
  • scripts/plan_builders/__init__.py0 B
  • scripts/plan_builders/first_red_plan_builder.py916 B
  • scripts/plan_builders/orl_plan_builder.py986 B
  • scripts/plan_builders/vwap_fail_plan_builder.py907 B
  • scripts/screen_parabolic.py24.0 KB
  • scripts/size_recipe_builder.py3.3 KB
  • scripts/ssr_state_tracker.py3.6 KB
  • scripts/state_caps.py2.4 KB
  • scripts/tests/conftest.py4.6 KB
  • scripts/tests/fixtures/dry_run_minimal.json15.1 KB
  • scripts/tests/fixtures/intraday_bars/first_red_clean.json610 B
  • scripts/tests/fixtures/intraday_bars/first_red_invalidated.json538 B
  • scripts/tests/fixtures/intraday_bars/first_red_same_bar_invalidation_wins.json614 B
  • scripts/tests/fixtures/intraday_bars/no_bars_yet.json178 B
  • scripts/tests/fixtures/intraday_bars/orl_clean_break.json617 B
  • scripts/tests/fixtures/intraday_bars/orl_invalidated.json750 B
  • scripts/tests/fixtures/intraday_bars/orl_low_volume_no_fire.json536 B
  • scripts/tests/fixtures/intraday_bars/vwap_full_fsm.json959 B
  • scripts/tests/fixtures/intraday_bars/vwap_invalidated_after_trigger.json892 B
  • scripts/tests/fixtures/phase2_plan_smoke.json2.2 KB
  • scripts/tests/test_acceleration.py2.3 KB
  • scripts/tests/test_alpaca_market_data_adapter.py12.3 KB
  • scripts/tests/test_bar_normalizer.py2.2 KB
  • scripts/tests/test_broker_inventory.py6.0 KB
  • scripts/tests/test_check_live_apis.py5.2 KB
  • scripts/tests/test_earnings_metadata.py6.7 KB
  • scripts/tests/test_first_red_evaluator.py2.8 KB
  • scripts/tests/test_fixture_market_data_adapter.py7.3 KB
  • scripts/tests/test_fmp_client_stable.py4.0 KB
  • scripts/tests/test_generate_pre_market_plan.py7.9 KB
  • scripts/tests/test_intraday_size_resolver.py4.6 KB
  • scripts/tests/test_intraday_state_machine.py4.0 KB
  • scripts/tests/test_intraday_state_store.py2.7 KB
  • scripts/tests/test_invalidation_rules.py2.5 KB
  • scripts/tests/test_liquidity_metrics.py1.3 KB
  • scripts/tests/test_ma_extension.py1.7 KB
  • scripts/tests/test_manual_reasons.py2.7 KB
  • scripts/tests/test_market_calendar_contract.py5.0 KB
  • scripts/tests/test_market_clock.py5.4 KB
  • scripts/tests/test_math_helpers.py2.1 KB
  • scripts/tests/test_monitor_intraday_smoke.py4.1 KB
  • scripts/tests/test_one_shot_idempotency.py3.5 KB
  • scripts/tests/test_orl_evaluator.py4.4 KB
  • scripts/tests/test_parabolic_score_calculator.py1.9 KB
  • scripts/tests/test_plan_builders.py2.9 KB
  • scripts/tests/test_range_expansion.py1.3 KB
  • scripts/tests/test_report_generator.py9.2 KB
  • scripts/tests/test_schema_contract.py8.1 KB
  • scripts/tests/test_scorer.py2.2 KB
  • scripts/tests/test_screen_parabolic_smoke.py10.6 KB
  • scripts/tests/test_size_recipe.py2.5 KB
  • scripts/tests/test_ssr_state_tracker.py3.2 KB
  • scripts/tests/test_state_caps.py2.1 KB
  • scripts/tests/test_vwap_fail_evaluator.py2.9 KB
  • scripts/vwap.py1.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Overview

Generate Qullamaggie-style Parabolic Short watchlists and conditional pre-market plans for US equities. The skill never sends orders. It emits JSON + Markdown that a human reviews against their broker before entry.

Three phases:

  • Phase 1 (screen_parabolic.py): pulls EOD bars + company profile from FMP, applies hard invalidation rules (mode-aware), scores survivors on 5 factors (weights 30/25/20/15/10), and assigns A/B/C/D grades.
  • Phase 2 (generate_pre_market_plan.py): takes the Phase 1 JSON, filters by --tradable-min-grade (default B), checks Alpaca short inventory (or ManualBrokerAdapter), evaluates SEC Rule 201 SSR state from the inherited prior-day close, and renders three trigger plans per candidate.
  • Phase 3 (monitor_intraday_trigger.py): reads the Phase 2 plan, fetches 5-min bars (Alpaca live or fixture), walks each plan's FSM forward by one step, persists per-plan state, and writes an intraday_monitor JSON with state, entry_actual, stop_actual, and shares_actual (when triggered). One-shot — trader runs it every 1–5 min via watch or cron; replay-deterministic so re-runs are byte-identical.

When to Use

Invoke this skill when the user wants to:

  • Build a daily Parabolic Short watchlist from S&P 500 (or a custom CSV).
  • Translate a watchlist into pre-market trade plans with explicit borrow / SSR / state-cap gating.
  • Audit a candidate's blocking vs advisory manual-confirmation reasons before placing an order at Alpaca.

Do NOT invoke for:

  • Long-side momentum screening — use vcp-screener or canslim-screener.
  • 1-minute / sub-minute intraday signals — Phase 3 evaluates 5-min bars only.
  • Live order routing — this skill is detection-only by design; Phase 3 emits a triggered state with concrete entry/stop/share count, but the trader fires the order manually.

Workflow

Phase 1 — daily screener

  1. Confirm FMP_API_KEY is set (env var or --api-key).
  2. Run with the safer-by-default mode:
    python3 skills/parabolic-short-trade-planner/scripts/screen_parabolic.py \
      --mode safe_largecap --as-of 2026-04-30 --output-dir reports/
    
  3. Inspect reports/parabolic_short_<date>.md — the watchlist is grouped by grade (A→D).
  4. Promote interesting names to Phase 2.

For small-cap blow-offs, switch to --mode classic_qm (looser market cap and ADV floors, higher 5-day ROC threshold).

For testing without the API, run --dry-run --fixture <path> against a JSON fixture (one is shipped at scripts/tests/fixtures/dry_run_minimal.json).

Phase 2 — pre-market plan generator

  1. Optional: set ALPACA_API_KEY / ALPACA_SECRET_KEY for live borrow checks. Without them the planner falls back to ManualBrokerAdapter, which marks every candidate as borrow_inventory_unavailable / plan_status: watch_only.
  2. Run:
    python3 skills/parabolic-short-trade-planner/scripts/generate_pre_market_plan.py \
      --candidates-json reports/parabolic_short_2026-04-30.json \
      --account-size 100000 --risk-bps 50 --output-dir reports/
    
  3. Output: reports/parabolic_short_plan_<date>.json. Each plan contains three entry plans (5min ORL break, first red 5-min, VWAP fail) with entry_hint / stop_hint formula strings (no baked-in shares — the trader computes shares at trigger time from the shares_formula).

Phase 3 — intraday trigger monitor

  1. Confirm ALPACA_API_KEY / ALPACA_SECRET_KEY are set (Phase 3 uses Alpaca market data; data.alpaca.markets works for both paper and live accounts).
  2. During US regular session, run one-shot per cadence — typical is every 60 s during the first 30 min, then every 5 min:
    python3 skills/parabolic-short-trade-planner/scripts/monitor_intraday_trigger.py \
      --plans-json reports/parabolic_short_plan_2026-05-05.json \
      --bars-source alpaca \
      --state-dir state/parabolic_short/ \
      --output-dir reports/
    
    Or wrap in watch -n 60 'python3 ...' / cron.
  3. Output: reports/parabolic_short_intraday_<date>.json lists every monitored plan with state (armed / triggered / invalidated / FSM-specific), bar-derived transition timestamps, and size_recipe_resolved (concrete shares_actual) when triggered.
  4. For testing without the API, use --bars-source fixture --bars-fixture <path> against a JSON fixture (scripts/tests/fixtures/intraday_bars/).

Phase 3 trigger detection is not an order instruction. Before any manual short entry, confirm borrow/locate availability, SEC Rule 201 SSR state, broker short-sale controls, and the broker's current intraday margin or day-trading controls. FINRA replaced the old pattern-day-trader day-count and $25,000 minimum-equity requirements with intraday margin standards effective 2026-06-04, with broker phase-in allowed through 2027-10-20.

Phase 3 is idempotent: each run replays the full session bars from open up to now_et (or --now-et override), so re-running during the same minute produces the same state. prior_state is used only for diff/notification display; it never advances the FSM.

Reviewing a plan before entry

Read three top-level fields per ticker:

  • plan_status: actionable (manual gates can be cleared) or watch_only (hard blockers — borrow unavailable or SSR active).
  • blocking_manual_reasons: must all be resolved before pulling the trigger.
  • advisory_manual_reasons: heads-up only, e.g. manual_locate_required (always set), warning:too_early_to_short, warning:recent_earnings_catalyst (last earnings within --earnings-catalyst-window-days, default 10 trading days — flag the move as event-driven rather than pure technical blow-off).

Earnings-aware screening

Phase 1 fetches the FMP earnings calendar once per run (single call, not per-symbol) and emits two earnings-aware checks:

  • --exclude-earnings-within-days (default 2 calendar days, forward) — hard invalidation when next earnings is within the window. Matches the legacy earnings_blackout_days semantic.
  • --earnings-catalyst-window-days (default 10 trading days, backward) — soft warning recent_earnings_catalyst when last earnings is within the window. Routes to Phase 2 as an advisory manual reason without forcing trade_allowed_without_manual: false.

Per-candidate output exposes last_earnings_date, next_earnings_date, trading_days_since_earnings (TRADING days), earnings_within_days (CALENDAR days, forward), earnings_blackout_days (configured threshold), and earnings_in_blackout_window. The legacy earnings_within_2d is kept for backward compatibility.

Top-level dates: as_of is the planning date (Phase 2 contract — never mutate); run_date mirrors it; market_data_as_of is the latest bar date used for technical metrics (differs from as_of on weekend runs).

Exchange Calendar and Replay

Install requirements.txt before running the planner. Phase 1 --as-of uses strict YYYY-MM-DD, filters bars beyond that ceiling, and counts earnings age with XNYS sessions. Phase 3 uses actual holidays and early closes; the close boundary is exclusive. Historical dates are accepted only with Phase 1 --dry-run fixture data; live universe and profile endpoints are not PIT and therefore fail closed for a non-current --as-of.

Output Format

Phase 1 JSON: parabolic_short_<as_of>.json (schema_version 1.0). Phase 2 JSON: parabolic_short_plan_<as_of>.json (schema_version 1.0). Phase 3 JSON: parabolic_short_intraday_<as_of>.json (schema_version 1.0, phase = intraday_monitor). The contract is pinned by tests/test_schema_contract.py plus tests/test_monitor_intraday_smoke.py for Phase 3.

Resources

  • references/parabolic_short_methodology.md — Qullamaggie's 3-trigger framework and exhaustion signals.
  • references/short_invalidation_rules.md — mode-aware exclusion rules.
  • references/short_risk_management.md — Rule 201, ETB vs HTB, locate.
  • references/intraday_trigger_playbook.md — detail on each trigger type, the FSM transitions Phase 3 implements, and same-bar tie-break semantics.
  • references/broker_capability_matrix.md — what each broker exposes through its API for short inventory.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

backtest-expert

FreeSummary

Plan and assess backtests, which test trading rules against historical data. Examine sensitivity to rule changes, trading costs, and data bias, then use supplied performance metrics to generate a structured evaluation with reasons that block adoption.

  • Define a backtesting plan for rule-based trading
  • Test sensitivity to parameters and trading costs
  • Investigate suspiciously strong backtest results
tradermonty/claude-trading-skills3.2KUpdated Oct 21, 2026

Assess how broadly US stock market gains are shared across stocks using public CSV data and optional charts. Produce English reports covering market conditions, trading signals, scenarios, and positioning for different investment timeframes.

  • Checking how broadly US stocks are participating in a market rise
  • Reviewing medium- to long-term market positioning
  • Assessing short-term swing trading signals
tradermonty/claude-trading-skills3.2KUpdated Oct 21, 2026

Analyze chart images showing how broadly US stocks are participating in market trends. Assess medium-term conditions and short-term signals, then produce an English report with positioning guidance, alternative scenarios, and risks based on the visible data.

  • Assessing the market cycle from an S&P 500 breadth chart
  • Checking short-term signals in an uptrend stock ratio chart
  • Comparing medium-term and short-term market signals
tradermonty/claude-trading-skills3.2KUpdated Oct 21, 2026

Turn VCP screening results, which identify narrowing price swings, into breakout trade plans. Calculate entry, stop-loss, target prices, and position sizes using worst-case entries, while applying portfolio risk limits and producing Alpaca-compatible order templates.

  • Planning entries, stop-losses, and profit targets for VCP candidates
  • Calculating position sizes from account size and risk limits
  • Checking total portfolio risk and sector exposure
tradermonty/claude-trading-skills3.2KUpdated Oct 21, 2026

canslim-screener

FreeSummary

Screen US growth stocks with William O'Neil's CANSLIM method, which evaluates seven factors including earnings, price strength, trading volume, and market direction. Receive ranked candidates with composite scores, factor breakdowns, market warnings, and data quality notes.

  • Find US stocks with earnings growth and price momentum
  • Compare a chosen list of stocks using CANSLIM scores
  • Screen a sector-focused stock list
tradermonty/claude-trading-skills3.2KUpdated Oct 21, 2026

Combine three reports on crowded positions, failed reactions to news, and weekly price reversals into one trading setup status. Identify missing or invalid evidence and determine whether the setup is ready for planning.

  • Combine three contrarian strategy reports
  • Check which confirmations are still missing
  • Find stale or inconsistent input reports
tradermonty/claude-trading-skills3.2KUpdated Oct 21, 2026

See all skills by tradermonty

Report a problem with this skill