Trading bots
Bots that can explain themselves.
Visual strategy rules executed with live/backtest parity, exchange-grade risk rails, broker reconciliation every cycle, paper mode by default — and an X-ray that shows exactly why a bot did or didn't trade.
Rules in, discipline out
A QuantumCat bot is a strategy document — universe, timeframe, entry conditions, exit conditions, risk — compiled to a strict intermediate representation and executed by a runtime that treats live parity as a law: the same condition tree produces the same verdict in the bot, the screener and the backtester. Build one in the visual editor (indicators, price fields, option-chain metrics, Pulse states, time windows, all composable with AND/OR/NOT), or ask JARVIS to build it for you.
How a bot actually trades
- Closed candles only. Entries evaluate on the just-closed bar at the bar boundary — a forming candle can never fire a signal that would have vanished by the close. Daily-class bots wake at 09:16 on the next session, exactly what the backtester simulates.
- Rising-edge entries. A condition that is simply true doesn't trade; it must become true — freshly — while the bot watches. At each session open the edge re-primes, so a gap that leaves your condition true doesn't buy the open blindly.
- Three-valued logic. Conditions evaluate TRUE, FALSE or UNKNOWN (warming indicator, missing data). UNKNOWN never fires an entry and never satisfies a NOT — a warming-up RSI can't sneak a trade through.
- Option structures. Single legs (ATM/ITM/OTM strike rules, expiry selectors) and multi-leg structures (straddles, strangles, spreads, iron condors) with hedge-first sequencing and unwind-on-partial so a defined-risk structure can't silently become a naked short.
Risk rails, per bot
| Rail | Behaviour |
|---|---|
| Stop-loss / target / trail | Points, percent, ATR- or R-multiple based; premium-basis on option legs. App-side rails check every second; broker-side stops (GTT) can be armed where the broker supports them — and each is labeled which one it is. |
| Daily loss cap | Realized + open P&L, re-baselined at the day open so a carried position's old drawdown isn't double-counted. Breach = square off + halt for the day. |
| Trade/entry caps & re-entry | Max trades per day, re-entry counts with cooldowns, time-of-day windows, a time-exit that flattens at your cutoff. |
| Reconciliation | The runtime reconciles its book against the broker's every cycle: externally closed legs are booked with their real P&L, uncertain fills HOLD the edge rather than re-fire, and a placed-but-unconfirmed order is never double-placed. |
| Feed fail-safe | A stale feed with an unprotected position triggers a protective flatten; a wrong-broker feed pauses evaluation entirely (colliding token namespaces can't fabricate a signal). |
Paper first, X-ray always
Paper mode is the default. Paper fills cross the spread honestly (buy the ask, sell the bid) and refuse to open at a fantasy price. When you do go live, the per-bot X-ray shows the exact condition tree with every leaf's live value — why it entered, why it didn't, which gate (schedule, regime, cap, cooldown) is holding it — and an activity log of every decision. “Why didn't my bot trade today?” has a real answer in one click.
Regulatory honesty
Bots place orders through your broker's official API under your credentials and rate limits. Depending on your broker and strategy, exchange algo rules may apply to you; paper mode is default for a reason. Read your broker's API terms — compliance with them is yours.