Safety & controls

Because this trades real money, safety is layered. Here is every control and guardrail, and when to use each.

The manual controls

ControlWhat it doesWhere
Dry-run (per engine)Orders are previewed at Schwab and recorded, but never placed. This is the default for every engine. Switching an engine to LIVE requires typing LIVE to confirm.Settings → Execution mode
Pause tradingOpens nothing new. Exits, management, and manual actions still run.Dashboard
Close-onlyA hard reduce-only lock — nothing opens (autonomous or manual), but management and exits continue. Use it to wind a book down.Dashboard
PANICImmediately flattens every open position and pauses trading. Dashboard
Paper tradingSimulated money on real data — forces dry-run for every engine and never places a real order.Settings → Paper trading

The automatic guardrails (always on)

  • Real-time pricing. Every position is valued on live NBBO bid/ask (never a stale last trade), and a fast poller monitors all open positions continuously.
  • Pre-flight buying-power guard. Before every live order the bot previews it against real buying power (reflecting held and working orders) and skips it if it would over-commit — so it doesn't get rejected.
  • Post-fill reconciliation. The ledger is corrected to the actual fill (price, quantity, legs). A position is only managed or closed once its opening order is confirmed FILLED.
  • No phantom positions. A rejected or skipped live order never records a "filled" position. Day-trade closes cancel the working bracket order first, so you can't oversell.
  • Defined risk. Every position carries a defined stop / max loss, capped at your per-trade % of account.

"Turn on autonomous" ≠ "go live." The autonomous flags let the bot open on its own; the live/dry switch decides whether those opens are real or previews. They are separate — you can run fully autonomous in dry-run.