Open Positions
Click a row to see the agent swarm's thesis| Ticker | Side | Entry | P&L % | P&L $ | Size |
|---|---|---|---|---|---|
| Loading… | |||||
Recent Trades
Click a row to see the thesis · Click Plan badge to toggle adherence flag| Ticker | Side | Entry | Exit | P&L $ | P&L % | R | Hold | Plan | Date |
|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||
Options Positions
| OCC Symbol | Strategy | Underlying | Expiry | Strike | Contracts | Entry Premium | P&L |
|---|---|---|---|---|---|---|---|
| No open options positions | |||||||
Live Watchlist
Premarket Scanner
RVOL = today's volume ÷ 20-day avg volume. Values above 1.5× flag unusual activity. Gap% = distance from yesterday's close. Sorted by RVOL descending.
| Ticker | Price | Gap % | RVOL | Today Vol | Avg Vol (20d) | ATR | Liquid |
|---|---|---|---|---|---|---|---|
| Click Refresh to load scanner data | |||||||
Quick Actions
Options Actions
System Intelligence
🔮 Ask Oracle — Evaluate a Ticker
Suggest a stock or crypto and ORACLE will give you an honest, real-time assessment. Not ready? It goes straight to the watchlist so the swarm tracks it for a better entry.
Risk Parameters
Custom Command
The AI Advisor makes paid API calls to your chosen AI provider. Set
AI_PROVIDER in .env to either anthropic (Claude, default) or openai (ChatGPT).Option A — Anthropic (Claude):
- Create an account at console.anthropic.com
- Go to API Keys → generate a new key
- Add to
.env:AI_PROVIDER=anthropicandANTHROPIC_API_KEY=sk-ant-... - Run
pip install anthropic
- Create an account at platform.openai.com
- Go to API Keys → generate a new key
- Add to
.env:AI_PROVIDER=openaiandOPENAI_API_KEY=sk-... - Run
pip install openai
Cost estimate: ~$0.003–$0.006 per chat exchange. A $10 credit covers roughly 1,500–3,000 questions.
Day_Trader is an autonomous trading swarm — seven AI agents working together around the clock, each with a specific job:
- ORACLE — The commander. Reads your commands, coordinates all agents, adjusts strategy dynamically
- RADAR — Intelligence officer. Scans news, social media, gov contracts, macro conditions, and the economic calendar every 30 min
- QUANT — Analyst. Runs technical indicators on every candidate, scores 0–1, adjusts the threshold by market regime
- SENTINEL — Risk manager. Reviews every signal before execution. Has multiple circuit breakers. Widens stops on high-impact macro event days
- LEDGER — Bookkeeper. Tracks every trade, P&L, generates your daily Commander's Report at 6:30 PM ET
- EXECUTOR — Trade desk. Executes approved orders via Alpaca (equities & options) and Coinbase (crypto)
- RETROSPECTIVE — Self-improvement. Runs every Sunday — analyses closed trades, flags anomalies, applies bounded auto-tuning, and backtests current signal rules against 90 days of history
FINRA Rule 4210: accounts under $25,000 are limited to 3 day trades in any 5 rolling business days. A "day trade" = buying AND selling the same stock on the same calendar day.
What counts vs. what doesn't
- Buy NVDA at 10 AM, sell at 2 PM same day → 1 day trade used
- Buy NVDA today, sell tomorrow → NOT a day trade (swing trade)
- Buy Bitcoin at any time, sell same day → NOT a day trade (crypto is exempt)
When you run in LIVE mode under $25K, SENTINEL automatically tracks your rolling window and blocks equity day trades once you've used all 3. Crypto continues trading freely 24/7.
RSI — Relative Strength Index (0–100)
Measures momentum — how fast and far a stock has moved. Think of it as a temperature gauge.
- > 70 → Overbought — may be due for a pullback
- 45–65 → Healthy zone — QUANT scores this positively
- < 30 → Oversold — potential bounce signal
MACD — Moving Average Convergence Divergence
Tracks the relationship between two moving averages. A "bullish crossover" (MACD line crosses above signal line) often signals the start of upward momentum — this is worth 1 point in QUANT's scoring.
EMA — Exponential Moving Average
A smoothed average price that weights recent data more heavily. The system tracks EMA-9 (short), EMA-21 (medium), EMA-50 (long). When they're all stacked in ascending order, that's a strong bull setup.
ATR — Average True Range
Measures daily volatility in dollar terms. A stock with ATR = $5 moves about $5/day on average. QUANT uses ATR to set stop losses (2× ATR below entry) and take-profit targets (4× and 7× ATR above).
Bollinger Bands
A price channel: 20-day moving average ± 2 standard deviations. Near the lower band = potentially oversold. Near the upper band = potentially overbought.
RADAR classifies the market into one of four regimes. The entire system shifts strategy automatically:
- 🐂 BULL — Normal uptrend. Full watchlist active, targets high-momentum equities and crypto
- 🐻 BEAR — Broad market decline. Pivots to inverse ETFs (SQQQ), reduces long exposure
- 🚨 CRISIS — VIX spike or crash conditions. 100% defensive — only SQQQ, UVXY, BTC
- ↔️ CHOPPY — Sideways market. Reduces trade frequency and position sizes, waits for clearer direction
Stop Loss
The price at which a trade automatically exits to cap your loss. If you buy at $200 with a stop at $186, the worst case is a $14/share loss — no matter what. The system sets stops at 2× ATR below entry.
Position Sizing
How much of your portfolio goes into a single trade. Default max = 20% per position. On a $10,000 account that's $2,000 max per trade. SENTINEL also checks that total "portfolio heat" stays under 50%.
Portfolio Heat
Total capital currently at risk across all open positions simultaneously. The higher the heat, the worse one bad day could be if everything moves against you at once.
Daily Loss Limit
If the portfolio drops 10% in a single day, SENTINEL soft-halts trading automatically. You manually resume when ready. A 15% single-day drop triggers a hard halt with a cooldown period.
Every trade requires a minimum 2:1 reward-to-risk ratio: for every $1 you risk losing, you stand to make at least $2. SENTINEL rejects any signal that doesn't meet this.
Why it works mathematically
With 2:1 R/R and only 40% win rate across 10 trades:
- 4 winners × $200 gain = +$800
- 6 losers × $100 loss = −$600
- Net result: +$200 profit despite being wrong 60% of the time
How levels are calculated
Entry = current market price. Stop = entry − (2 × ATR). Take Profit 1 = entry + (4 × ATR) → 2:1 R/R. Take Profit 2 = entry + (7 × ATR) → 3.5:1 R/R. These scale naturally with the stock's own volatility.
Leveraged ETFs amplify the daily return of an index by 2× or 3×. They are high-risk instruments — gains and losses are magnified equally.
- TQQQ — 3× long Nasdaq 100. QQQ up 1% → TQQQ up ~3%. Used in strong bull conditions
- SQQQ — 3× short Nasdaq 100. Goes up when tech crashes. Used in bear/crisis as hedge
- UVXY — 1.5× VIX futures. Spikes massively during market fear. Crisis regime only
Decay — why you never hold these long-term
Daily rebalancing causes compounding decay. If QQQ goes up 10% then down 10%, it's back to $99. But TQQQ goes up 30% then down 30% — it's at $91. The math gets worse the longer you hold them in a choppy market.
Bitcoin, Ethereum, and Solana trade 24/7/365. No market hours, no PDT restrictions, no SEC day-trade rules. This is uniquely valuable for growing a small account past $25K quickly.
- Unlimited short-term trades regardless of account size
- Higher daily volatility = higher potential returns (and losses)
- Bitcoin acts as a macro sentiment indicator — the system watches it even during equity hours
- Trades execute through Alpaca (same account), routed to Coinbase liquidity
Default crypto allocation cap: 30% of portfolio. Adjustable via Risk Parameters or by telling the AI Advisor to change it.
SENTINEL has automatic circuit breakers that halt trading to protect capital:
- Daily Loss 10% — Soft halt. Resume button available in Commands tab. No cooldown
- Daily Loss 15% — Hard halt. Manual reset required with reason logged
- Max Drawdown 25% — From portfolio peak. Triggers full defensive pivot
- PDT Limit — Blocks only equity day trades (crypto still runs freely)
- VIX > 35 — Crisis mode. System moves to cash and defensive ETFs
- 5 consecutive losses — Soft halt to reassess conditions
Don't switch to live trading until the system has proven itself. Here's what you need before going live:
- ☐ 20+ paper trades completed (executed, not just signaled)
- ☐ Win rate above 45% over at least 2 weeks
- ☐ At least 3 market conditions observed (up day, down day, choppy day)
- ☐ All circuit breakers tested and confirmed working
- ☐ Daily reports generating correctly at 6:30 PM ET
- ☐ Override commands tested from this dashboard
- ☐ You understand why each trade was entered and exited
To go live
1. Generate live Alpaca keys at app.alpaca.markets (live section — different from paper keys)
2. Copy .env.live.example → .env.live, fill in your live keys
3. Run: DAY_TRADER_ENV_FILE=.env.live python scheduler.py
4. Paper and live can run simultaneously on ports 8000 and 8001
An option is a contract giving you the right (but not the obligation) to buy or sell 100 shares of a stock at a specific price before a specific date.
Two types:
- Call option — right to BUY shares at the strike price. Profits when the stock goes UP.
- Put option — right to SELL shares at the strike price. Profits when the stock goes DOWN.
Key terms:
- Strike price — the price at which you can buy/sell shares if you exercise
- Expiry date — last day the option is valid. After this it's worthless (if OTM)
- Premium — what you pay for the option (quoted per share, × 100 for total cost)
- OTM (Out of the Money) — strike is above (call) or below (put) current price. Pure time value
- ATM (At the Money) — strike ≈ current price. Highest time value, highest theta
- ITM (In the Money) — has intrinsic value. Call with strike < price, put with strike > price
Implied Volatility (IV) is the market's expectation of future price movement — baked into every option's premium. High IV = expensive options. Low IV = cheap options.
IV Rank (0–100)
Tells you WHERE current IV sits relative to the past 52 weeks:
- IV Rank < 35 — Options are cheap. Buy premium (Phase 1: calls/puts, Phase 4: straddles)
- IV Rank 35–65 — Neutral zone. Spreads work well (Phase 3: defined risk)
- IV Rank > 55 — Options are expensive. Sell premium (Phase 2: CSP/CC, Phase 4: iron condors)
Volatility Regime (shown in header badge)
- LOW — Market calm. Buy calls/puts and straddles. Premium is cheap.
- NORMAL — Standard conditions. All phases active based on IV rank.
- HIGH — Elevated IV. Favor selling premium (CSP, covered calls, condors).
- EXTREME — VIX spike. Wheel strategy paused (assignment risk elevated). System focuses on defensive positions.
Unlike market regime (BULL/BEAR), volatility regime is independent. You can have a BULL market with HIGH volatility — options strategy adapts to both signals simultaneously.
Phase 1 — Long Calls / Long Puts (Directional, Low IV)
When: IV rank < 35. QUANT has a strong directional signal.
How: Buy a call (bullish) or put (bearish) with ~0.35 delta, 14–45 DTE. Stop loss: premium drops 50%. Take profit: premium doubles (100% gain).
Max loss: 100% of premium paid (defined risk). Max gain: unlimited (calls) or capped at strike going to zero (puts).
Phase 2 — Wheel Strategy (Income, High IV)
When: IV rank > 55. Stock on watchlist with strong fundamentals.
See the full Wheel walkthrough below. Short: sell CSP → potentially get assigned → sell covered call → repeat.
Phase 3 — Spreads (Defined Risk, Medium IV)
When: IV rank 30–70. Directional bias but want defined max loss.
- Bull Call Spread — Buy low strike call, sell higher strike call. Net debit. Profits if stock rises above lower strike by expiry.
- Bear Put Spread — Buy high strike put, sell lower strike put. Net debit. Profits if stock falls below higher strike.
Max loss: net premium paid. Max gain: spread width minus premium. Capital efficient — lower cost than naked long options.
Phase 4 — Volatility Plays
Iron Condor (when IV rank > 65, range-bound market): Sell an OTM call spread + sell an OTM put spread simultaneously. Collect premium if price stays within a band. Max gain = full premium. Max loss = spread width minus premium.
Long Straddle (when IV rank < 30, big move expected): Buy ATM call + ATM put. Profits if the stock moves sharply in EITHER direction. Great before earnings if you expect volatility but don't know direction.
The Wheel is a systematic income strategy that generates premium in any market condition. It works best on stocks you'd be comfortable owning.
Cycle Step 1 — Cash Secured Put (CSP)
Sell an OTM put with ~0.20 delta (80% probability of expiring worthless). You collect premium immediately. In exchange, you promise to buy 100 shares at the strike price if assigned.
Entry gate: IV rank > 55 (premium is expensive enough to be worth the risk). Assignment risk: strike × 100 × contracts must be ≤ 20% of portfolio AND ≤ available cash.
Best case: Put expires worthless → pocket full premium → sell another CSP next cycle.
Assignment case: Stock drops below strike → you're assigned 100 shares at strike price → move to Step 2.
Cycle Step 2 — Covered Call (CC)
You now own 100 shares. Sell an OTM call against them (~0.20 delta). Collect more premium. Your cost basis continues to drop with each cycle.
Best case: Call expires worthless → keep shares + premium → sell another CC.
Called away: Stock rises above strike → shares sold at strike price → you keep all premium collected → cycle resets, sell another CSP.
NTA (Non-Trade Activity) — What Happens at Expiry
When options expire or get assigned, Alpaca processes it overnight. In paper mode, the NTA is visible next trading day at market open. The system checks at 10:05 AM ET daily — if a CSP was assigned, it automatically moves the underlying to the Covered Call phase.
Annualized Yield
Each CSP has a calculated annualized yield: (premium / strike) × (365 / DTE) × 100. The system only takes Wheel positions when annualized yield is attractive — typically 20%+ annually is the target.
Greeks measure how an option's price changes relative to different factors. Understanding them is essential to reading your positions.
Delta (Δ) — Directional Exposure
How much the option's price moves for every $1 move in the stock. A 0.35 delta call gains $0.35 (per share) when the stock rises $1. Delta ranges 0–1 for calls, 0 to −1 for puts.
- Long calls: positive delta (benefits from stock going up)
- Long puts: negative delta (benefits from stock going down)
- Short CSP: positive delta (you want the stock to stay flat or go up)
- 0.50 delta ≈ ATM. 0.20 delta ≈ 80% probability of expiring OTM (good for selling)
Theta (Θ) — Time Decay
How much the option loses in value each day from time passage alone. Theta is always negative for buyers, always positive for sellers.
- If you're long options (buyer): theta is your enemy — the clock is working against you
- If you're short options (CSP, CC, condor): theta is your friend — you collect decay daily
- Decay accelerates sharply in the last 30 days, especially the last week
Gamma (Γ) — Rate of Delta Change
How fast delta itself changes. High gamma = your delta exposure changes rapidly with small price moves. Gamma is highest ATM and near expiry — this is why short options near expiry are dangerous (a small move can flip your position dramatically).
Vega (V) — Volatility Sensitivity
How much the option's price changes per 1% change in IV.
- Long options (calls, puts, straddles): positive vega — you want IV to increase after you buy
- Short options (CSP, CC, condors): negative vega — you want IV to decrease after you sell
- IV crush: after earnings announcements, IV collapses sharply. Long options lose value rapidly even if the stock moves in your direction. This is why the system avoids buying premium when IV rank is high.
Overall Options Allocation Cap
No more than 20% of total portfolio value allocated to options positions at any time. This prevents an options-heavy portfolio that could get wiped by an IV event.
Contract Sizing
Each contract controls 100 shares. The system calculates max contracts for each trade based on the allocation cap and your cash balance, then applies a hard cap of 5 contracts per trade.
CSP Assignment Risk
When you sell a cash-secured put, you must be able to buy 100 shares at the strike if assigned. The system checks two limits:
- Limit 1: (strike × 100 × contracts) ≤ 20% of portfolio value
- Limit 2: (strike × 100 × contracts) ≤ 90% of available cash
Both limits must pass or SENTINEL hard-rejects the trade. You are never in a CSP you can't afford to get assigned.
Stop/Take Profit (Long Options)
- Stop loss: premium drops 50% from entry → close to preserve remaining capital
- Take profit: premium doubles (100% gain) → close and bank the win
Stop/Take Profit (Short Options — CSP, CC)
- Stop loss: premium paid to close = 2× premium collected (you're underwater) → close early
- Take profit: premium decays to 50% of original → buy back cheap, close the trade early
Some options signals score very high (≥ 0.82 confidence) but are blocked by a soft rule — maybe the IV regime doesn't perfectly align, or the position count is near the limit. Rather than auto-reject great opportunities, the system escalates to you.
What happens
- QUANT scores a signal ≥ 0.82 but SENTINEL blocks it on a non-hard rule
- A webhook alert fires to your configured alert channel
- The signal appears in the Pending Approvals panel (Dashboard tab)
- You review it with context: ticker, strategy, score, reason for hold
- You approve or reject it — the system executes immediately if approved
How to respond
- Dashboard: click ✓ Approve or ✗ Reject buttons in Pending Approvals panel
- Command: type
approve abc123orreject abc123using the signal ID - Stale signals (over 4 hours old) are auto-rejected by ORACLE at the next cycle
Hard rules vs soft rules
Hard rules (never bypassed, not escalatable): PDT budget exhausted, assignment exceeds cash, options allocation cap hit, trading halted.
Soft rules (can escalate if score ≥ 0.82): IV regime mismatch, position count near max, signal slightly below normal threshold.
Every candlestick tells a story about the battle between buyers and sellers in a given period. Learning to read them gives you an edge before any indicator fires.
How to Read a Candle
A candlestick has four data points: Open, High, Low, and Close. The body is the rectangle between open and close. The wicks (shadows) show the extreme highs and lows reached during that period.
The PDT rule applies to options on accounts under $25,000 in the same way it applies to stocks — with one important nuance.
What counts as a day trade for options
- Buy-to-open a call or put, then sell-to-close it on the same calendar day → 1 day trade used
- Sell-to-open a CSP today, close it tomorrow → NOT a day trade
- Exercise an option → no day trade triggered (it becomes an equity position)
How the system handles it
SENTINEL applies the same 3-day-trade / 5-rolling-day rolling window to options buy-to-open orders. If you've used 3 day trades this week, SENTINEL will hard-reject any options trade that would open and could plausibly close same-day.
Note: Selling options (CSP, covered call) is NOT a day trade by itself. Only buying options and closing them same-day counts. So Wheel Strategy trades (CSP, CC) are largely PDT-safe.
Certain scheduled economic events reliably cause outsized price swings regardless of technical setup. This system tracks them automatically and adjusts its behavior on those days.
The Big Four High-Impact Events
| Event | Frequency | Why It Moves Markets |
|---|---|---|
| FOMC Rate Decision | 8× per year | Fed sets the cost of money — every asset reprices to a new rate environment |
| CPI Release | Monthly | Inflation data changes Fed rate expectations — bonds and growth stocks react violently |
| Jobs Report (NFP) | First Friday monthly | Strong jobs = Fed stays hawkish. Weak jobs = rate cut expectations rise |
| PCE / PPI | Monthly | Fed's preferred inflation gauge — PCE carries more weight than CPI for rate decisions |
What the System Does on Event Days
RADAR checks the macro calendar every cycle. When a HIGH-impact event is today or tomorrow:
- SENTINEL widens stop-losses by 35% — the initial volatility spike on event days often triggers tight stops before the real direction is revealed
- QUANT's signal threshold is unaffected — we still require the same setup quality, we just give trades more room to breathe
- The dashboard flags the event — you'll see it in the RADAR digest so you're never surprised
The Calendar Sources
FOMC dates come from the Federal Reserve's published schedule (hardcoded annually). CPI, PPI, PCE, and Jobs release dates are pulled from the FRED API. If FRED is unavailable, the system falls back to a pre-estimated schedule based on the historical release pattern.
A signal that would be excellent in a bull market may be reckless in a bear market. The system reads the current market environment and adjusts its signal quality bar accordingly — automatically, every cycle.
The Four Regimes
| Regime | Trigger | Threshold Adjustment | Effect |
|---|---|---|---|
| BULL | VIX < 20, Fear/Greed > 60 | −4 points | More signals pass — trend is your friend |
| NEUTRAL | Mixed signals | No change | Standard operating mode |
| BEAR | VIX > 25 or F&G < 35 | +8 points | Fewer, higher-quality signals only |
| CRISIS | VIX > 40 | +20 points + defensive tickers only | Near-complete new entry suppression |
How Regime Is Detected
RADAR assesses the regime every 30 minutes using three inputs: VIX (fear/volatility gauge), Fear & Greed Index (market sentiment 0–100), and the macro flag (credit spreads, yield curve). When two of the three point the same direction, the regime shifts. The change is logged in the daily report.
Every position and watchlist ticker now has a live price chart. Click the 📈 icon next to any ticker to open an interactive candlestick chart with volume and EMA overlays.
What's on the Chart
- Candlesticks — green = close above open (bullish bar), red = close below open (bearish bar). Body size shows conviction; wicks show rejection.
- EMA 9 (gold) — short-term momentum. When price is above EMA 9, short-term trend is up.
- EMA 21 (blue) — medium-term trend. EMA 9 crossing above EMA 21 is the primary entry trigger the swarm uses.
- EMA 50 (purple) — the "health" line. Price above EMA 50 = healthy bull trend. Below = caution.
- Volume bars — color-matched to the candle. A big green candle on high volume is stronger than the same candle on low volume.
Period Selector
Use 1D and 5D to see intraday momentum context. Use 1M and 3M to see whether a setup is emerging from a proper base or just bouncing in a downtrend. The swarm uses 3-month daily bars for its technical analysis — that's the most useful timeframe for validating a signal.
What to Look For
When the swarm generates a buy signal on a ticker, pull up the chart and confirm:
- Price is above all three EMAs (EMA 9 > 21 > 50 = strong alignment)
- EMA 9 just crossed above EMA 21 in the last 1–3 bars (fresh, not extended)
- Volume on the breakout bar is higher than average (confirmation)
- No obvious resistance wall immediately above the current price
Every Sunday, the RETROSPECTIVE agent doesn't just look backward at past trades — it also runs the current signal rules forward through 90 days of historical bar data to see if those rules would have been profitable.
How the Backtest Works
The backtest engine uses the same core signal logic as QUANT — EMA crossover, RSI zone, MACD confirmation, and volume surge — then simulates entries and exits using these rules:
- Entry: EMA 9 crosses above EMA 21 while RSI is 35–65 and MACD is bullish with above-average volume
- Stop-loss: 2× ATR below entry price
- Take-profit: 3× ATR above entry price (3:2 risk/reward target)
- Max hold: 10 bars — exit at close if neither stop nor TP is hit
What to Look For in the Backtest Results
| Metric | Healthy Range | What It Tells You |
|---|---|---|
| Win Rate | 45–65% | Percentage of simulated trades that were profitable |
| Profit Factor | > 1.3 | Total wins ÷ total losses. Above 1.0 is profitable, above 1.5 is strong |
| Max Drawdown | < 15% | Worst peak-to-trough equity drop in the simulation — gauge of pain tolerance required |
| Avg Winner / Loser | Winner > Loser | Even a 40% win rate is profitable if winners are 2× the size of losers |
Limitations
Backtests are useful guides, not guarantees. The simulation doesn't account for slippage, spread costs, partial fills, or the fact that a live trade's own size can move the price. Treat the backtest as a sanity check: if win rate is below 40% and profit factor is below 1.0 across 30+ trades, the current signal configuration needs review.
📊 Daily Commander's Reports
Select a date to view🪵 System Logs
Live tail · last 200 lines🧾 Tax Reports
Trading Mode Controls
Enable or disable trading per asset class and modeALPACA_PAPER_MODE=true.
Live Mode toggles take effect when you switch to live. Disabling an asset class in live mode blocks it even if the global mode is live.