Atlas®

Quantitative Market Intelligence & Execution System

Investment Policy Statement (IPS)
Autonomous Intraday Momentum Breakout Strategy
Robinhood Agentic Trading Platform

Version: 1.0-final

Effective Date: July 6, 2026

Classification: Authoritative Runtime Specification

Not investment advice. This document formalizes deterministic machine-executable rules
for an autonomous trading agent. Edge and expectancy remain unvalidated.

Table of Contents

1. Executive Strategy Summary

Strategy Profile

Strategy Name Atlas Intraday Momentum Breakout v1
Asset Class US Equities (Long-Only)
Universe S&P 500 constituents (≥1M ADV, $10+ price)
Timeframe Stack 5-minute (execution) / 30-minute (context) / 1-day (bias)
Entry Window 09:35–11:00 ET (90-min morning window)
Holding Period Intraday only; hard flatten 15:45–15:50 ET
Max Concurrent Positions 3 (max 2 per sector)
Account Type Robinhood Cash Account ($500–$1,000); no PDT rule applies
Execution Mode Fully Autonomous, Risk-Engine Gated

Edge Hypothesis

Stocks exhibiting relative volume ≥2.0x, price above a rising 5-minute EMA20/EMA50 alignment, and a clean breakout above a well-formed consolidation (≥6 bars, range ≤0.75×ATR) during the first 90 minutes of regular trading hours have positive expectancy when:

Edge is captured via fixed-R risk management: entry at trigger, stop below base, half position sold at +2R profit, remainder trailed under 5m EMA9 with 5¢ offset. All risk bounded per-trade (0.50% equity) and per-day (2.0% equity).

2. Core Mandate & Scope

Trading Constraints

🔒 Non-Negotiable Rules

Broker Compatibility

Strategy verified against Robinhood MCP schemas for place_equity_order, review_equity_order, cancel_equity_order, get_equity_historicals, get_equity_quotes, and related tools. Key compatibility points:

3. System Inputs & Data Dependencies

Broker Account Inputs (Refresh at Each Cycle)

Input Source Staleness Limit
Equity, Cash, Buying Power get_portfolio(account) 60 seconds
Open Positions get_equity_positions 60 seconds
Open Orders & Statuses get_equity_orders 30 seconds during QUEUED state
Realized Daily/Weekly P&L get_realized_pnl, get_pnl_trade_history 60 seconds / 5 minutes
Tradability & Halt Status review_equity_order alerts Per order submission

Market Data Inputs

Derived Indicators

All computed from raw OHLCV data per fixed definitions:

4. Entry Logic & Triggers

Setup Validation (Evaluated on Completed 5m Bars)

A setup is valid only if all of the following hold:

Trigger & Execution

Trigger: last_price > BreakoutLevel (monitored in real-time between bar closes).

Execution upon trigger:

Post-Fill (First Fill Event)

5. Position Sizing Engine

Size computation from risk capital, expressed in whole shares:

risk_dollars    = equity × 0.0050                       # 0.50% per trade
stop_distance   = entry_limit − stop_price            # > 0, enforced by rules
raw_shares      = floor(risk_dollars / stop_distance)

cap_notional    = floor((equity × 0.25) / entry_limit)    # ≤25% per position
cap_bp          = floor((min(cash, buying_power) − 100) / entry_limit)
cap_liquidity   = floor(0.0005 × ADV20)               # ≤0.05% of ADV20
cap_openrisk    = floor(max(0, equity×0.015 − open_risk_usd) / stop_distance)

shares = min(raw_shares, cap_notional, cap_bp, cap_liquidity, cap_openrisk)
shares = shares × regime_size_mod                      # Apply regime multiplier
IF shares < 1: REJECT trade

Key Constraints

6. Exit Logic & Priority Framework

Exits evaluated at each cycle in strict priority order. A higher-priority exit preempts lower ones. All exits logged with full decision context.

