diff --git a/README.md b/README.md index 4f527b1..0640422 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,15 @@ This README catalogs the tools and resources in this directory. It is intended f | Tool / Folder | Purpose | Key Files | When to Use | | --- | --- | --- | --- | -| `tool-catalog-maintainer/` | Creates and maintains catalog READMEs for directories of tools/resources. | `SKILL.md`, `CONTEXT.md`, `references/catalog-format.md` | Use when asked to catalog, index, or update documentation for a folder of tools. | -| `research-dfns/` | DFNS research folder — alerts logs, chat log, and TODO tracking. | `TODO.md`, `AlertsLog_*.txt`, `ChatLog_*.txt` | Use when reviewing or continuing DFNS research. | -| `260731-1330-credit-spread.md` | SPY Bull Put Credit Spread trade plan (0DTE, July 31). | `260731-1330-credit-spread.md` | Use for today's SPY options trade — bullish slow grind thesis. | -| `iron-condor-45dte.md` | SPX Iron Condor trade plan — 45DTE entry, 21DTE time exit, Schwab broker. | `iron-condor-45dte.md` | Use when setting up or managing SPX iron condor spreads. | -| `cha-martin-watchlist.ms.csv` | Cha Martin watchlist export (CSV). | `cha-martin-watchlist.ms.csv` | Use for ticker watchlist reference or scan filtering. | +| `workflows/tool-catalog-maintainer/` | Creates and maintains catalog READMEs for directories of tools/resources. | `SKILL.md`, `CONTEXT.md`, `references/catalog-format.md` | Use when asked to catalog, index, or update documentation for a folder of tools. | +| `workflows/research-dfns/` | DFNS research folder — alerts logs, chat log, and TODO tracking. | `TODO.md`, `AlertsLog_*.txt`, `ChatLog_*.txt` | Use when reviewing or continuing DFNS research. | +| `sources/260731-1330-credit-spread.md` | SPY Bull Put Credit Spread trade plan (0DTE, July 31). | `260731-1330-credit-spread.md` | Use for today's SPY options trade — bullish slow grind thesis. | +| `sources/iron-condor-45dte.md` | SPX Iron Condor trade plan — 45DTE entry, 21DTE time exit, Schwab broker. | `iron-condor-45dte.md` | Use when setting up or managing SPX iron condor spreads. | +| `sources/cha-martin-watchlist.ms.csv` | Cha Martin watchlist export (CSV). | `cha-martin-watchlist.ms.csv` | Use for ticker watchlist reference or scan filtering. | ## Tools -### `tool-catalog-maintainer/` +### `workflows/tool-catalog-maintainer/` **Purpose:** Creates and maintains a `README.md` catalog for a directory containing subfolders of tools, prompts, scripts, docs, workflows, skills, or other reusable resources. The README is a living catalog that improves over time. @@ -34,7 +34,7 @@ None noted. Works with file read/write tools. **Notes:** Always use this tool when asked to catalog a directory — inspect subfolders, read their key files, and write the README using `references/catalog-format.md`. -### `research-dfns/` +### `workflows/research-dfns/` **Purpose:** Research folder for DFNS (Digital Frontier Acquisition Corp.) — contains alert logs, chat transcripts, and tracking notes from July 27, 2026. @@ -50,7 +50,7 @@ Reviewing or continuing DFNS research. Note: per ticker tracking rule, DFNS shou **Setup / dependencies:** None noted. -### `260731-1330-credit-spread.md` +### `sources/260731-1330-credit-spread.md` **Purpose:** Active trade plan for a SPY Bull Put Credit Spread (0DTE, July 31, 2026). Sell $740 put / Buy $738 put spread, targeting 20%+ profit with bullish slow grind thesis. @@ -61,7 +61,7 @@ Executing or monitoring today's SPY options trade. **Setup / dependencies:** None noted. Trade-specific, not reusable. -### `iron-condor-45dte.md` +### `sources/iron-condor-45dte.md` **Purpose:** Trade plan for SPX Iron Condor through Schwab broker. 45DTE entry, 30-point wings, forced close at 21DTE. Includes profit target (25% of net credit), stop loss (50% of max loss), and monitoring cadence. @@ -72,7 +72,7 @@ Setting up or managing SPX iron condor spreads with Schwab. **Setup / dependencies:** Schwab broker session required. -### `cha-martin-watchlist.ms.csv` +### `sources/cha-martin-watchlist.ms.csv` **Purpose:** CSV export of a Cha Martin watchlist — likely contains tickers for scanning or monitoring. diff --git a/2026-08-11-SFY-IC-Debrief.md b/sources/2026-08-11-SFY-IC-Debrief.md similarity index 100% rename from 2026-08-11-SFY-IC-Debrief.md rename to sources/2026-08-11-SFY-IC-Debrief.md diff --git a/260731-1330-credit-spread.md b/sources/260731-1330-credit-spread.md similarity index 100% rename from 260731-1330-credit-spread.md rename to sources/260731-1330-credit-spread.md diff --git a/sources/HANDOFF_scan_workflow_scripts.md b/sources/HANDOFF_scan_workflow_scripts.md new file mode 100644 index 0000000..0aa24e6 --- /dev/null +++ b/sources/HANDOFF_scan_workflow_scripts.md @@ -0,0 +1,237 @@ +# HANDOFF — scan-watchlist-for-equities: mechanical data-fetch script + +Written: Tue 2026-08-18 9:37 PM ET. Purpose: a fresh session can resume this +build without re-deriving anything. All API facts below were LIVE-VERIFIED +this session (not from memory). + +## 1. What the member asked for + +Gump: "I want to create scripts to do some of the work you're doing now and +stitch these into the workflow to avoid the inference work these stages +undertake on each run." + +Follow-up approval: "yes build it and include Benzinga news pull" — then, +after the flaky Benzinga endpoint (HTTP 500) and dropped tool payloads: +"can you continue without benzinga angle?" + +=> DECISION: **v1 script = price/volume/bars/S-R only (no Benzinga).** +News stays an optional agent MCP call at stage 01, exactly as before. +Benzinga re-add can be v2 once the endpoint proves stable. + +## 2. Goal / design + +One stdlib-only Python 3.11 script: + `workflows/scan-watchlist-for-equities/shared/scripts/fetch_scan_data.py` + +CLI: python3 fetch_scan_data.py [--out DIR] + [--regime SPY,QQQ] [--bars-days 80] [--news-since YYYY-MM-DD] + (news args drop in v2; ignore for v1) + +It fetches, per watchlist ticker, DIRECTLY from TTG real-time data API +(via streamable-HTTP MCP JSON-RPC — see section 5): + - stocks_snapshot_ticker + - stocks_aggs_custom_bars daily (from = today-100d, to = today, + multiplier=1, timespan=day, limit=90) + - stocks_aggs_custom_bars 3-min (from/to = last trading day, + multiplier=3, timespan=minute, limit=400) + - calculate_support_resistance {ticker, timeframe: "daily"} + - calculate_support_resistance {ticker, timeframe: "3min"} +Plus SPY/QQQ regime snapshots. + +It computes (mechanical, zero interpretation): + - session split of 3-min bars: PM (<09:30 ET), RS (09:30-16:00), + AH (>16:00 ET) — per session: o/h/l/c/v and vwap=sum(c*v)/sum(v) + - intraday high/low timestamps; volume by RS hour; first-15-min and + last-30-min RS moves + - MA20 / MA50 from daily closes + distance % (n/a if <20 bars: IPOs) + - period high/low from fetched daily bars + - vol vs prev-day volume (snapshot day.v / prevDay.v) + +It writes into `stages/01_broad_filter/output/`: + - data_brief.md — formatted tables, the mechanical half of shortlist.md + - raw_data.json — every raw payload, audit trail +stdout: compact fetch summary + output paths. Exit 0/1. +Per-call: 1 retry, 2s backoff. Timestamps in bars are MILLISECONDS UTC — +convert to America/New_York (zoneinfo; fall back to local tz on error). +"Last trading day" for the 3-min fetch = max bar date from the daily bars +(handles weekend/pre-market runs). + +Credentials: read at RUNTIME from env var MARI_MCP_CONFIG (machine-local +JSON; see section 4). NEVER hardcode keys or write them into the workflow +folder — the Cell syncs to Fleet. + +## 3. Environment facts (verified this session) + +- cwd = C:\Users\Eric\AppData\Roaming\MARI Desktop\localCell\accounts\ + acct-c6fef984c60eb59b9c1c4202ababa059\workspace (git-bash paths use /c/...) +- Python 3.11.15 (pyenv) reachable from MARI bash; stdlib urllib HTTPS works + (proven by live calls below). Node is UNREACHABLE from MARI bash — use Python. +- MCP config: env var MARI_MCP_CONFIG -> + C:\Users\Eric\AppData\Roaming\MARI Desktop\mcp\acct-c6fef984...json + Shape: {"servers": {"ttg-stocks": {"transport":"streamablehttp", + "url":"https://rt.data.ttg.ai/stocks/mcp", + "auth":{"type":"header","headers":{"Authorization":"Bearer ***", + "X-User-ID":"27930"}}}, "ttg-benzinga": {...benzinga/mcp...}, ...}} + (Do not print the real bearer key in chat/output.) +- Workflow root: .mari/scratchpad/workflows/scan-watchlist-for-equities/ + (Layer-3 scripts belong in shared/scripts/ per ICM Table 2; ICM.md is at + workflows/ICM.md — re-read on exec per member's predicate.) +- Watchlist CSVs live in shared/ (e.g. 260818.csv = "XOS, AMLX" one per line). + Script should resolve the CSV relative to shared/ (script_dir.parent). + +## 4. MCP-over-HTTP protocol (proven working from Python) + +Stateless on these servers: no Mcp-Session-Id returned. Sequence: + 1) POST url {"jsonrpc":"2.0","id":1,"method":"initialize","params": + {"protocolVersion":"2025-03-26","capabilities":{}, + "clientInfo":{"name":"fetch_scan_data","version":"1.0"}}} + 2) POST {"jsonrpc":"2.0","method":"notifications/initialized"} (best-effort) + 3) POST {"jsonrpc":"2.0","id":N,"method":"tools/call","params": + {"name":,"arguments":{...}}} +Headers for every POST: Content-Type: application/json, +Accept: application/json, text/event-stream, plus the server's auth headers. +Responses came back plain application/json (not SSE) in testing, but the +parser MUST handle both: if CT starts with text/event-stream, scan lines +starting "data:" and JSON-parse until one has the matching id. +Result text = d["result"]["content"][0]["text"] -> json.loads (it's a +JSON string). On JSON-RPC error object, raise with the message. + +Minimal proven client (this exact code worked): + cfg = json.load(open(os.environ['MARI_MCP_CONFIG'])) + srv = cfg['servers']['ttg-stocks'] + headers = {'Content-Type':'application/json', + 'Accept':'application/json, text/event-stream'} + headers.update(srv['auth']['headers']) + req = urllib.request.Request(srv['url'], data=json.dumps(payload).encode(), + headers=headers, method='POST') + body = urllib.request.urlopen(req, timeout=60).read().decode() + +## 5. Verified response shapes (live, 8/18 evening) + +stocks_snapshot_ticker {ticker:"SPY"} -> + {"ticker":{"ticker":"SPY","todaysChangePerc":-0.675,"todaysChange":-5.22, + "updated":1787097600000000000,"day":{"dv":43920901.2,"o":768.7,"h":769.5, + "l":766.92,"c":767.45,"v":...,"vw":768.52,...}, ...}} + (also has prevDay with c/v — code defensively with .get; the exact AH + sub-fields were not captured: rely on 3-min AH bars for after-hours shape, + not the snapshot.) + +stocks_aggs_custom_bars {ticker,from,to,multiplier,timespan,limit} -> + {"ticker":...,"results":[{"v":22219.6,"vw":768.25,"o":769.21,"c":768.37, + "h":769.73,"l":767.8,"t":1787040000000,"n":446}],"next_url":...} + NOTE: 'multiplier' IS REQUIRED (missing it = "Missing required params"). + Daily: multiplier=1 timespan=day. Intraday: multiplier=3 timespan=minute. + t = MILLISECONDS UTC. + +calculate_support_resistance {ticker, timeframe:"daily"|"3min"} -> + {"timeframe":"daily","current_price":4.44, + "support_levels":{"minor":[{"price":1.92,"touches":1, + "description":"Swing low 3 weeks ago, 1 touch"}], + "major":[{"price":3.04,"touches":3,"description":"..."}, ...], + "key_references":{"pdl":4.01,"pdc":4.44,"period_low":1.65}}, + "resistance_levels":{"minor":[...],"major":[...], + "key_references":{"pdh":4.95,"period_high":...}}} + +benzinga_news (V2 ONLY — endpoint flaky, 500'd once this session): + ttg-benzinga execute {endpoint:"benzinga_news", + params:{"stocks":"AMLX","published.gte":"2026-08-18"}} -> + {"status":"OK","results":[{"benzinga_id":...,"author":"benzinga newsdesk", + "published":"2026-08-18T20:02:46Z","title":"Amylyx Pharmaceuticals + Announces $350M Common Stock Offering","url":"...","channels":[...],...}]} + Use ONLY minimal params (stocks + published.gte) — extra params + (limit/sort) coincided with the 500; retry once on failure. + +## 6. data_brief.md format (mirror the mechanical sections of tonight's +shortlist.md so stage agents can drop them straight in) + + # Data Brief — scan-watchlist-for-equities + Generated: | Watchlist: | Tickers: ... | Regime: SPY, QQQ + (Mechanical fetch + compute only — interpretation is stage work.) + ## 1. Market regime (SPY/QQQ) + | Ticker | Close | Chg % | O | H | L | VWAP | Vol | Vol vs prev | Closed vs VWAP | + ## 2. Watchlist snapshot + | Ticker | Close | Chg % | O | H | L | VWAP(all-day) | VWAP(RS) | + | Vol | Vol vs prev | | | | | | | + ## 3. Intraday shape — (3-min bars, ) + Sessions PM/RS/AH: o/h/l/c/v/vwap each; high & low timestamps; + volume by RS hour; first-15-min and last-30-min moves. + ## 4. Daily structure — + Close | MA20 (dist%) | MA50 (dist%) | period high/low + ## 5. Support/Resistance — + daily + 3-min: major/minor levels w/ touches, key references + (pdh/pdl/pdc/period high-low). + ## 6. (v2) Catalyst feed — Benzinga per ticker, ET-sorted, with + offering/dilution auto-flag (regex on title: offering|ATM|S-3| + underwrit|registered direct|share sale|financing|capital raise). + +Format rules: prices 2dp (3dp if <2.0); volumes in M (1dp); facts only — +"closed below VWAP" is allowed (arithmetic), "risk-off" is NOT (judgment). + +## 7. Stitching into CONTEXT.md (pending edits, after script works) + +- stages/01_broad_filter/CONTEXT.md: replace the manual fetch steps with + "run `python3 shared/scripts/fetch_scan_data.py `; read output/data_brief.md; do NOT re-pull data the + brief contains (fallback to MCP calls only if the script fails)". + Agent keeps: regime interpretation, triage, shortlist.md. + (Benzinga: keep the existing agent news step for v1, unchanged.) +- stages/02_confluence_analysis/CONTEXT.md: add input + ../01_broad_filter/output/data_brief.md — factors read from brief. +- stages/03_trade_plan/CONTEXT.md: add same input — levels from brief. +- Root CONTEXT.md "Shared Resources": update shared/ line to mention + scripts/fetch_scan_data.py. CLAUDE.md: one-line note under shared/. +- Stages 00 and 04: UNTOUCHED (pure conversation/synthesis). + +## 8. Verification targets (tonight 8/18 run — script output must match) + +SPY 767.45 -0.68% VWAP 768.52 vol 43.9M | QQQ 717.51 -1.88% VWAP 719.73 vol 49.0M +XOS 4.44 +96.65% O4.53 H4.95 L4.01 VWAP 4.4281(vol 110.1M) AH last ~4.11 + 3-min SR: resistance cluster 4.25/4.30/4.32 | daily SR: 3.04/2.70/2.11, + res 8.27, pdl 4.01 pdc 4.44 period_low 1.65 +AMLX 35.11 +63.42% O29.91 H35.39(ATH) L28.00 VWAP 31.4446 vol 24.0M AH ~35.02 + 3-min SR: support 35.02(48t)/34.90(28t), congestion 33.26/33.53 + daily SR: 17.00/12.44 support, pdh 35.39 + +## 9. Pitfalls / failure modes learned this session + +- file_write (and bash) DROP the payload when a single tool call carries a + very large content (~10KB+ observed failing). Symptom: "missing required + positional argument: 'content'". FIX: write in chunks of <= ~3KB + (file_write, or bash `cat > f <<'EOF'` then `cat >> f <<'EOF'`). Verified: + 3 chunks landed cleanly. +- ttg-stocks execute: 'multiplier' param is REQUIRED (500-ish error w/o it). +- ttg-benzinga: HTTP 500 (HTML error page) occurred once; retry with + minimal params worked. Treat as flaky — never block the script on it. +- 3-min bar timestamps: MILLISECONDS (not nanoseconds/seconds). +- Node is unreachable from MARI bash (PATH isolation) — Python only. +- Weekend/pre-market: daily bars may lack today; 3-min fetch should target + the last trading day found in daily bars, and brief must say so. +- ICM standing rules (member's predicates): re-read ICM.md fresh every exec; + clear each stage's output/ before re-running the workflow; the workflow + folder is equities-only (options work was stripped 8/18 — do not re-add). + +## 10. Resume checklist (fresh session) + +1. Read this doc; read workflows/ICM.md (member predicate). +2. Build fetch_scan_data.py per section 2 spec, using the client from + section 4 and shapes from section 5. Write via chunked bash heredocs. + Keep it stdlib-only. v1 has NO Benzinga. +3. Run: python3 .../fetch_scan_data.py 260818.csv +4. Diff its data_brief.md numbers against section 8 targets (must match). + Inspect raw_data.json to confirm snapshot field extraction (esp. + prevDay.v) — adjust .get() chains if fields differ. +5. Make the CONTEXT.md stitch edits in section 7. +6. Report to Gump with: script path, brief preview, stage-edit list, + and the Benzinga-v2 note (why it was deferred: flaky 500). +7. Standing member rules: plan-first for consequential multi-step work; + visible progress updates; re-run = clear output/ first. + +## 11. Current state + +- Workflow folder: options work fully stripped (5 files edited 8/18, + verified clean). 8/18 evening run completed: all 5 stage outputs exist + in stages/*/output/ (shortlist, confluence, plans, summary card) with + AMLX primary / XOS conditional plans for Wed 8/19. +- fetch_scan_data.py: NOT YET WRITTEN (all large file_write attempts + dropped). Probes above are the only code verified this session. +- Nothing in the workflow folder is dirty beyond what 8/18 run wrote. diff --git a/cha-martin-watchlist.ms.csv b/sources/cha-martin-watchlist.ms.csv similarity index 100% rename from cha-martin-watchlist.ms.csv rename to sources/cha-martin-watchlist.ms.csv diff --git a/iron-condor-45dte.md b/sources/iron-condor-45dte.md similarity index 100% rename from iron-condor-45dte.md rename to sources/iron-condor-45dte.md diff --git a/servers.md b/sources/servers.md similarity index 100% rename from servers.md rename to sources/servers.md diff --git a/sources/xpon-squeeze-2026-08-24.md b/sources/xpon-squeeze-2026-08-24.md new file mode 100644 index 0000000..a2a20b2 --- /dev/null +++ b/sources/xpon-squeeze-2026-08-24.md @@ -0,0 +1,90 @@ +# XPON Short Squeeze — Premarket Signal Reconstruction (2026-08-24) + +## The Setup: What a Pre-Open Scanner Would Have Flagged + +### 1. Extreme Float Restriction +- **Free float: 10,684,515 shares** (93.4% of share class) +- **Total shares outstanding: ~962,335** (weighted: 953,191) +- **Market cap: $3.27M** — deep micro-cap +- **22 employees**, listed 2022-04-01, NASDAQ (XNAS) +- **1-for-12 reverse split** (effective ~2026 Q2) to regain Nasdaq compliance +- A ~$3.30M market cap with 10.7M free float = tiny tradable universe. Any meaningful buy-side interest moves the tape fast. + +### 2. 8/19 Volume Blowout — The "Accumulation Day" +| Metric | 8/19 (Thu) | Prior days (typical) | +|--------|-----------|---------------------| +| Close | $4.43 | $3.30–$3.74 | +| High | $4.90 | $3.30–$3.74 | +| Volume | **83,482 shares** | ~300–1,000 shares | +| $ Volume | $7.37M | <$5K | + +- Volume was **~80–250x** the prior 10-day average (~300–700 shares/day). +- Price went from a 3-week range of $3.18–$3.89 to a **$4.90 intraday high** — a break above the established range. +- Close at $4.43 held well above the prior range — this is an **accumulation/reversal bar**, not a failed spike. +- The 8/20–8/22 follow-through: volume stayed elevated (3.8K, 1K, 680) vs. the prior 1K baseline, and price held above $3.60 — confirming the 8/19 move wasn't a one-day fluke. + +### 3. Premarket 8/24: The Trigger +- **Pre-market high: $4.80** (09:24 ET, first 5-min bar: o:3.56 c:4.10 h:4.80 l:3.40, v:1,047,600) +- That's a **+8.5% gap** above the 8/23 close of $3.435. +- **Pre-market volume: ~1.94M shares in the first hour** (vs. 83K the prior full day) — **23x the prior day's total volume before the open**. +- The quote tape shows **bid/ask sizes at 100 shares** throughout pre-market — no institutional size was visible. This was **retail/momentum-driven**, not institutional. +- The 09:30 open printed at **$7.77** — a **126% gap** above prior close. The open was already 1.7x the premarket high. + +### 4. The Squeeze Mechanics (First 2 Hours) +| Time (ET) | Price | Volume | Notes | +|-----------|-------|--------|-------| +| 09:25 | 3.40 → 4.80 | 1.0M | Pre-market trigger | +| 09:30 | 4.10 → 5.88 | 4.4M | Open + first 5 min | +| 09:35 | 5.90 → 6.45 | 3.3M | Acceleration | +| 09:40 | 6.17 → 6.18 | 1.7M | Consolidation | +| 09:45 | 6.18 → 7.58 | 3.8M | Second wave | +| 09:50 | 7.58 → 8.64 | 3.4M | **High: $9.03** | +| 09:55 | 8.67 → 8.18 | 2.0M | First fade | +| 10:00 | 8.20 → 8.70 | 1.6M | Retest | +| 10:05 | 8.70 → 9.84 | 2.4M | **High: $9.99** | +| 10:10 | 9.83 → 8.45 | 2.1M | Sharp reversal | +| 10:15 | 8.43 → 8.18 | 0.7M | Consolidation | + +- **Intraday high: $9.99** (+191% from prior close) at ~10:05 AM ET +- **First 15 min volume: ~13M shares** — 150x the prior day's total +- The 10:05 high at $9.99 was a **psychological round number** — classic momentum exhaustion +- After 10:15, price faded to $6.31 by mid-morning (low of $6.31 at ~11:30) +- **Closed at $7.36** (+114% from prior close) — gave back ~26% of the gains + +### 5. Why Mike Edwards Would Have Flagged This + +A short-squeeze scanner (or discretionary premarket review) would have scored XPON high on: + +1. **Float size**: $3.3M market cap, 10.7M free float — one of the most restricted floats in the market +2. **Volume spike**: 8/19 was 80–250x normal — the "something changed" signal +3. **Price range break**: 8/19 broke the 3-week $3.18–$3.89 range with a $4.90 high +4. **Follow-through**: 8/20–8/22 held above the prior range with elevated volume +5. **Premarket gap**: +8.5% gap to $4.80 before the open — confirming momentum +6. **Premarket volume**: 1.94M shares pre-market = 23x prior day — "the market is paying attention" +7. **Thin liquidity**: 100-share bid/ask sizes = no institutional selling wall, retail/momentum can drive price +8. **Reverse split**: Fresh off a 1-for-12 reverse split — stock was recently reset, new float, new retail interest +9. **Nasdaq compliance regained**: The reverse split was to fix compliance — "clean bill of health" for short-sellers (reduced short borrow risk) +10. **No options market**: No listed options = no hedging mechanism for short-sellers → they can only cover + +### 6. What Went Wrong (Post-Open Fade) +- The 10:05 high at $9.99 was a **blow-off top** — no follow-through, sharp reversal +- $9.99 → $6.31 in ~90 minutes = **-37% from the high** +- The close at $7.36 held above the open ($7.77) — "strong" close for a +114% day, but gave back 26% +- **No fundamental catalyst**: Q2 revenue down 32% YoY, net loss, declining cash — this was pure momentum/squeeze, not a fundamental move +- The 8/19 volume spike may have been **positioning by a single entity or small group** rather than broad institutional interest + +### 7. Risk Assessment for a Pre-Open Entry +- **Entry**: ~$4.10 (first 5-min close) to ~$5.88 (end of first 5 min) +- **Target**: $9.99 (10:05 high) = +70% to +140% from entry +- **Stop**: $3.40 (pre-market low) = -17% to -42% risk +- **R:R at $4.10 entry**: 70%/17% = 4.1:1 (excellent) +- **R:R at $5.88 entry**: 70%/42% = 1.7:1 (marginal) +- **Risk**: Squeeze stocks can reverse 50%+ in minutes. The 10:05→10:10 fade was $9.84→$8.45 = -14% in 5 minutes. + +### 8. Key Takeaway +XPON was a **textbook micro-cap short squeeze setup**: +- Tiny float + volume spike + range break + premarket gap + thin liquidity +- The squeeze worked (191% intraday gain) but faded hard +- The **premarket signals were strong** — a scanner would have ranked this in the top 5-10 premarket names +- The **risk/reward was excellent** at pre-market prices but degraded fast once price ran +- **No fundamental catalyst** = the move was purely mechanical (short covering + momentum) diff --git a/workflows/scan-watchlist-for-equities/stages/00_clarify/output/user_preferences.md b/workflows/scan-watchlist-for-equities/stages/00_clarify/output/user_preferences.md index aed7476..57c9732 100644 --- a/workflows/scan-watchlist-for-equities/stages/00_clarify/output/user_preferences.md +++ b/workflows/scan-watchlist-for-equities/stages/00_clarify/output/user_preferences.md @@ -1,28 +1,28 @@ -# Scan Preferences — run 2026-08-18 (Tue) morning, ~8:03 AM ET (pre-market) +# Scan Preferences — run 2026-08-18 (Tue) evening, ~8:25 PM ET (post-close) -## Config (confirmed by operator 2026-08-18 ~8:03 AM ET) +## Config (operator instruction 2026-08-18 ~8:25 PM ET) -1. **Bias:** both — long + short setups. Operator clarified "both" = **single-leg calls and single-leg puts** in the options evaluation. -2. **Time horizon:** shortest DTE possible = **0DTE — expiring today, Tue 2026-08-18** (pre-market run; market opens 9:30 AM ET, ~1.5h to regular open). +1. **Bias:** LONGS ONLY (operator-specified). +2. **Time horizon:** Day/swing holds — post-close run, so all plans target the **next session (Wed 2026-08-19)**. Intraday-0DTE framing from the morning run does not apply to an equity-only, post-close scan. (Inferred from run timing — operator did not state a horizon.) 3. **Asset class focus:** Equities only (both list members are equities; no ETFs in this list). -4. **Watchlist file:** `260818.csv` (2 tickers) +4. **Watchlist file:** `260818.csv` (2 tickers) — operator wrote "26018.csv", resolved to the existing `260818.csv`. ## Tickers (2) | Ticker | Type | |--------|------| -| XOS | equity | -| AMLX | equity | +| XOS | equity (micro-cap, ~$29.7M mkt cap) | +| AMLX | equity (mid-cap pharma, ~$2.3B mkt cap) | ## Standing preferences carried from memory - -- Near-50MA confluence: tickers within ~1% of 50MA flagged as strong confluence (broad filter uses ~3% per stage design). -- Options structure this run: **single-leg calls AND single-leg puts** (operator override of the usual credit-spread preference). -- Bid-ask spread ≤ $0.25 preferred for 0DTE scalps; avoid wide-spread strikes. -- VWAP is the standard intraday reference; pullbacks to VWAP in rising action = long trigger; rejection into resistance = short trigger. +- VWAP is the standard intraday reference; pullbacks to VWAP in rising action = long trigger. +- Near-50MA confluence: tickers within ~1% of 50MA flagged as strong confluence (neither applies today — both gapped far above all MAs). - Multi-target exits (T1/T2/T3) with partials; stop-tighten as targets hit. - User polls for progress — keep status updates visible between stages. +## This run is equity-only +Per this workspace's stage specs (options work removed 2026-08-18), **no options evaluation** — no chain pulls, no strikes, no DTE work. Plans are single-instrument equity entries only. + ## Notes -- Pre-market run: daily structure from completed prior sessions (Aug 17 close); intraday VWAP/orange-range setup will form at the 9:30 open. Plans should specify pre-market entries where quotes allow, plus open-auction triggers. +- Post-close run: all daily data is final for Tue 8/18. After-hours quotes captured at ~8:00–8:25 PM ET. - List ≤15 → stage 01 passes full list through unchanged (no triage cut). diff --git a/workflows/scan-watchlist-for-equities/stages/01_broad_filter/output/shortlist.md b/workflows/scan-watchlist-for-equities/stages/01_broad_filter/output/shortlist.md index 39ec89b..a9eb4fd 100644 --- a/workflows/scan-watchlist-for-equities/stages/01_broad_filter/output/shortlist.md +++ b/workflows/scan-watchlist-for-equities/stages/01_broad_filter/output/shortlist.md @@ -1,50 +1,46 @@ -# Broad Filter Output (Shortlist) — run 2026-08-18 (Tue) +# Broad Filter Output (Shortlist) — run 2026-08-18 (Tue) evening, ~8:25 PM ET (post-close) Input: `shared/260818.csv` → **XOS, AMLX** (2 tickers). List ≤ 15 → per workflow rule, **skip triage; full list passes through unchanged**. -Data as of 8:10–8:14 AM ET, 2026-08-18, pre-market (`market_status: early_trading`). All data TTG MCP only. +Data as of Tue 8/18 close + AH through ~8:20 PM ET. All data TTG MCP only (`stocks_snapshot_ticker`, `stocks_aggs_custom_bars`, `calculate_support_resistance`) + Benzinga news for catalysts. -## Market regime (SPY/QQQ) +## Market regime (SPY/QQQ, Tue 8/18 close) -| Ticker | PM price | Chg vs prev close | PM VWAP | Notes | -|---|---|---|---|---| -| SPY | 769.48 | **−0.41%** (prev 772.67) | 774.17 | PM range 772.51–776.78 | -| QQQ | 721.61 | **−1.13%** (prev 729.87) | 731.74 | PM range 729.27–734.58 | +| Ticker | Close | Chg | Day O/H/L/C | VWAP | Volume | AH | +|---|---|---|---|---|---|---| +| SPY | 767.45 | **−0.68%** | 768.70 / 769.50 / 766.92 | 768.52 | 43.9M (vs 34.4M prev — above avg) | 767.02 (−0.05%) | +| QQQ | 717.51 | **−1.88%** | 720.21 / 722.13 / 715.92 | 719.73 | 49.0M (vs 26.5M prev — ~1.85x) | 716.18 (−0.19%) | -**Regime: risk-off pre-market, tech-led** (QQQ ~2.7x SPY's decline). Idiosyncratic gappers in the watchlist = relative strength into a weak tape. +**Regime: risk-off, tech-led.** Both indices closed below VWAP on above-average volume — sellers in control; QQQ down ~2.8x SPY. AH quiet. Context for Wed 8/19: any new long in this list is fighting a weak tape — entry triggers must be conditional, not blind. ## Watchlist snapshot -| Ticker | Name | PM price | Chg | Prev close | AH chg | PM VWAP | PM bid/ask | PM/AH vol | Regime fit | -|---|---|---|---|---|---|---|---|---|---| -| XOS | Xos, Inc. | 4.6682 | **+123.35%** | 2.09 | +87.08% (→~3.90) | 3.7622 | 4.66/4.67 ($0.01) | **28.0M shares** (normal ~0.1–0.5M) | Extreme relative strength | -| AMLX | Amylyx Pharma | 27.46 (→28.14 by 8:14) | **+28.12%** | 21.43 | +14.28% (→~24.5) | 22.3694 | 27.45/27.60 ($0.15) | 1.27M (8/17 reg sess; last-min PM 42.4K sh) | Strong relative strength | +| Ticker | Close | Chg | Day O/H/L/C | VWAP | Volume | AH last | AH chg | Regime fit | +|---|---|---|---|---|---|---|---|---| +| XOS | 4.44 | **+96.65%** | 4.53 / 4.95 / 4.01 | 4.4281 (reg-sess 4.35) | **110.1M sh** (~4x mkt cap) | 4.11 | **−7.4%** | Extreme idiosyncratic strength, fading AH | +| AMLX | 35.11 | **+63.42%** | 29.91 / 35.39 / 28.00 | 31.4446 (reg-sess 31.97) | **24.0M sh** (19x prev) | 35.02 | −0.3% | Extreme idiosyncratic strength, held AH | -## Catalyst check (Benzinga, via ttg-benzinga `benzinga_news`) +## Catalyst check (Benzinga, `benzinga_news`, Tue 8/18) -- **XOS** — First US Air Force contract: prototype OTA for a deployable mobile battery-energy-storage / EV-charging solution, announced Monday 8/17 after close. AH +86.6% → $3.90, continued to $4.67+ PM. Micro-cap ($29.7M mkt cap). [Xos (XOS) Stock Rallies Over 86% After Hours, 6:04 ET] -- **AMLX** — Phase 3 LUCIDITY topline results **announced 8:00 AM ET today: MET primary endpoint** (55% reduction in L2/L3 hypoglycemic events vs placebo, p=0.000003), all secondary endpoints met, NDA planned by year-end, Breakthrough Therapy designation. Halted 6:55:57 AM ET, resumed 7:25 AM ET. [11:08 UTC headline] +- **XOS** — First US Air Force contract (prototype OTA for deployable mobile battery-energy-storage / EV-charging solution), announced Mon 8/17 after close. 8 articles today, **nothing new after 1:05 PM ET** — no after-close offering/financing news found. Micro-cap (~$29.7M mkt cap). +- **AMLX** — Phase 3 LUCIDITY topline 8:00 AM ET: **MET primary endpoint** (55% reduction in L2/L3 hypoglycemic events, p=0.000003), all secondary endpoints met, NDA planned by year-end, Breakthrough Therapy. Halted 6:55 AM, resumed 7:25 AM. **1:37 PM ET: HC Wainwright maintains Buy, PT raised $34 → $55.** ⚠️ **4:02 PM ET (after close): announces $350M common stock offering** — at ~$2.3B mkt cap that is ~15% dilution; price/terms not yet in the feed. This is the single most important Wed variable for this name. -## Daily structure (54 daily bars each, TTG `stocks_aggs_custom_bars`) +## Daily structure (TTG bars + `calculate_support_resistance` daily) -| Ticker | Last close (8/17) | MA20 | MA50 | 54d high / low | Structure read | -|---|---|---|---|---|---| -| XOS | 2.09 | 2.33 | 2.73 | 8.27 (6/3 IPO) / 1.85 (8/14) | Post-IPO downtrend base 1.85–2.75 → +123% gap **through** all structure; extended, not MA-confluent. June supply zones: 3.58–4.64, 5.20–5.48, 6.20 | -| AMLX | 21.43 | 20.91 | 18.29 | 24.60 (8/7 ATH) / 12.62 (7/1) | Multi-month uptrend → PM 27.5–28.1 = **new all-time high breakout**, trend-aligned, extended above MAs | +| Ticker | Structure | Key levels | +|---|---|---| +| XOS | 6/3 IPO (8.27 high) → downtrend → 1.85 low (8/14) → 3-week base 1.85–2.75 → today +97% gap **through** all structure, close 4.44 = **inside June supply zone 3.58–4.64** | Daily S: 3.04 (3t), 2.70 (3t), 2.11 (4t). Daily R: 8.27. Today: PDH 4.95 / PDL 4.01. June supply above: 5.20–5.48 | +| AMLX | Multi-month uptrend 12.44 (7/1) → 24.60 (8/7 ATH) → pullback 21.28 (8/17) → today +63% **new ATH 35.39**, close 35.11 (99.2% of high) | Daily S: 17.00 (3t), 12.44. Old ATH 24.60 now far below. Open gap 21.43–28.00 wide open. PDH 35.39 (ATH) / PDL 28.00 | -## Options availability (the "shortest DTE" question, answered) +## Intraday S/R (TTG `calculate_support_resistance`, 3-min, Tue 8/18) -| Ticker | 0DTE (8/18) | Nearest listed exp | Detail | -|---|---|---|---| -| XOS | **Does not exist — no listed options at all** (full chain query empty) | n/a | **Equity-only** for this run | -| AMLX | Empty for 8/18 | **2026-08-21 (Fri) = 1 DTE** | Strikes $1 apart. 8/21 OI around money: calls 20C/361, 28C/194, 33C/178, 35C/101, 40C/104; puts 21P/93, 24P/19, 25P/14 — **zero put OI above 25P**. All quotes 0/0 until 9:30 open. | - -**Operator config "shortest DTE possible": XOS = equity only (no options market). AMLX = 8/21 weekly (1 DTE) — that is the shortest DTE that exists for this name.** +- **XOS** — Resistance (heavy congestion): 4.25 (10t), 4.30 (13t), 4.32 (10t), 4.59, 4.73; today's PDH 4.95. Support: 4.01 (PDL). Pre-market opening range 3.33–3.89. **AH price 4.11 = below the 4.25–4.32 congestion, testing 4.01 from below.** +- **AMLX** — Late-day support cluster: 35.02 (48t), 34.90 (28t); resistance 35.09 (4t), 35.39 (ATH), 36.33 (AH high, 4:12 PM). Morning congestion (now support if pulled back to): 33.26 (17t), 33.53 (20t). Reg-sess low 28.00. ## Shortlist (pass-through, unchanged) -1. **XOS** — equity long/short only -2. **AMLX** — single-leg calls and puts on 8/21 weekly + equity +1. **XOS** — equity long only (catalyst: Air Force contract) +2. **AMLX** — equity long only (catalysts: LUCIDITY Phase 3 + $350M offering overhang) Both pass to Stage 02. Nothing excluded. diff --git a/workflows/scan-watchlist-for-equities/stages/02_confluence_analysis/output/confluence_analysis.md b/workflows/scan-watchlist-for-equities/stages/02_confluence_analysis/output/confluence_analysis.md index 1d69928..cbd9f9e 100644 --- a/workflows/scan-watchlist-for-equities/stages/02_confluence_analysis/output/confluence_analysis.md +++ b/workflows/scan-watchlist-for-equities/stages/02_confluence_analysis/output/confluence_analysis.md @@ -1,51 +1,61 @@ -# Confluence Analysis — run 2026-08-18 (Tue) +# Confluence Analysis — run 2026-08-18 (Tue) evening, ~8:25 PM ET (post-close) -As of 8:25 AM ET pre-market. All data TTG MCP (ttg-stocks, ttg-options, ttg-benzinga). -Operator config: **single-leg calls AND single-leg puts, shortest DTE possible, equities**. - -Confluence dimensions per ticker: (1) catalyst strength/verifiability, (2) daily structure, (3) pre-market/gap structure, (4) volume confirmation, (5) options availability + liquidity, (6) relative strength vs tape. +Factors evaluated per workspace spec (equity-only): 1) daily structure, 2) intraday setup, 3) volume, 4) relative strength. +Bias: **longs only**. All data from stage 01 (`shortlist.md`) — no re-pulls. --- -## 1. AMLX — Amylyx Pharmaceuticals (score 5/6) — TOP SETUP +## XOS (Xos, Inc.) — LONG candidate, HIGH RISK -**Catalyst (✓✓):** Phase 3 LUCIDITY (avexitide, post-bariatric hypoglycemia) topline announced 8:00 AM ET today — **primary endpoint MET: 55% reduction in composite L2/L3 hypoglycemic events vs placebo, p=0.000003; all secondary endpoints met (SMBG, CGM, L3); well-tolerated; NDA planned by year-end; Breakthrough Therapy designation.** This is the strongest category of catalyst (confirmed data pass with path to filing), not a rumor or contract-terms-not-disclosed story. +### 1. Daily chart structure — NEGATIVE / mixed +- Post-IPO downtrend base (1.85–2.75, ~3 weeks) launched +97% into **June supply 3.58–4.64**; close 4.44 sits mid-supply, not at a clean level. +- No MA confluence — price is far above every moving average (extended, not confluent). +- First real test of the 4.64 upper supply edge came at 4.95 (10:57) and was sold. +- If it bases here, 4.64–4.95 is the resistance that defines the setup; below, 4.01 (PDL) is the floor of today's range. -**Daily structure (✓):** Multi-month uptrend 12.62 (7/1 low) → 24.60 (8/7 prior ATH) → PM 27.5–28.1 = **new all-time high breakout**. Above MA20 (20.91) by +31% and MA50 (18.29) by +53% — extended, but every day since 8/1 has closed higher or flat; trend-aligned, no overhead structure between PM price and open air. Extension is a risk, not a confluence (fails the user's ~1%-of-50MA filter — noted honestly: this is a breakout play, not a 50MA confluence play). +### 2. Intraday setup — MIXED (fading) +- PM: 3.88 → 5.38 (7:15 AM) → open 4.53. Reg session: low **4.01 @ 10:24** (gap ~70% filled), high **4.95 @ 10:57**, close **4.44** — a full day of distribution after the spike: open high → low → bounce → drift. +- Closed just above reg-sess VWAP (4.44 vs 4.35) but **below all-day VWAP 4.4281? No — 4.44 > 4.4281, barely above**. Effectively closed at VWAP, far off the high (−10.5%). +- **AH: 4.45 → 4.80 (6:00 PM) → 4.11 (7:57 PM), low 4.06. AH −7.4%**, testing 4.01 (PDL) from below. Below the 4.25–4.32 heavy 3-min congestion (10–13 touches). +- Long trigger (Wed): PM/open **holds 4.01 and reclaims 4.25–4.32** on volume, or a 4.01–4.10 shelf that stops bleeding. Without that, no entry. -**Pre-market structure (✓):** +28.1% PM. Halted 6:55:57 AM ET on news, resumed 7:25 AM. PM VWAP 22.37 ≈ 8/17 regular-session VWAP (22.37) = first support confluence; prior ATH 24.60 = second support. Price (28.14 at 8:14) is well above PM VWAP = buying on strength, not a gap-fill setup. +### 3. Volume — NEGATIVE lean +- **110.1M shares on a ~$29.7M mkt cap ≈ 4x market cap in one day.** Front-loaded: 14.4M in 9:00 hr, 12.0M in 10:00 hr, decay to 2.7–2.8M midday, 5.2M in 15:00 hr. +- The fade from 4.95 to 4.44 on that volume + AH bleed reads as **supply/distribution into the June zone**, not quiet accumulation. -**Volume (✓ with caveat):** 8/17 regular session 1.27M sh (above its 0.8–2M normal, below its 3.5M data-day level of 8/6). PM tape: 42.4K sh in the last minute alone. No full PM volume total in the snapshot — flagged; expect 3–5M+ on the open given the data day. +### 4. Relative strength — EXTREME (catalyst-driven) +- +96.65% on a day SPY −0.68% / QQQ −1.88%. Pure idiosyncratic (first Air Force contract). No sector peer to compare; the tape is not helping it. -**Options (◐):** Shortest DTE = **8/21 weekly (1 DTE)** — no 0DTE exists for AMLX. 8/21 OI: **28C 194, 33C 178, 35C 101, 20C 361** (liquid call side); puts: **21P 93, 24P 19, 25P 14, zero OI above 25P** (put side thin — a single-leg put only works at ≤25P or 21P). All quotes 0/0 pre-market — **bid-ask ≤ $0.25 screen must be verified at the 9:30 open** before any option entry. - -**Relative strength (✓✓):** QQQ −1.13% / SPY −0.41% PM vs AMLX +28% — fully idiosyncratic strength in a risk-off tape. - -**Verdict:** Long-bias, calls primary. Put plan is a low-conviction fade of a data beat — presented per "both" config but explicitly ranked low. +**Confluence: 2.5 / 4** — RS extreme, intraday neutral-fading, daily structure mid-supply, volume distributional. Viable only as a high-risk conditional long (see stage 03). --- -## 2. XOS — Xos, Inc. (score 4.5/6) +## AMLX (Amylyx Pharma) — LONG candidate, PRIMARY -**Catalyst (✓✓ real, ◐ size-unknown):** First-ever US Air Force contract — prototype OTA (Other Transaction Agreement) for deployable mobile charging / battery energy storage for electrified support equipment. **Terms not disclosed** (prototype OTA = smaller, non-binding-style award vs a full contract). Announced 8/17 AH. Real strategic catalyst for a $29.7M mkt-cap EV-truck company, but magnitude is unquantified — size the position accordingly. +### 1. Daily chart structure — POSITIVE +- Multi-month uptrend (12.44 → 24.60 ATH 8/7), orderly pullback to 21.28 (8/17), then +63% **new ATH 35.39**. Trend-aligned break, not an extended chase — the prior structure was broken *yesterday-to-today*, with the close at 99.2% of the high. +- 24.60 (old ATH) and the 21.43–28.00 gap are now far below; first real supports for a pullback are the 33.26–33.53 morning congestion and the 28.00 low. -**Daily structure (◐):** Post-IPO downtrend since 6/3 (8.27 high → 1.85 low on 8/14); +123% PM gap reclaims the entire base. **Not** MA-confluent (71% above MA50 2.73, 101% above MA20 2.33). Overhead supply from the June breakdown: **3.58–4.64 zone (heavy volume), 5.20–5.48, 6.20–8.27**. PM price 4.67 has already re-entered the top of the June supply zone — that's resistance, not open air (the key structural difference vs AMLX). +### 2. Intraday setup — POSITIVE (textbook for a long) +- Open 29.91 (gap +39%), **one probe to 28.00 @ 9:42, then a clean all-day grind higher**; new high 15:33 (35.39), close 35.11. +- Close **+11.6% above reg-sess VWAP (31.97)** — the strongest possible VWAP relationship. Late-day effort: 15:00 hr volume 3.2M (highest of the afternoon) into the ATH. +- **AH: held 35.20 → tagged 36.33 (4:12 PM) → 35.02 (−0.3%)** — flat-to-firm in after-hours despite the 4:02 PM offering announcement (thin AH volume: 326K sh; reaction likely deferred to Wed PM/open). +- Wed long trigger: offer-priced action stabilizes — hold above 33.53 and/or reclaim 35.40 on volume. -**Pre-market structure (✓):** +123% from 2.09. AH cluster 3.90–3.91 = first support; PM VWAP 3.76 = second. Price 4.67 > PM VWAP = strength, but the gap from 2.09–2.16 is wide: gap-fill risk (3.38 midpoint, 2.16 full fill) is the standing threat on any dip. +### 3. Volume — POSITIVE in-session, NEGATIVE overhang +- 24.0M shares (19x prior day) with a close at the high = accumulation signature on the data print. +- **BUT the 4:02 PM ET $350M common stock offering (~15% of the ~$2.3B mkt cap) is a known supply event for Wed.** Price/terms not yet published at scan time. Expect gap-down risk to near the offering price, then a base. HC Wainwright PT $55 (1:37 PM) gives a post-offering valuation anchor. -**Volume (✓✓):** **28.0M shares** traded across 8/17 extended + 8/18 PM vs normal 100K–500K — 50–100x normal. The strongest volume confirmation of the day. +### 4. Relative strength — EXTREME +- +63.4% on a day healthcare +1.6%, tech −2.1%. Idiosyncratic (Phase 3 primary endpoint met). Held its gain while the tape sold off — the pattern of a real institutional move. -**Options (✗):** **No listed options exist for XOS** (full chain query empty). The "single-leg call/put, shortest DTE" config is **not executable for XOS** — equity only. This is a workflow fact, stated plainly. - -**Relative strength (✓✓):** +123% into a −1.13% QQQ tape. - -**Verdict:** Long-bias gap-and-go in equity (momentum entry or pullback to 4.20–4.50). Short variant = fade into 5.20–5.48 June supply — aggressive (fading first-contract micro-cap news), presented per config, ranked low. +**Confluence: 3 / 4** — daily trend-break + close-at-high, extreme RS, constructive intraday; volume factor split by the after-close offering. Best long of the list **if** Wed pricing of the offering is absorbed. --- -## Cross-cutting +## Ranking -- **Tape headwind:** risk-off PM (QQQ −1.13%) — both names hold up anyway = genuine idiosyncratic demand. Weak tape raises the chance of a post-open dip into both names' support zones (which is where the pullback entries live). -- **Liquidity check:** XOS spread $0.01 ✓, AMLX stock spread $0.15 ✓ (both ≤ $0.25). AMLX option quotes unknown until 9:30 — gated. -- **Halt risk:** AMLX halted 6:55–7:25 AM — first 15 min after open can be unstable (auction-driven). Enter AMLX options after the first 5-min bar closes, not in the opening print. -- **No 0DTE exists for either name** — the workflow's "shortest DTE" resolves to: XOS equity-only; AMLX 1-DTE (8/21). +| Rank | Ticker | Score | Read | +|---|---|---|---| +| 1 | AMLX | 3/4 | Primary long — ATH close, VWAP +11.6%, offering = defined Wed risk to manage | +| 2 | XOS | 2.5/4 | Conditional high-risk long — must hold 4.01 and reclaim 4.25–4.32; AH fade is the enemy | diff --git a/workflows/scan-watchlist-for-equities/stages/03_trade_plan/output/trade_plans.md b/workflows/scan-watchlist-for-equities/stages/03_trade_plan/output/trade_plans.md index 634ed42..d2e71ec 100644 --- a/workflows/scan-watchlist-for-equities/stages/03_trade_plan/output/trade_plans.md +++ b/workflows/scan-watchlist-for-equities/stages/03_trade_plan/output/trade_plans.md @@ -1,83 +1,45 @@ -# Trade Plans — run 2026-08-18 (Tue) +# Trade Plans — run 2026-08-18 (Tue) evening, ~8:30 PM ET (post-close) -Config: **single-leg calls AND single-leg puts, shortest DTE possible, equities.** -Shortest-DTE resolution: **XOS has no listed options (equity only). AMLX nearest = 8/21 Friday weekly (1 DTE).** -All quotes TTG MCP, pre-market 8:10–8:33 AM ET. Option bid/ask = 0/0 until 9:30 — **every option entry is gated on a live quote with spread ≤ $0.25 at/after the open.** - -Ranks: ★ conviction, 5 = highest. +Config: **longs only, equities only** (no options work per workspace spec). All plans target **Wed 2026-08-19**. +Levels from stage 02 confluence analysis (TTG MCP data, Tue 8/18 close + AH). --- -## PLAN 1 — AMLX 8/21/26 28C (long single-leg call) ★★★★★ — PRIMARY +## Plan 1 — AMLX (PRIMARY) -| Field | Value | -|---|---| -| Instrument | AMLX 2026-08-21 Call 28.00 (OI 194 — most liquid ATM strike) | -| Side / structure | Buy to open, **single-leg**, 1 DTE | -| Thesis | Confirmed Phase 3 LUCIDITY pass (55% reduction, p=0.000003, all secondary endpoints, NDA by year-end, Breakthrough Therapy) + new-ATH breakout + relative strength into a −1.13% QQQ tape. IV event already happened — residual risk is stock price, not event. | -| Entry trigger | After the **first 5-min bar closes (~9:35 ET)**: AMLX ≥ **$27.00** (holds above prior ATH 24.60 and PM VWAP 22.37) **and** 28C spread ≤ $0.25. Do NOT buy the opening print (name halted 6:55–7:25 AM; auction unstable). | -| Alt strike | 33C (OI 178) if 28C premium too wide — higher beta, needs AMLX ~+18% by Friday. | -| Invalidation (stop) | 5-min close < **$24.50** (prior ATH) → exit. **Time stop:** 11:00 ET, AMLX < $26.00 → exit (1 DTE theta ramps hard post-lunch). | -| T1 | Option +50% → sell ½ | -| T2 | Option +100% → sell ½ of remainder | -| T3 | Trail remainder on 5-min structure through 2:30 PM; if AMLX > $30 at 2:30, can hold to Friday expiry (NDA narrative) | -| Risk note | New-ATH + 28% extended move = chase risk; the $24.50 invalidation is the whole trade. If AMLX opens < $26, skip the plan entirely. | +**Symbol:** AMLX (Amylyx Pharma) — equity long +**Side:** Long +**Thesis:** Phase 3 LUCIDITY winner — new ATH 35.39, closed 99.2% of high at +11.6% above VWAP, 19x volume, held after-hours. Wed risk is the after-close **$350M common offering (~15% dilution; price/terms pending at scan time)** — enter only on evidence it's being absorbed, never blind into the open. +**Entry zone (conditional, two triggers):** +- **T-A (preferred):** Wed PM/open stabilizes **above 33.53** (Tue morning congestion 33.26–33.53, 17–20 touches) and builds — bid the 33.53–34.20 zone, no chasing above 34.50. +- **T-B (stronger):** reclaim of **35.40** (Tue PDH/ATH) on volume → enter on the reclaim, offering absorbed. +- Skip entirely if: offering prints below ~$33 (deep discount) or Wed opens below 33.26. +**Stop:** **32.50** (below the 33.26–33.53 congestion cluster; from T-A entry ≈ −2.5 to −5%, from T-B entry ≈ −8%) +**Targets:** T1 **35.40** (PDH retest — take 1/3) · T2 **36.35** (Tue AH high) · T3 **37.50** (measured move off Tue range 28.00→35.39 from the open) +**Time horizon:** Day/swing — scale out by Fri if T3 not reached; holding over the offering's settlement week requires T1 hit or price > 35.40. +**Rationale (confluence):** trend-aligned daily break (new ATH) + close-at-high intraday + extreme relative strength (+63.4% vs health care +1.6%) + late-day volume effort. +**Invalidation:** Wed print below **33.26** = congestion failed, offering discount too deep — thesis dead, no entry. Broader biotech tape gap-down > 3% also voids T-A. +**Size note:** half normal size — dilution overhang + $2.3B name in a risk-off tape. --- -## PLAN 2 — AMLX 8/21/26 24P (long single-leg put) ★☆☆☆☆ — CONDITIONAL ONLY +## Plan 2 — XOS (SECONDARY, HIGH RISK, CONDITIONAL) -| Field | Value | -|---|---| -| Instrument | AMLX 2026-08-21 Put 24.00 (OI 19 — thin; size small). Alt: 21P (OI 93, deep OTM, only works on a violent reversal). | -| Side / structure | Buy to open, single-leg, 1 DTE | -| Thesis | Sell-the-news rejection at all-time highs after a +28% PM: fade toward PM VWAP 22.37 / old ATH 24.60. | -| Entry trigger | **Conditional:** AMLX opens **≥ $29.50** AND fails to print a new high within 15 min of the open (lower 15-min high on the 5-min) AND 24P spread ≤ $0.25. Otherwise the plan does not exist. | -| Invalidation (stop) | 5-min close above the **opening print** (reclaim of PM-high momentum) → exit. Time stop 11:30 ET if AMLX still > $26.50. | -| T1 | AMLX $26.00 → sell ½ | -| T2 | AMLX $24.60 (prior ATH) → sell ½ of remainder | -| T3 | AMLX $23.60 / trail | -| Risk note | **Counter-trend fade of a confirmed data beat — low conviction by construction.** Included to complete the "calls and puts" config; expect it to lose in the base case. If you only take one AMLX side, it's the call. | +**Symbol:** XOS (Xos, Inc.) — equity long +**Side:** Long +**Thesis:** First Air Force contract, +97% day — but closed mid-June-supply (3.58–4.64) after a distributional fade (4.95 → 4.44) and bled AH to 4.11 (−7.4%), testing 4.01. Only tradeable if the low holds and the tape reclaims congestion. +**Entry zone (conditional, two triggers):** +- **T-A:** Wed PM/open **holds 4.01** (Tue PDL) and reclaims **4.25–4.32** (10–13 touch 3-min congestion) on volume → bid 4.30–4.35. +- **T-B:** clean 4.01–4.10 shelf that stops bleeding (two+ failed lower tests) → enter off the shelf. +- Skip entirely if: AH/PM breaks 4.01 before any trigger (gap retrace toward 3.58 = thesis dead). +**Stop:** **3.85** (below 4.01 PDL; from 4.30 entry ≈ −10% — micro-cap stop; position size must be small, not the stop) +**Targets:** T1 **4.51** (VWAP cluster 4.43–4.51, 1/3) · T2 **4.95** (Tue PDH, 1/3) · T3 **5.25** (Tue PM high zone 5.25–5.38, balance) +**Time horizon:** Day/swing — if T1 unhit by Wed 2 PM, trim to starter size or out; do not hold a broken micro-cap overnight. +**Rationale (confluence):** extreme relative strength (+96.65% vs SPY −0.68%) + closed at reg-sess VWAP; offset by mid-supply daily location and 4x-mkt-cap distribution volume. +**Invalidation:** loss of **4.01** = the entire setup. One break, gone. +**Size note:** smallest size of the list — $29.7M mkt cap, 110M shares traded, wide AH spreads (4.10/4.11, but PM book was 4.66/4.67 at $0.01 — verify quotes at entry). --- -## PLAN 3 — XOS equity long (gap-and-go) ★★★★☆ - -| Field | Value | -|---|---| -| Instrument | **XOS common stock — equity only (no options market exists for this name)** | -| Side / structure | Long, intraday | -| Thesis | First-ever USAF contract (prototype OTA, terms undisclosed) + 28M-shr pre-market/AH volume (50–100x normal) + PM already reclaimed the top of the June supply zone (4.64). Micro-cap $29.7M mkt cap → violent both ways. | -| Entry A (pullback) | **$4.20–4.50** fill zone (above PM VWAP 3.76 and AH cluster 3.90), only if 5-min bars hold ≥ $4.00 | -| Entry B (momentum) | 5-min close > **$4.80** on expanding volume | -| Invalidation (stop) | 5-min close < **$3.90** (AH cluster) → out. Hard stop from Entry A: $3.85 (−14%); from Entry B use $4.15 (−13%) or the 3.90 rule, whichever is tighter | -| T1 | **$5.00** round → sell ⅓ | -| T2 | **$5.20–5.48** (June supply: 6/8 high 5.20, 6/5 high 5.48) → sell ⅓ | -| T3 | **$6.20** (June high) or trail on 5-min structure into the close | -| Risk note | OTA terms not disclosed → catalyst magnitude unknown; size for a micro-cap. Wide stop is structural here — halve position size vs a normal stop distance. Gap-fill (3.38 midpoint) is the failure mode; the 3.90 invalidation guards it. | - ---- - -## PLAN 4 — XOS equity short (fade the pop) ★★☆☆☆ — CONDITIONAL ONLY - -| Field | Value | -|---|---| -| Instrument | XOS common stock (equity only) | -| Side / structure | Short, intraday | -| Thesis | Fade into the June breakdown supply **$5.20–5.50** (5.48 = 6/5 high; 5.20 = 6/8 high) — the first real overhead wall after open air. | -| Entry trigger | **Conditional:** rejection wick into $5.20–5.50 (15-min high-lower-high on the 5-min + volume contraction). No entry on the first touch — needs a visible rejection. | -| Invalidation (stop) | 5-min close > **$5.75** → out (first supply shelf broken = open air to 6.20/8.27) | -| T1 | $4.67 (PM area / round) → cover ⅓ | -| T2 | $4.00 → cover ⅓ | -| T3 | $3.90 (AH cluster) / trail | -| Risk note | Fading a first-contract micro-cap on real government news is a counter-current trade — take only with a clean rejection signal, and never average a loser here. | - ---- - -## Execution gates (all plans) - -1. 9:30 open: verify AMLX option quotes live (bid/ask, ≤ $0.25) before Plan 1/2 entries — pre-market quotes are 0/0 and meaningless. -2. Do not enter AMLX in the first 5 minutes (halt history 6:55→7:25 AM). -3. Market is risk-off (SPY −0.41%, QQQ −1.13%): pullback entries (Plan 1 trigger ≥27.00, Plan 3 Entry A) are the higher-probability fills; momentum entries only on strength confirmation. -4. One position per name at a time. If Plan 1 (AMLX call) and Plan 2 (AMLX put) conditions ever both appear — they won't; they are mutually exclusive by design. -5. Nothing here is a recorded plan — per workflow, plans become binding only if the operator picks one and we record it via the trade-workflow. +## Sizing rule (both plans) +Risk-based: fix risk per trade first (e.g., $250–500), derive share count from entry→stop distance. AMLX T-A: (33.53−32.50) ≈ $1.03/sh risk. XOS T-A: (4.30−3.85) = $0.45/sh risk but treat max position as half of AMLX's dollar risk. diff --git a/workflows/scan-watchlist-for-equities/stages/04_summary_card/output/summary_card.md b/workflows/scan-watchlist-for-equities/stages/04_summary_card/output/summary_card.md index c62780e..93a1eb2 100644 --- a/workflows/scan-watchlist-for-equities/stages/04_summary_card/output/summary_card.md +++ b/workflows/scan-watchlist-for-equities/stages/04_summary_card/output/summary_card.md @@ -1,37 +1,30 @@ -# Summary Card — scan-watchlist run 2026-08-18 (Tue) +# Summary Card — Watchlist Confluence Scan (Equities) +**Run:** 2026-08-18 (Tue) ~8:30 PM ET, post-close · **Bias:** longs only · **Watchlist:** `260818.csv` (XOS, AMLX) · **Target session:** Wed 2026-08-19 -**Input:** XOS, AMLX (260818.csv) · **Config:** single-leg calls AND puts, shortest DTE, equities · **Data as of:** ~8:33 AM ET pre-market (TTG MCP only) +**Tape context:** SPY −0.68% / QQQ −1.88%, both closed below VWAP on above-average volume — risk-off, tech-led. AH calm. Longs are fighting the tape; all entries below are conditional. -## One-liner -Both watchlist names gapped up hard on confirmed catalysts into a risk-off tape (QQQ −1.13%): **AMLX passed its Phase 3 LUCIDITY trial** (55% reduction, p=0.000003, NDA by year-end) and **XOS landed its first USAF contract** (prototype OTA, terms undisclosed). +--- -## ⚠️ The "shortest DTE" answer (important) -- **XOS: no options market exists at all** → equity-only plans. -- **AMLX: no 0DTE — shortest listed exp is 8/21 Friday (1 DTE).** Plans built on that weekly. +## 1) AMLX — LONG · Confluence 3/4 · Risk: MEDIUM +- **Setup:** Phase 3 data break — new ATH 35.39, closed at 99.2% of high, +11.6% above VWAP, 19x volume; held AH at 35.02. +- **Entry:** A) 33.53–34.20 if Wed holds above 33.53 · B) reclaim 35.40 on volume. **Skip if offering prints < ~$33 or open < 33.26.** +- **Stop:** 32.50 · **Targets:** 35.40 / 36.35 / 37.50 (thirds, tighten after T1) +- **Confluence aligned:** trend-aligned daily break · close-at-high intraday · extreme RS (+63.4% vs HC +1.6%) +- **Key risk:** after-close **$350M stock offering (~15% dilution**, price pending) — half size. HC Wainwright PT $55 = post-offering anchor. -## Ranked setups +## 2) XOS — LONG (conditional) · Confluence 2.5/4 · Risk: HIGH +- **Setup:** Air Force contract gap-up +96.7%, but faded 4.95 → 4.44 into June supply (3.58–4.64), AH −7.4% to 4.11 testing 4.01. +- **Entry:** A) hold 4.01 + reclaim 4.25–4.32 on volume → bid 4.30–4.35 · B) 4.01–4.10 shelf holds. **Skip if 4.01 breaks before any trigger.** +- **Stop:** 3.85 · **Targets:** 4.51 / 4.95 / 5.25 (thirds) +- **Confluence aligned:** extreme RS (+96.7% vs SPY −0.68%) · closed at VWAP +- **Key risk:** 110M sh ≈ 4x mkt cap = distribution into supply; $29.7M micro-cap. Smallest size. -| # | Setup | Instrument | Entry | Stop/invalidation | Targets | Conviction | -|---|---|---|---|---|---|---| -| 1 | **AMLX data-day long** | 8/21 **28C** (OI 194) | ≥ $27.00 after first 5-min bar, spread ≤ $0.25 | 5-min close < $24.50; or < $26 by 11:00 | opt +50% / +100% / trail | ★★★★★ | -| 2 | **XOS gap-and-go** | equity | A: $4.20–4.50 pullback (hold ≥ $4.00) · B: 5-min close > $4.80 | 5-min close < $3.90 | $5.00 / $5.20–5.48 / $6.20 | ★★★★☆ | -| 3 | **XOS fade** (conditional) | equity short | rejection into $5.20–5.50 only | 5-min close > $5.75 | $4.67 / $4.00 / $3.90 | ★★☆☆☆ | -| 4 | **AMLX sell-the-news** (conditional) | 8/21 **24P** (OI 19, thin) | opens ≥ $29.50 AND fails new-high within 15 min | reclaim of opening print | $26.00 / $24.60 / $23.60 | ★☆☆☆☆ | +--- -## Sitting on hands (not recommended today) -- **AMLX put as a first trade** — fading a confirmed Phase 3 beat is the lowest-probability side of the day; Plan 4 exists only for a visible open-rejection scenario. -- **XOS short without rejection** — first-contract micro-cap on real government news; no fading the first touch of 5.20–5.50. -- **Chasing either name if it opens extended past its trigger without the confirmation bar** — risk-off tape makes the pullback fills the better entries. +## Sitting on hands +- **None** — 2-ticker list; both carry conditional plans. (XOS is the one to walk away from fast: one break of 4.01 and it's off the board.) -## Key levels cheat-sheet -- **AMLX:** 28.14 PM last · 27.00 (entry gate) · 24.60 (old ATH = stop zone) · 22.37 (PM VWAP) · 21.43 (8/17 close) -- **XOS:** 4.67 PM · 3.90 (AH cluster = invalidation) · 3.76 (PM VWAP) · 5.20–5.48 (June supply) · 6.20 (June high) · 3.38 (gap midpoint, worst case) -- **Tape:** SPY 769.48 (−0.41%) · QQQ 721.61 (−1.13%) — risk-off backdrop - -## Execution gates -1. AMLX option quotes are 0/0 pre-market — **verify live spread ≤ $0.25 after 9:30** before any option entry. -2. No AMLX entry in the first 5 minutes (6:55–7:25 AM halt history). -3. XOS is equity-only — "single-leg call/put" is not executable for this name; say so if asked. -4. Nothing here is a recorded/binding plan — pick a plan and it gets recorded via the trade workflow first. - -**Stage artifacts:** `01_broad_filter/output/shortlist.md` · `02_confluence_analysis/output/confluence_analysis.md` · `03_trade_plan/output/trade_plans.md` · this card. +## Pre-open checklist (Wed 8/19) +1. **AMLX offering price/terms** (8-K/pricing announcement, likely pre-open) — the single most important input. +2. SPY/QQQ PM direction vs Tue's risk-off close. +3. XOS AH/PM: is 4.01 holding? diff --git a/xpon-squeeze-2026-08-24.md b/xpon-squeeze-2026-08-24.md new file mode 100644 index 0000000..a2a20b2 --- /dev/null +++ b/xpon-squeeze-2026-08-24.md @@ -0,0 +1,90 @@ +# XPON Short Squeeze — Premarket Signal Reconstruction (2026-08-24) + +## The Setup: What a Pre-Open Scanner Would Have Flagged + +### 1. Extreme Float Restriction +- **Free float: 10,684,515 shares** (93.4% of share class) +- **Total shares outstanding: ~962,335** (weighted: 953,191) +- **Market cap: $3.27M** — deep micro-cap +- **22 employees**, listed 2022-04-01, NASDAQ (XNAS) +- **1-for-12 reverse split** (effective ~2026 Q2) to regain Nasdaq compliance +- A ~$3.30M market cap with 10.7M free float = tiny tradable universe. Any meaningful buy-side interest moves the tape fast. + +### 2. 8/19 Volume Blowout — The "Accumulation Day" +| Metric | 8/19 (Thu) | Prior days (typical) | +|--------|-----------|---------------------| +| Close | $4.43 | $3.30–$3.74 | +| High | $4.90 | $3.30–$3.74 | +| Volume | **83,482 shares** | ~300–1,000 shares | +| $ Volume | $7.37M | <$5K | + +- Volume was **~80–250x** the prior 10-day average (~300–700 shares/day). +- Price went from a 3-week range of $3.18–$3.89 to a **$4.90 intraday high** — a break above the established range. +- Close at $4.43 held well above the prior range — this is an **accumulation/reversal bar**, not a failed spike. +- The 8/20–8/22 follow-through: volume stayed elevated (3.8K, 1K, 680) vs. the prior 1K baseline, and price held above $3.60 — confirming the 8/19 move wasn't a one-day fluke. + +### 3. Premarket 8/24: The Trigger +- **Pre-market high: $4.80** (09:24 ET, first 5-min bar: o:3.56 c:4.10 h:4.80 l:3.40, v:1,047,600) +- That's a **+8.5% gap** above the 8/23 close of $3.435. +- **Pre-market volume: ~1.94M shares in the first hour** (vs. 83K the prior full day) — **23x the prior day's total volume before the open**. +- The quote tape shows **bid/ask sizes at 100 shares** throughout pre-market — no institutional size was visible. This was **retail/momentum-driven**, not institutional. +- The 09:30 open printed at **$7.77** — a **126% gap** above prior close. The open was already 1.7x the premarket high. + +### 4. The Squeeze Mechanics (First 2 Hours) +| Time (ET) | Price | Volume | Notes | +|-----------|-------|--------|-------| +| 09:25 | 3.40 → 4.80 | 1.0M | Pre-market trigger | +| 09:30 | 4.10 → 5.88 | 4.4M | Open + first 5 min | +| 09:35 | 5.90 → 6.45 | 3.3M | Acceleration | +| 09:40 | 6.17 → 6.18 | 1.7M | Consolidation | +| 09:45 | 6.18 → 7.58 | 3.8M | Second wave | +| 09:50 | 7.58 → 8.64 | 3.4M | **High: $9.03** | +| 09:55 | 8.67 → 8.18 | 2.0M | First fade | +| 10:00 | 8.20 → 8.70 | 1.6M | Retest | +| 10:05 | 8.70 → 9.84 | 2.4M | **High: $9.99** | +| 10:10 | 9.83 → 8.45 | 2.1M | Sharp reversal | +| 10:15 | 8.43 → 8.18 | 0.7M | Consolidation | + +- **Intraday high: $9.99** (+191% from prior close) at ~10:05 AM ET +- **First 15 min volume: ~13M shares** — 150x the prior day's total +- The 10:05 high at $9.99 was a **psychological round number** — classic momentum exhaustion +- After 10:15, price faded to $6.31 by mid-morning (low of $6.31 at ~11:30) +- **Closed at $7.36** (+114% from prior close) — gave back ~26% of the gains + +### 5. Why Mike Edwards Would Have Flagged This + +A short-squeeze scanner (or discretionary premarket review) would have scored XPON high on: + +1. **Float size**: $3.3M market cap, 10.7M free float — one of the most restricted floats in the market +2. **Volume spike**: 8/19 was 80–250x normal — the "something changed" signal +3. **Price range break**: 8/19 broke the 3-week $3.18–$3.89 range with a $4.90 high +4. **Follow-through**: 8/20–8/22 held above the prior range with elevated volume +5. **Premarket gap**: +8.5% gap to $4.80 before the open — confirming momentum +6. **Premarket volume**: 1.94M shares pre-market = 23x prior day — "the market is paying attention" +7. **Thin liquidity**: 100-share bid/ask sizes = no institutional selling wall, retail/momentum can drive price +8. **Reverse split**: Fresh off a 1-for-12 reverse split — stock was recently reset, new float, new retail interest +9. **Nasdaq compliance regained**: The reverse split was to fix compliance — "clean bill of health" for short-sellers (reduced short borrow risk) +10. **No options market**: No listed options = no hedging mechanism for short-sellers → they can only cover + +### 6. What Went Wrong (Post-Open Fade) +- The 10:05 high at $9.99 was a **blow-off top** — no follow-through, sharp reversal +- $9.99 → $6.31 in ~90 minutes = **-37% from the high** +- The close at $7.36 held above the open ($7.77) — "strong" close for a +114% day, but gave back 26% +- **No fundamental catalyst**: Q2 revenue down 32% YoY, net loss, declining cash — this was pure momentum/squeeze, not a fundamental move +- The 8/19 volume spike may have been **positioning by a single entity or small group** rather than broad institutional interest + +### 7. Risk Assessment for a Pre-Open Entry +- **Entry**: ~$4.10 (first 5-min close) to ~$5.88 (end of first 5 min) +- **Target**: $9.99 (10:05 high) = +70% to +140% from entry +- **Stop**: $3.40 (pre-market low) = -17% to -42% risk +- **R:R at $4.10 entry**: 70%/17% = 4.1:1 (excellent) +- **R:R at $5.88 entry**: 70%/42% = 1.7:1 (marginal) +- **Risk**: Squeeze stocks can reverse 50%+ in minutes. The 10:05→10:10 fade was $9.84→$8.45 = -14% in 5 minutes. + +### 8. Key Takeaway +XPON was a **textbook micro-cap short squeeze setup**: +- Tiny float + volume spike + range break + premarket gap + thin liquidity +- The squeeze worked (191% intraday gain) but faded hard +- The **premarket signals were strong** — a scanner would have ranked this in the top 5-10 premarket names +- The **risk/reward was excellent** at pre-market prices but degraded fast once price ran +- **No fundamental catalyst** = the move was purely mechanical (short covering + momentum)