Mechanical · Deterministic · Fully Automated

Trade Momentum
by the Rules

AutoTrader scans IBKR in real time and trades one deterministic strategy — Runner Momentum. A configurable 5% LAST-price surge inside 5 seconds drives qualification; every entry, exit, and risk check is mechanical and configurable from the UI.

1
Mechanical Strategy
0
LLM Calls in Live Path
5s
Default Surge Window
20M
Default Maximum Float

See Every Screen

A PyQt6 desktop app you run on your own machine against your own IBKR account. Swipe through the real working surfaces — scanner, strategy config, analytics, and recording and replay.

From Scan to Trade, Mechanically

Every trade follows a deterministic 6-stage pipeline — no LLM and no discretion. Recorded sessions preserve the causal evidence used by replay and isolated what-if analysis.

📡
Scan Movers
📈
Detect 5s Surge
🏴
Apply Gates
🟢
Rank Strongest
🎯
Enter at Quote
Protect Profit
IBKR Scanner Multiple configured scan codes build the broad mover list before local Runner Momentum qualification
LAST-Price Surge Detects a configurable rise, default 5%, inside a rolling 5-second window
Price · Float · RVOL Requires $0.10–$10.00, known float at or below 20M, and RVOL at or above 2.0 by default
Deterministic Ranking The strongest qualifying surge wins the available slot; ties use timestamp then symbol
Fresh Executable Quote Automatic entry references a fresh broad ASK, with the qualifying LAST as a logged fallback
Fresh-BID Protection Initial stop, profit lock, and buyer-pool trailing advance mechanically and never move down

IBKR-Powered
Market Scanner

Subscribe to multiple IBKR scanner codes in parallel — HIGH_OPEN_GAP, TOP_PERC_GAIN, HOT_BY_VOLUME, and more. Fresh broad LAST surges are evaluated against the configured Runner Momentum price, float, and RVOL gates.

Step 1

Scanner picks up movers

HIGH_OPEN_GAP and TOP_PERC_GAIN scanners surface tickers gapping up pre-market.

Step 2

RVOL vs. average daily volume

RVOL is cumulative session volume divided by the average daily volume; the live gate defaults to 2.0 and can be disabled with 0.

Step 3

Runner Momentum evaluated live

Each ticker is checked for a fresh 5% LAST-price surge inside 5 seconds, then price, float, and RVOL qualification. Diagnostics show exact observed and required values.

Step 4

Full session captured for replay

Optional session recording stores scanner frames and causal strategy evidence for later replay and isolated what-if analysis.

AutoTrader live Scanner
IBKR Scanner — Broad Movers • Runner Momentum
Chg% ≥ 10%
Vol ≥ 30K
Price $1–$50
Spread ≤ 3%
Float cap off
TickerChg%Gap%VolRVOLFloat RotContextRunner Status
AIXI +47.3% +38.1% 2.1M 18.4x 2.1x HIGH ENTRY
SOAR +31.5% +22.0% 890K 9.7x 1.6x HIGH WAIT
SIDU +18.2% +15.4% 450K 5.2x 0.9x MED no setup
LABX +12.6% +9.3% 220K 3.1x 0.6x LOW no setup
SKYQ +28.9% +19.7% 1.3M 12.6x 1.9x HIGH WAIT

Context on the Tape — Not a Trade Trigger

Optional IBKR news context — deduplicated for display and recorded analysis — enriches the scanner so you can see why a name is moving. It does not place trades: live entries are purely mechanical Runner Momentum.

LIVE FEED illustrative sample · not live market data
08:14
AIXIIBKR News: AIXI Receives FDA Fast Track Designation for AI-Driven Diagnostic Platform
Sentiment: 9.2/10 · Catalyst: HIGH · Prob: 0.91
08:09
SOARDJ-N: SOAR Announces $50M Strategic Partnership with Defense Contractor
Sentiment: 8.7/10 · Catalyst: HIGH · Prob: 0.84
08:03
SIDUIBKR News: Sidus Space to Present Phase III Clinical Trial Results at ASCO
Sentiment: 7.8/10 · Catalyst: MED · Prob: 0.67
07:58
SKYQIBKR News: SkyQuant Q3 Earnings Beat; Revenue Up 42% YoY, Raises Full-Year Guidance
Sentiment: 8.1/10 · Catalyst: HIGH · Prob: 0.79
07:44
TBHIBKR Tick: TBH Completes Reverse Merger with Industry Leader; Begins Trading Under New Symbol
Sentiment: 6.9/10 · Catalyst: MED · Prob: 0.58

How the Sentiment Overlay Works