P Exit Trigger Mechanism
1 Take-Profit (Half) last_price ≥ tp_price = avg_fill + 2.0R Limit sell ceil(qty/2) at max(tp_price, bid)
2 Breakeven Move Immediately after P1 fills Cancel stop → new stop_market(avg_fill + $0.01)
3 Trailing Stop Each evaluation cycle post-TP Trail = max(prior_trail, min(EMA9_5m, bar_low) − 0.05); re-place if > current_stop + 0.05
4 Regime Exit Regime becomes TREND_DOWN or HIGH_VOL Tighten: stop_market(max(current_stop, last_price − 0.5×ATR))
5 Time Stop Position age ≥ 24 bars (2h) AND unrealized < +1.0R Full exit via J2 limit sequence
6 EOD Flatten First cycle at/after 15:45 ET with any position Cancel all orders → market sell all (backed up by risk loop at 15:50)
7 Risk Halt Flatten Daily loss limit breached (M3.2) Emergency flatten (market sell all)

Critical Notes

7. Risk Management & Guardrails

Per-Trade Limits (M1)

Portfolio Limits (M2)

Loss Limits & Kill Switches (M3)

Limit Threshold Action
Soft Daily Realized P&L ≤ −1.5% No NEW entries; manage exits only
Hard Daily Realized + Unrealized ≤ −2.0% OR equity ≤ 0.98×day_start FLATTEN ALL, HALTED_RISK, auto-reset next session
Weekly Realized P&L ≤ −5.0% FLATTEN ALL, HALTED_RISK; manual reset only
Consecutive Losses 3 full stop-loss exits in a row No new entries for rest of day
Minimum Equity Equity < $250 No new entries; account too small to size safely

Execution Modes (M4)

M4.3: Fully Autonomous (ACTIVE)

Every entry must pass risk_engine.py validate-order (approved=true) AND review_equity_order (no blocking alerts). Once approved, orders execute immediately without human intervention. This is the governing mode for this system.

8. Exceptional Conditions & Recovery

The following conditions halt Atlas and require intervention or automated recovery:

Data Quality Issues (N-1)

Trigger: Bar age > 90 seconds past close, or quote fetch fails. Action: Skip evaluations; counter++. At 3 strikes, halt new entries. Auto-recover on fresh data.

Broker API Failure (N-2)

Trigger: Tool errors on account-state calls. Action: Retry 2× with backoff (5s, 15s). Halt at 3 strikes. Recover after 3 consecutive healthy checks ≥60s apart.

Order Ambiguity (N-13)

Trigger: Order status neither filled, cancelled, nor rejected after 2 cancel attempts. Action: HALTED_MANUAL_REVIEW. Operator must investigate and resume.

Duplicate Fills (N-6)

Trigger: Filled qty > ordered qty for an order_id. Action: HALTED_MANUAL_REVIEW; market-sell excess only.

Market Halt / Circuit Breaker (N-10)

Trigger: Tradability=halted or review_equity_order shows halt alerts. Action: Freeze that symbol's orders (or all if market-wide). Native stops remain live. Auto-recover on tradability restore.

Core Principle: Broker-side native stops are the final line of defense and are never cancelled during halts (except during controlled flatten sequences). During exceptional conditions, positions are protected by their resting stops; Atlas manages the agent-simulated layers (trails, entries, exits).

9. Runtime Operations & Scheduling

Task Scheduling (R-10 RESOLVED)

Task Cadence Hours (ET) Purpose
Premarket (Loop A) Once per day Before 09:25 Build watchlist, classify regime, no-trade-day check
Entry (trading-bot-intraday) Every 5 min 09:00–10:59 Dense entry window; evaluate and execute new setups
Manage (trading-bot-manage) Every 10 min 11:00–15:59 Exit management, trails, EOD flatten (first run ≥15:45)
Risk (trading-bot-risk) Every 2 min 09:00–15:59 Kill-switch checks, flatten backstop (15:50 trigger)

Key Timing Notes

State Persistence

