Back to Arena

Cumulus + Tradier Automated Options Purchasing and Selling

Executive operating model for how Cumulus identifies a boss target, executes a controlled buy_to_open, and enforces layered exits via broker OCO and redundant sweeper logic.

Signal engine: options_engine.py Entry trader: trade_boss_target_cli.py Exit sweeper: manage_open_positions_cli.py Broker API: Tradier Window: 09:35-15:55 ET weekdays
Primary Selection Unit
Boss Target (Top 1)
Entry Order Type
Limit Buy To Open
Default Exit Triggers
TP 30% / SL 25% / Max Hold
State + Audit
JSON state + JSONL trades log

Dynamic Scenario View

Adjust controls to see how the operating path changes in practice.

Execution Path Diagram

Dynamic route map by scenario

System Architecture

Data to order lifecycle

Signal and Risk Funnel

How a contract becomes the boss target

How Purchasing Works

  1. Snapshot generation: Cumulus scans universe contracts and ranks by score.
  2. Boss target selection: top-ranked pick (picks[0]) becomes entry candidate.
  3. Health + history gate: stale snapshot, aged data, or empty history can block entry.
  4. Tradier guardrails: cash-account check, live quote check, spread and notional checks.
  5. Order submit: limit buy_to_open with polling and timeout handling.
  6. State commit: persist pending/open position and append JSONL audit event.

How Selling Works

  1. Primary path: broker OCO submits paired TP and stop sell_to_close legs.
  2. Fallback path: in-process monitor checks quote ticks and triggers TP/SL/max-hold.
  3. Redundancy path: sweeper script scans all open options and exits by same rules.
  4. Fill verification: all exits poll order status until filled, failed, or timeout.
  5. PnL accounting: realized PnL updates daily state with per-contract fee deduction.
  6. Resilience: pending-entry recovery on restart prevents duplicate new entries.

Control Tower Matrix

Control Intent Implementation Failure Response
Market-hours gate Only trade during liquidity window run_boss_target_cycle.sh and manage_open_positions_cli.py Skip cycle
Cash-account safeguard Block margin-risk entry behavior TradierClient.assert_cash_account() Hard fail
Snapshot freshness + health Avoid stale/empty signal sets _snapshot_health_violations() Trade blocked (rc=2)
Entry risk gates Bound confidence, spread, notional, daily loss _risk_violations() Trade blocked (rc=2)
Exit redundancy Multiple independent sell paths OCO + optional monitor + sweeper Continue with alternate path
Recovery state Crash-safe reconciliation .cumulus_state/trading/state.json Recover / avoid duplicate entry
Educational operating overview. Not investment advice.