Supervisor Agent
Status: Verified against code Last Updated: 2025-12-11
Role in Plain English
The Supervisor Agent is the final decision maker. It takes all the verdicts from Technical, Macro, and Wild Card agents and produces the complete trade plan:
"Given everything we know, what's the trade and how do we execute it?"
What It Does
1. Synthesizes Agent Verdicts
The Supervisor receives:
- Technical Verdict: Direction, confidence, entry type, S/R levels
- Macro Verdict: Market regime, cross-asset alignment, economic assessment
- Wild Card Verdict: Risks identified, contingencies, timing considerations
- VWAP Context: Today's VWAP extracted from snapshot (for intraday bias)
VWAP in Supervisor Prompt: The Supervisor extracts VWAP from the snapshot and includes it in its synthesis:
- Price above VWAP = favor longs
- Price below VWAP = favor shorts
- Used as dynamic support/resistance for entry zone decisions
2. Resolves Conflicts
When agents disagree:
| Scenario | Resolution |
|---|---|
| Technical says LONG, Macro says LONG | Strong agreement → High confidence trade |
| Technical says LONG, Macro says SHORT | Technical wins (has actual price data) |
| Technical says LONG, Macro says NEUTRAL | Trade the Technical direction |
| Both say NEUTRAL <40% | No Trade |
3. Makes Trade/No-Trade Decision
TRADE when:
- Both agents agree (any direction)
- ONE agent is directional with >50% confidence
- BOTH agents have ANY directional opinion
NO TRADE only when:
- BOTH agents say "neutral" with <40% confidence EACH
- Market is completely closed
- Critical system error
4. SHORT Trade Safety Checks (CRITICAL)
When the Technical Agent recommends a SHORT trade, the Supervisor applies extra validation:
| Check | Action |
|---|---|
| Macro is risk_on (bullish) | REDUCE overall confidence by 15%, add warning |
| Macro is neutral | Add note "extra caution advised" |
| Macro is risk_off (bearish) | Full confidence, conditions aligned |
| Pattern not yet broken | Flag as "anticipatory signal - wait for breakdown" |
| Entry type mismatch | Flag if Technical used wrong vocabulary for shorts |
| Confidence cap | NEVER issue SHORT with >80% confidence unless Macro confirms bearish |
This does NOT apply to LONG trades — Technical Agent has full authority for longs.
5. Calculates Position Details
For the trade plan, Supervisor determines:
| Element | How It's Determined |
|---|---|
| Entry Zone | From Technical Agent's support levels |
| Position Size | Account size × Risk % ÷ Stop distance |
| Stop Loss | Based on trade style + support levels |
| Profit Targets | Based on trade style + resistance levels |
| Time Stop | Based on trade style (minutes to weeks) |
6. Selects Options Contracts (If OPTIONS)
For OPTIONS trades, the Supervisor uses a three-phase filtering process:
Phase 1: Strict Delta (0.30-0.55)
- Filters contracts with delta between 0.30 and 0.55
- This is the ideal range (balance of leverage vs risk)
Phase 2: Expanded Delta (0.20-0.65)
- If Phase 1 finds ZERO contracts, expands to 0.20-0.65
- Catches more contracts while still avoiding extremes
Phase 3: Valid Pricing Fallback
- If Phases 1 and 2 both fail, accepts contracts with NULL delta but valid bid/ask
- Must have bid > 0 AND ask > 0
- Adds note: "Delta unavailable from API - use caution"
Phase 4: No Trade
- If ALL phases fail, returns NO TRADE
- Reason: "No suitable options contracts found"
Mike's Top 5 Criteria (Selection Priority)
| Priority | Criteria | What to Look For |
|---|---|---|
| 1 | Price | Must fit risk budget ($200-$1000 per contract typical) |
| 2 | Volume | Higher is better (easier entry/exit) |
| 3 | Theta | Lower absolute value (less daily decay) |
| 4 | Delta | Target 0.30-0.55 (balance leverage vs risk) |
| 5 | Open Interest | Minimum 100, prefer 1000+ |
DTE by Trade Style
| Style | DTE Required | Note |
|---|---|---|
| SCALP | 0DTE when available (otherwise nearest expiration) | Index ETFs (SPY/QQQ/IWM) can have daily expirations. Individual stocks typically only have true 0DTE on Fridays — otherwise use the nearest expiration and label it clearly (not true 0DTE). |
| DAY | 3-7 DTE | Matches 1-5 day holding period |
| SWING | 8-30 DTE | 2-3 week positions |
| INVESTMENT | 30-60 DTE | Longer term holds |
7. Post-LLM Contract Validation
After the LLM selects a contract, the Supervisor validates the response to prevent hallucination:
| Validation Check | Requirement |
|---|---|
| Symbol format | Must start with "O:" |
| Expiration format | Must be YYYY-MM-DD |
| Bid/Ask | Both must exist and be positive |
| Strike | Must exist and be positive |
| Cross-reference | Symbol must be in the original contract list |
If validation fails, the trade is REJECTED with reason "Contract validation failed."
Trade Plan Output Structure
The Supervisor produces a complete trade plan:
Synthesis Section
- Technical confidence: 0-100%
- Macro confidence: 0-100%
- Wild card risk: low/moderate/high
- Agent agreement: full/partial/conflict
- Conflict resolution: how resolved
Entry Section
- Direction: LONG or SHORT (explicit)
- Recommendation: specific entry trigger
- LONGS: "buy_support_bounce", "buy_pullback_after_breakout"
- SHORTS: "short_resistance_rejection", "fade_bounce"
- Ideal zone: low/mid/high prices
- Wait for: explicit directional instruction
- LONGS: "Wait for price to pull back DOWN to $X support, then BUY"
- SHORTS: "Wait for price to bounce UP to $X resistance, then SHORT"
Position Section
- Size recommendation: full/half/quarter
- Quantity: number of shares/contracts/coins
- Unit type: "contracts" (OPTIONS/FUTURES), "shares" (STOCK), "coins" (CRYPTO)
- Total cost: dollar amount
- Max risk: dollar amount (% of account)
Exit Section
- Stop loss: price range + total loss
- Target 1: price range + 50% position
- Target 2: price range + 50% position
- Time stop: when to exit regardless of price
Options Section (If Applicable)
- Recommended contract: full symbol (O:SPY...)
- Type: CALL or PUT
- Strike: price
- Expiration: date (YYYY-MM-DD)
- Greeks: delta, theta, gamma, vega
- Bid/Ask: current quotes
- Volume and Open Interest
- Selection rationale: Mike's Top 5 scores
Stop/Target Guardrails by Trade Style
| Style | Typical Stop Guardrail | Target 1 | Target 2 | Time Stop |
|---|---|---|---|---|
| SCALP | $0.50-$1.00 (STOCKS) | $1.00-$1.50 (50%) | $2.00-$2.50 (50%) | 15-30 min |
| DAY | $1.00-$2.00 (STOCKS) | $2.00-$3.00 (50%) | $4.00-$5.00 (50%) | Market close |
| SWING | $2.00-$3.00 (STOCKS) | $4.00-$6.00 (50%) | $8.00-$10.00 (50%) | 3-5 days |
| INVESTMENT | 1.5-2x ATR (wide, anchored to major structure) | Based on resistance | Based on trend | None |
Important: These are guardrails, not fixed presets. The Supervisor is instructed to place stops using support/resistance structure and adjust the buffer based on the Technical Agent’s volatility regime. If market structure requires a wider stop than the guardrail for that style, the plan should clearly flag that the style is not ideal (or recommend no trade / different style).
CRITICAL: CRYPTO Time Stops
Crypto trades 24/7 — no market close. Use hour-based time stops:
- DAY: "Close within 8-12 hours"
- NOT: "Close by 4:00 PM ET"
Crypto time-stop rule:
- Crypto trades are 24/7 (no market close)
- Never use “Close by EOD” / “4:00 PM ET” language for crypto
- Use hour-based time stops instead (e.g., “Close within 8 hours”)
Probability Ranges
The Supervisor is instructed to provide RANGES, not single values:
- Entry zone: low/mid/high with confidence
- Targets: ranges with probability of reaching
- Confidence: explanation of what % means
Example: "75% confidence means Technical and Macro align with moderate conviction. There's a 25% chance the trade fails due to unexpected news or failed support."
Implementation details are intentionally omitted from public documentation.