A two-tier scorer ranks headlines for context in the scanner and analytics — it never gates a live entry.

🧠
Primary: Configured context provider
0–10 score + reasoning string

Provider-independent context helpers can enrich displayed and recorded headlines. Their output never gates, ranks, enters, or exits a trade.

Fallback: Heuristic Keyword Engine
Weighted bullish / bearish keyword model

A local heuristic can add display context when richer analysis is unavailable; missing context never changes Runner Momentum behavior.

⚗️
ML Catalyst Scorer
Contextual metadata for display and analysis

Catalyst classification is contextual metadata for the scanner and recorded analysis only. Strongest-surge ranking uses price evidence, not headlines.

One Deterministic Momentum Strategy

Runner Momentum qualifies fresh LAST-price surges, optionally pauses for human approval, and protects every confirmed position with mechanical fresh-BID exit rules.

Runner Qualification

Fresh Surge + Universe Gates

During the configurable session, genuine broad LAST data must rise by the configured threshold inside the rolling window while the current row passes every enabled gate.

  • Surge Threshold5%
  • Rolling Window5 seconds
  • Price Range$0.10–$10.00
  • Maximum Float20M shares
  • Minimum RVOL2.0× · 0 disables
  • Frame Winnerstrongest surge
Optional · Off by Default

Assisted Entry

A qualified surge can open one nonblocking approval window. This changes timing only; it does not change qualification or introduce AI decisions.

  • Default Timeout20 seconds
  • BUY NOWrechecks eligibility
  • Quote Requirementnew fresh ASK
  • Skip / Close / Escapeconsume surge
  • Windowone at a time
Fresh-BID Exit Rules

Stop, Lock, and Buyer-Pool Trail

Protection advances only from valid fresh BID data, persists across restarts, and never moves downward.

  • Initial Stop10% below fill
  • At +10%lock +2% above fill
  • At +30%activate profit trail
  • Buyer Poollow of highest-volume bullish 5m candle
  • Fallback20% below highest fresh BID
🔬
One Rules-Based Decision Path

No AI makes entry, exit, ranking, or tuning decisions. Live, paper, recorded session replay, and what-if analysis consume the same saved strategy dictionary.

Every Gate Is Yours to Tune

Runner Momentum exposes its full rule set in the Strategy panel, layered on top of global universe filters and risk controls — no code edits required.

Prefilter (Universe)
min change % · min volume · min/max price · max float · max spread · RVOL floor
Surge Detection
surge window · surge threshold · fresh LAST validation
Entry Timing
immediate automatic entry · optional Assisted Entry timeout
Exit & Trail
initial stop · profit lock · buyer-pool activation · fresh-BID fallback
Session & Compound
trading session · fixed notional · compound mode · reset balance
Circuit Breakers
broker connectivity · quote freshness · position and order ownership · one entry per symbol

Recorded-Session Replay & What-If Analysis

Replay captured scanner cycles and exact five-second evidence from a recorded session. What-if evaluation uses the same saved strategy fields without changing live configuration.

$1,000

Starting balance, compounded across the session

14+

Trade-level metrics tracked per simulation run

Causal

Recorded surge evidence drives replay evaluation

Per-Trade Metrics

Entry/exit price, P&L, hold duration, shares, exit reason, and the causal surge evidence and scanner snapshot stored with the trade.

Daily Aggregates

Win rate, total P&L per day, trade count, session loss tracking, and compound returns over the date range.

Session Capture & Replay

When recording is enabled, scanner frames and causal entry evidence are stored in a neutral session manifest for selected-date and recent-session replay.

AutoTrader Analytics and Analysis
Recorded Session Replay — Runner Momentum · illustrative sample
Win Rate
50%
Avg / Trade
+1.97%
Total Trades
437
Cumulative P&L %
Ticker Entry Exit P&L% Exit Reason
AIXI $2.14 $3.06 +43.0% Trailing stop
SOAR $5.80 $6.92 +19.3% Trailing stop
LABX $1.22 $1.10 −9.8% Initial stop
SKYQ $3.45 $4.30 +24.6% Buyer-pool trail

Recorded-Session
Trade Review

Trade analytics summarize completed activity, while recorded session replay and what-if analysis let you inspect stored evidence under alternative thresholds. Analysis never changes live settings or places a trade.

AutoTrader Analytics and Analysis
Recorded Evidence Review Illustrative sample · not actual performance
What evidence qualified this sample entry?
AIXI recorded a +6.2% LAST-price surge inside 5 seconds, RVOL of 18.4×, an in-range price, and a known float below the configured ceiling. It ranked as the strongest qualifying surge in that scanner frame.

