An AI-powered momentum scanner that finds setups on liquid US stocks, validates them with Claude, and runs them as a satellite sleeve on top of a core index position -- holding winners overnight with volatility-based risk.
Intraday momentum is measurable in real time. The edge isn't in predicting what a stock will do -- it's in recognizing when institutional buyers are already active and positioning alongside them.
We focus on measurable signals over narrative. Stocks gapping up on unusual volume, trading above institutional reference points, with volatility that justifies the risk -- that's the setup. No hallucinated catalysts, no FOMO, just the data.
The three pillars of the strategy are VWAP (where institutions are buying), RVOL (whether the volume is real), and ATR (how much risk each trade actually carries).
Phase 1
Premarket Scan
4:00 - 6:30 AM PT
Find stocks gapping up on unusual volume and queue them for the market open scan.
Phase 2
Market Execution
6:30 AM PT onward
Watch watchlist for VWAP setups (new entries until 11 AM PT). AI validates each signal; winners are held overnight and across days.
Phase 3
Daily Review
Market Close
AI reviews the day's trades and emails a written summary -- what worked, what didn't, and notes for the operator. Parameter changes stay manual.
We look for five setups. Each requires volume confirmation (RVOL), a healthy VWAP relationship, and recent buying pressure (no fading knife-catches). Pullback setups bid at VWAP; chase setups bid at the current price as a marketable limit.
Universe is filtered upstream of all setups: leveraged / inverse ETFs (TQQQ, SQQQ, SOXL, UVXY, etc.), volatility products, and stocks whose intraday ATR is too small to support a momentum entry are excluded automatically.
Strict superset of Gap & Go: bigger gap, higher RVOL. Catches the same shape but only when conviction is unambiguous, so the AI is more likely to approve and the trade is more likely to work.
The bread and butter. A stock gaps up significantly premarket on heavy volume, and we buy the first pullback to VWAP only if price is recovering.
Price was trending above VWAP, pulls back to test it, and bounces with volume. Confirms buyers are defending the level.
A sudden explosion in volume with price breaking the intraday high. High conviction when all conditions align.
A trending gapper that never offered a clean VWAP pullback. Catches the stocks that just keep grinding higher above VWAP. Lower confidence because we're chasing rather than buying the dip.
The account runs two sleeves. A core index position (default ~50% of equity in SPY) holds market beta and is bought-and-held, rebalanced only when it drifts out of band. The satellite is the momentum bot, trading the remaining capital.
The bot never touches the core symbol, and core P&L is excluded from the bot's scorecard. That makes the question we actually care about measurable: does the momentum sleeve add alpha on top of simply holding the index? The dashboard reports the bot sleeve, the whole account, and SPY side-by-side.
Risk management is where most strategies fail. A fixed percentage stop doesn't know if a stock typically moves 1% a day or 5% a day -- it gets stopped out by noise or sits too far away to protect you. We use volatility-based risk instead.
ATR-Based Sizing & Stops
Each trade risks a fixed percent of sleeve equity (default 0.5%), with the stop distance set by the stock's actual volatility (Average True Range). Volatile stocks get wider stops and fewer shares; calm stocks get tighter stops and more. Sizing is off equity/cash -- never on margin.
GTC Stop That Survives Overnight
Every open position carries a good-til-canceled stop at entry minus a multiple of ATR. The scan loop re-asserts it each cycle, so positions stay protected across the overnight gap, not just intraday.
Scale-Out Profit Taking
We sell half the position at the first profit target (1x ATR) and trail the rest. This locks in gains while letting winners run.
Multi-Day Max-Hold
Winners are held overnight and across days. A position that hasn't made meaningful progress after a few trading days is closed to free the capital. No new entries after 11:00 AM PT.
Daily Loss Kill-Switch (two-stage)
At 80% of the configured floor, the bot halts new entries. At 100%, it also force-closes the worst-performing open position so existing exposure can't keep bleeding past the limit.
Reconciliation with the Broker
An hourly cron pulls Alpaca's order history and reconciles it against our database: broker-side fills (stop / take-profit children) are captured, every row is stamped with its true fill status, never-filled orders are marked canceled, and prices are corrected to the actual fill. Realized P&L is then matched FIFO, so all downstream math runs on real fills -- only genuinely unexplained fills page the operator.
Operator Override
Admin dashboard exposes immediate controls without a redeploy: pause/resume the bot, force-close all positions, exclude any symbol from the scan loop. Changes take effect within one scan cycle.
Claude is integrated at every decision point, not as the decision-maker, but as a second opinion that catches what rules can't. A two-tier model split (Sonnet for trade-gating decisions, Haiku for prose tasks) keeps the cost low without losing quality where it matters.
News Analysis
Reads actual headlines from Finnhub for each premarket gapper. Keyword auto-rejects dilutions, downgrades, and investigations upstream. Claude classifies the rest as positive, neutral, or unknown.
Signal Validation
Reviews each signal before execution with bars, portfolio exposure, recent decisions on the symbol, cross-ticker lessons, and rolling stats for the matched setup type. Structurally losing setups (negative expectancy over a meaningful sample) are rejected deterministically before the AI call. Highest-conviction setups bypass AI entirely. Cooldown on recently-rejected symbols. Fails closed if Claude is unavailable -- no blind trades.
Memory & Lessons
After every closed position, Claude writes a 2-3 sentence prose lesson about what worked, what failed, and what to do differently next time. Future validations see three feedback channels: per-symbol reflections, advisory cross-ticker lessons, and rolling win rate / expectancy aggregated by setup type.
Trade Reasoning
After every trade, generates a plain-English explanation of why the bot acted, included in real-time email alerts.
Daily Review
At market close, reviews the day's trades and positions. Identifies what worked, what didn't, and highlights lessons for tomorrow. Emailed as a daily summary.
This bot runs on Alpaca's paper trading environment. No real money is at risk. Past performance of the strategy does not guarantee future results. This is not financial advice.