parabolic-short-trade-planner
tradermonty/claude-trading-skills
Screen US equities for parabolic exhaustion patterns and generate conditional pre-market short plans with intraday trigger detection.
What is parabolic-short-trade-planner?
A three-phase short-trade planning system for US equities that identifies parabolic exhaustion patterns, generates pre-market conditional plans with explicit borrow/SSR gating, and monitors intraday 5-minute triggers. Use this when building Qullamaggie-style parabolic short watchlists and need to evaluate entry signals against live market data without sending orders.
- Phase 1: Screen EOD bars for parabolic exhaustion using 5-factor scoring (MA extension, acceleration, volume climax, range expansion, liquidity) with A/B/C/D grades
- Phase 2: Generate pre-market conditional plans per candidate with three trigger strategies (ORL break, first-red 5-min, VWAP fail) and explicit borrow/SSR/manual-confirmation gating
- Phase 3: Monitor intraday 5-minute bars via one-shot FSM to detect trigger fires, resolve concrete share counts, and emit entry/stop/size when triggered
- Earnings-aware screening with configurable blackout windows and recent-catalyst warnings
- Idempotent intraday monitoring—re-runs during the same minute produce identical state for replay determinism
How to install parabolic-short-trade-planner
npx skills add https://github.com/tradermonty/claude-trading-skills --skill parabolic-short-trade-planner- Python 3.7+
- FMP_API_KEY environment variable (for Phase 1 EOD bars and company profile)
- ALPACA_API_KEY and ALPACA_SECRET_KEY (for Phase 2 borrow checks and Phase 3 live bars; optional—falls back to manual broker adapter)
- Install requirements.txt dependencies
How to use parabolic-short-trade-planner
- 1.Phase 1: Run screen_parabolic.py with --mode safe_largecap (or classic_qm for small-cap) and --as-of YYYY-MM-DD to generate watchlist JSON and Markdown
- 2.Phase 2: Run generate_pre_market_plan.py with the Phase 1 JSON, --account-size, and --risk-bps to emit pre-market plans with three entry strategies per candidate
- 3.Phase 3: During US regular session, run monitor_intraday_trigger.py every 60 seconds (first 30 min) then every 5 minutes to detect trigger fires and resolve shares
- 4.Review plan_status (actionable vs watch_only), blocking_manual_reasons, and advisory_manual_reasons before manual entry at your broker
- 5.Confirm borrow/locate, SSR state, and intraday margin rules with your broker before pulling the trigger on any short entry
Use cases
- Build a daily parabolic short watchlist from S&P 500 or custom CSV and filter by grade threshold
- Translate watchlist candidates into pre-market trade plans with explicit borrow inventory and SSR Rule 201 state checks
- Monitor live 5-minute bars during regular session to detect plan trigger fires and resolve concrete entry/stop/share counts
- Audit blocking vs advisory manual-confirmation reasons before placing orders at Alpaca
- Test screening and trigger logic against historical fixtures without live API calls
- Short-focused swing traders using parabolic exhaustion patterns
- Traders using Alpaca for borrow inventory and market data
- Quant researchers building Qullamaggie-style watchlists
- Risk-aware traders who want explicit gating on borrow/SSR before entry
parabolic-short-trade-planner FAQ
No. Phase 3 emits a triggered state with concrete entry/stop/share count, but the trader must manually confirm borrow/SSR/margin and fire the order at their broker.
Phase 1 uses FMP for EOD bars and company profile. Phase 3 uses Alpaca live 5-minute bars (or JSON fixtures for testing). Phase 2 checks Alpaca short inventory or falls back to ManualBrokerAdapter if credentials are missing.
No. This skill is short-specific and uses parabolic exhaustion patterns. Use vcp-screener or canslim-screener for long-side momentum.
Phase 1 and Phase 2 still work. Phase 2 marks all candidates as watch_only with borrow_inventory_unavailable. Phase 3 requires Alpaca credentials for live 5-minute bars, but you can test with --bars-source fixture.
Yes. Each run replays the full session bars from open to now_et, so re-running during the same minute produces identical state. prior_state is used only for diff display, never to advance the FSM.
Full instructions (SKILL.md)
Source of truth, from tradermonty/claude-trading-skills.
name: parabolic-short-trade-planner 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.
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(defaultB), checks Alpaca short inventory (orManualBrokerAdapter), 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 anintraday_monitorJSON withstate,entry_actual,stop_actual, andshares_actual(when triggered). One-shot — trader runs it every 1–5 min viawatchor 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
triggeredstate with concrete entry/stop/share count, but the trader fires the order manually.
Workflow
Phase 1 — daily screener
- Confirm
FMP_API_KEYis set (env var or--api-key). - 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/ - Inspect
reports/parabolic_short_<date>.md— the watchlist is grouped by grade (A→D). - 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
- Optional: set
ALPACA_API_KEY/ALPACA_SECRET_KEYfor live borrow checks. Without them the planner falls back toManualBrokerAdapter, which marks every candidate asborrow_inventory_unavailable/plan_status: watch_only. - 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/ - Output:
reports/parabolic_short_plan_<date>.json. Each plan contains three entry plans (5min ORL break, first red 5-min, VWAP fail) withentry_hint/stop_hintformula strings (no baked-in shares — the trader computes shares at trigger time from theshares_formula).
Phase 3 — intraday trigger monitor
- Confirm
ALPACA_API_KEY/ALPACA_SECRET_KEYare set (Phase 3 uses Alpaca market data;data.alpaca.marketsworks for both paper and live accounts). - During US regular session, run one-shot per cadence — typical is
every 60 s during the first 30 min, then every 5 min:
Or wrap inpython3 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/watch -n 60 'python3 ...'/ cron. - Output:
reports/parabolic_short_intraday_<date>.jsonlists every monitored plan withstate(armed/triggered/invalidated/ FSM-specific), bar-derived transition timestamps, andsize_recipe_resolved(concreteshares_actual) when triggered. - 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) orwatch_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 legacyearnings_blackout_dayssemantic.--earnings-catalyst-window-days(default 10 trading days, backward) — soft warningrecent_earnings_catalystwhen last earnings is within the window. Routes to Phase 2 as an advisory manual reason without forcingtrade_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.
Related skills
More from tradermonty/claude-trading-skills and the wider catalog.

pead-screener
Screen post-earnings gap-up stocks for PEAD patterns using weekly candle analysis.

portfolio-manager
Analyze and rebalance investment portfolios using real-time Alpaca brokerage data.

position-sizer
Calculate optimal share counts for long stock trades using risk-based position sizing methods.

pre-trade-discipline-gate
Pre-trade checklist gate blocking planless, oversized, revenge-risk, and circuit-breaker-blocked manual orders.

residual-edge-analyzer
Separate strategy returns into baseline exposure and residual alpha using returns-based OLS attribution with HAC inference and rolling stability analysis.

scenario-analyzer
Analyze 18-month investment scenarios from news headlines with dual-agent review.