The stored event also includes its causal LAST timestamp and price, configured threshold, observed RVOL, execution reference, and outcome.
Can I compare another RVOL threshold?
Yes. What-if analysis can re-evaluate paired recorded surge evidence with a different RVOL floor. The result is analysis-only and does not alter the saved live configuration.

Analytics Dashboard Features

📈

Daily P&L + Equity Line

A bar per day in dollars with a cumulative equity line overlaid. Hover any bar to see that day's $ and summed %.

📋

14-Column Trade History

Date, entry/exit time, session, strategy, ticker, buy/sell $, P&L%, hold (m), sell reason, sentiment, catalyst, headline. Click a row to inspect the scanner state and exact params captured at trade time.

🤖

What-If Analysis

Recorded evidence can be re-evaluated with alternative thresholds without changing the saved live strategy.

🏆

Stat Cards

Total trades, win rate, avg profit %, total P&L, best trade, worst trade — always visible at the top of the dashboard.

Know Exactly Why a Ticker Was Rejected

Every strategy check is surfaced with the actual vs. required value. No more wondering why a trade was skipped — see the full pass/fail breakdown in real time.

AIXI vs. Runner Momentum
ENTRY
LAST surge: +6.2% in 5 seconds found in 5 seconds
Price: $2.74 $0.10–$10.00 req.
Known float: 8.7M ≤ 20M req.
RVOL: 18.4× ≥ 2.0× req.
Surge evidence fresh and ordered
Position capacity available
Execution reference fresh ASK
SOAR vs. Runner Momentum
WAIT
LAST surge: +4.1% in 5 seconds ≥ 5% req. ❌
Known float: unavailable required ❌
RVOL: 1.4× ≥ 2.0× req. ❌
Price: $5.92 $0.10–$10.00 req.
Surge evidence fresh and ordered
Session time: 08:42 ET inside configured window
Waiting for new evidence next fresh LAST update

Everything You Need to Trade Smarter

A complete trading system — from real-time alerts to risk management — with active Runner Momentum parameters configurable from the UI.

🌊

Momentum Surge Highlighting

Scanner rows tint when a name surges past a configurable threshold over a short window — ≥10% in 1 minute, ≥15% in 2, ≥20% in 3 — each with its own colour, so fast movers jump out of the table at a glance.

🔄

Strongest-Surge Selection

Qualified stocks in each scanner frame compete by strongest surge, then earliest signal timestamp, then symbol. Protected positions are not displaced.

📦

Compound Mode

Maintains one compound order/position/exit lifecycle. The first automatic position uses fixed notional; later positions use the prior compound balance after realized P&L.

🔌

IBKR Execution

Live and paper trading via IB Gateway (ports 4001/4002) or TWS (7496/7497). Configurable client ID and automatic reconnect on disconnect.

🗂

Float Data Resolution

Resolves missing float through the existing yfinance → FMP → Massive fallback chain — and caches the result. Provider failure fails closed at the configured float gate.

🛡

Circuit Breakers

Connectivity, quote freshness, position, order, session, and risk checks fail closed at the order boundary.

🕰

Daily Auto-Reset

At 04:00 ET a background loop clears the scanner history file, re-anchors each ticker's session baselines, and resets per-symbol trade counts and cumulative P&L — ready for the new session.

🧩

Tunable & Extensible

Active Runner Momentum values are editable in the Strategy panel and round-trip to ui_config.json for live, paper, replay, and what-if use.

🔁

Sentiment Cache

Context helpers can assist display and recorded analysis, but never make trading decisions.

Strategy Parameters

Active Runner Momentum parameters are accessible from the UI — no code edits required. Changes take effect on the next automation cycle.

Runner Momentum Strategy configuration
Surge Window
5 seconds
Surge Threshold
≥ 5%
Price Range
$0.10–$10.00
Maximum Float
20M shares
Initial Stop
10% below fill
Profit Lock
+2% at +10%
Minimum RVOL
2.0×
Profit Trail
at +30%
Position Size
$200 / entry
Compound Mode
ON equity
Assisted Entry
OFF optional
Approval Timeout
20 seconds

Momentum Surge Configuration

Set the % move that counts as a surge over each short window, and pick the colour each tier paints the row.

Assisted Entry surge approval
Surge Activity — 1-Minute Move
AIXI
+18.4%
SKYQ
+12.6%
SOAR
+9.7%
SIDU
+5.2%
LABX
+3.1%
Thresholds: 1m ≥ 10% · 2m ≥ 15% · 3m ≥ 20% · each colour-coded

Built for Reliability & Speed

Async First

asyncio event loop in background thread. Semaphore-limited concurrent IBKR requests (5 bar fetches, 2 news). Non-blocking UI at all times.