After every mutation, write to state/*.json:

10. Parameter Reference Table

All parameters are fixed for v1; no online tuning allowed.

Parameter Value Used In
Entry window (ET) 09:35–11:00 E-3, K6
EMA20_5m / EMA50_5m / EMA9_5m 20 / 50 / 9 bars Entry trend, trailing exit
EMA20_30m / EMA200_1d 20 / 200 bars HTF alignment, daily bias
ATR lookback 14 bars (Wilder) Stop sizing, volatility filter
ATR % filter 0.40% – 2.50% Entry gate (G1)
RVOL minimum 2.0× Entry gate (G1)
Consolidation bars / range mult 6 bars / 0.75×ATR Base definition (G1)
Max gap extension 3.0% Entry gate (G1)
Marketable-limit cap +0.10% Entry pricing (G1)
Stop ATR multiplier 1.2× Stop distance (G1)
Risk per trade % 0.50% Position sizing (I)
Max position % of equity 25% Notional cap (I)
Max portfolio open risk % 1.5% Aggregate risk (I)
ADV liquidity cap % 0.05% Order size (I)
Max concurrent positions 3 E-7
Max per sector 2 E-9
Max daily entries / per hour 6 / 2 E-17
Take-profit R multiple 2.0R Exit P1 (K1)
Daily loss hard stop −2.0% M3.2
Weekly loss hard stop −5.0% M3.3

11. Critical Assumptions & Resolutions

R-1: Account Type ✓ RESOLVED

Resolution (2026-07-06): Account ••••3261 verified as a CASH account via get_accounts. PDT rule does NOT apply. Governing constraints: settled-funds/GFV guard (E-13), price band ≤25% of equity (E-10), whole shares only.

R-1b: Small-Account Risk Tier (PENDING USER CONFIRMATION)

At $750 equity, 0.50% risk = $3.75/trade. Whole-share sizing will reject many valid setups on $50–$150 stocks. Consider 1.0% risk tier while equity < $5,000. Current: 0.50% remains active.

R-4: Bid/Ask Spread Data (CONDITIONAL)

Assumption: get_equity_quotes returns bid/ask fields. Fallback: If absent, disable spread filter (E-11); rely on marketable-limit price caps for protection.

R-5: Event Lockout Calendar ✓ ACTIVE

Manual config file config/event_lockouts.json defines Fed/macro event windows. Empty file = no lockouts (logged as WARN at startup). Current: Fed events ±30 minutes.

R-6: Execution Mode ✓ RESOLVED

Resolution (2026-07-06): M4.3 (fully autonomous, risk-engine gated) is active. Approval question moot.

R-10: Task Scheduling ✓ RESOLVED

Resolution (2026-07-06): Retimed per Section 9. Entry loop 09:00–10:59 (*/5); manage loop 11:00–15:59 (*/10); risk loop unchanged 09:00–15:59 (*/2).

12. Compliance & Audit Framework

Deterministic Decision Framework

This rulebook contains no discretionary language. Every decision path is either a numeric comparison or an enumerated state transition. All gates are explicit and testable.

Decision Priority Order

Capital Preservation > Determinism > Fail-Safe Operation > Broker Compatibility > Implementability > Backtestability > Execution Realism > Performance.

Structured Logging

Daily JSONL logs (logs/atlas_YYYYMMDD.jsonl) capture:

Logs retain enough data to replay decisions deterministically for backtesting and audit.

Broker Capability Verification

All native broker features referenced were verified against live MCP tool schemas except:

⚠ Legal Disclaimer

This document formalizes the operator's deterministic trading rules for machine execution. It is NOT investment advice. Edge and expectancy are unvalidated; the strategy has not been backtested. This rulebook serves as specification only; use is at the operator's sole risk and responsibility. Comply with all applicable securities laws and regulations.

Document Version: 1.0-final | Effective: July 6, 2026 | Classification: Authoritative Runtime Specification

For revisions, questions, or incident reports, contact the operator.

© 2026. Atlas is an autonomous trading system operating under this Investment Policy Statement.
Not an offer or solicitation. Compliance with all securities laws required.