Parabolic short trade planner
Skill BaggaT236/AI-Trading-Skills/skills/parabolic-short-trade-planner
Ai agent claude trading skills for disiplined, repeatable trading workflows with a modern typescript platform
npx -y skills add BaggaT236/AI-Trading-Skills --skill parabolic-short-trade-plannerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
7.8 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
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 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).
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.