💾

Persistent Cache

Sentiment scores cached per ticker/day/headline. IBKR 1-min bars cached for recording and replay. Resolved float values cached to disk to avoid repeat lookups.

🔒

Risk Guardrails

Session loss/profit limits, one-entry-per-symbol protection, broker ownership checks, and fresh-BID stop and trailing rules fail closed.

🔄

Auto Recovery

IBKR connection watchdog, health monitoring with in-app log window for recovery events.

Set It Up Once.
Let It Trade For You.

Once configured, AutoTrader scans market data, qualifies Runner Momentum surges, submits orders, and manages exits mechanically. Optional news remains context only.

STEP 01
⚙️

You Configure Once

Set strategy, sizing, exit, and optional Assisted Entry parameters through the UI. AutoTrader saves everything to disk — no manual setup required on the next run.

STEP 02
▶️

Press Start

A single button kick-starts the automation loop. The system connects to IBKR, subscribes to scanner feeds, begins monitoring — all in the background.

STEP 03
🤖

It Runs Itself

With Assisted Entry off, AutoTrader handles the full lifecycle automatically. When it is enabled, BUY NOW requires human approval; exits remain mechanical. Every step is logged in real time.

What Runs Automatically

📡
Scanner streaming from IBKR

Multiple scanner codes stream simultaneously to build the broad tracked universe. Local Runner Momentum qualification then applies its surge, price, float, and RVOL rules.

🏴
Runner Momentum pattern detection

Each genuine broad LAST update can produce one fresh surge event. Duplicate, out-of-order, stale, or malformed evidence fails closed.

📊
Market data validation

Current price, known float, and cumulative RVOL must pass their configured gates alongside the fresh LAST surge. Missing required evidence fails closed.

🟢
Strongest qualified surge entry

The frame winner uses a fresh broad ASK when available, otherwise the qualifying LAST. Optional Assisted Entry requires approval, rechecks eligibility, and requires a newly validated fresh ASK.

🎯
Mechanical exit management

The initial stop defaults to 10% below fill. At +10% a fresh BID locks +2%; at +30% the buyer-pool profit trail activates, with a highest-fresh-BID fallback.

🔁
Daily session reset at 04:00 ET

A background loop clears the scanner history, re-anchors each ticker's session baselines, and zeroes per-symbol trade counts and cumulative P&L — so the system starts each morning fresh without any intervention.

Built-in Guardrails

Full autonomy doesn't mean no safety net. AutoTrader enforces hard risk limits at every layer so the system can run unattended without blowing up your account.

Fail-Closed Order Boundary Required checks

Connectivity, quote freshness, available funds, position capacity, order state, and session rules must all pass before an automatic order can proceed.

One Entry Per Symbol Per session

Closed-trade history and confirmed positions preserve the one-entry-per-symbol guard across scanner restarts until the next trading session.

Broker Ownership Check Before every sell

Every live sell verifies the broker long, subtracts visible working sells, and caps quantity to what remains sellable.

Compound Lifecycle Guard Per position

Compound mode permits only one automatic order/position/exit lifecycle; manual orders remain independent.

Connection Watchdog Auto-reconnect

IBKR disconnects are detected by the watchdog. Recovery reconciles broker-owned orders and positions while fresh order checks continue to fail closed.

Live Automation Status

The main window shows every decision the system makes in real time — so you can monitor without intervening.

AutoTrader live Scanner
AutoTrader — Automation Active  ●  illustrative sample · not live market data
Time Source Ticker Activity Log Surge Status
08:31 AUTO AIXI Runner Momentum: LAST +6.2% in 5 seconds · RVOL 18.4× · strongest qualified surge +6.2% ✓ BOUGHT @ $2.14
08:35 EXIT AIXI Fresh BID reached +30% — buyer-pool profit trail active ⏳ HOLDING +28%
08:37 EXIT AIXI Trailing stop hit — position closed SOLD @ $3.06 +43.0%
08:42 AUTO SOAR LAST surge +4.1% < configured 5% threshold +4.1% ⏱ WAIT
08:44 AUTO LABX RVOL 1.4× < configured 2.0× gate — entry rejected ✗ Skipped — RVOL too low

Trade Momentum by the Rules
— Premarket and Intraday

AutoTrader runs on your machine against your own IBKR account. Runner Momentum is the single deterministic strategy; its active gates, window, sizing, and exit rules are configurable.

✓ Python 3.13.2 ✓ IB Gateway / TWS ✓ Runner Momentum · one mechanical strategy ✓ Recorded-session replay & what-if analysis ✓ recorded-session analytics