Operations console
Cascade
The control surface for an algorithmic AI trading bot I built for my own investments. The trading thesis and strategy behind it are mine too.
I designed and built it myself, with AI.
2026 · One file, roughly 3,700 lines · No framework, no build step
28
Thematic Sets
Equities and commodity ETFs.
11
Filter stages
Every candidate screened before entry.
3
Circuit-breaker tiers
Automatic drawdown protection.
2
Compounding levels
Set and whole-portfolio sell-and-compound.
Capital flows to the Sets that are working, and idle cash is treated as a cost.
Live and fully interactive. Every figure shown is simulated and not connected to a broker. Best explored on a desktop screen; on mobile, open it full screen.
The problem
The bot working was never the hard part
It runs unattended on a cloud VM, with real money at stake. The hard part was making it legible to a single operator during market hours, under time pressure.
- A stop loss dragged from −1% to −3% silently moves breakeven from a 33.3% win rate to 60%
- Domain jargon, such as 'three-tier portfolio drawdown protection', to decode during a bad open or a VIX spike
- Safety systems you hope never to see fire, so you never learn them by watching them work
- Ten flat tabs: three kinds of thing (live state, configuration, accounting) shown at identical weight
The solution
Readable in under five seconds
The brief became: make the state of the machine readable in under five seconds, and make the difference between healthy and broken visible without reading logs.
- Every risk parameter is a slider except the stop loss: locked, with the reason stated in the space the control would have occupied
- In plain English: the bot reduces risk or shuts down if the portfolio drops too far in a day, like a fuse box
- The circuit breaker, VIX response and news-confidence reallocation are sliders you drag, watching tiers arm in sequence with nothing at stake
- Everything sits under Monitor (what the system is doing) or Tune (what I have told it to do)
Takeaway: I wrote the system and still wanted the plain sentence.
Insight
Working and broken look identical from the outside
A concrete case from the logs: in one session, most of the 28 Sets found zero valid candidates for the first ninety minutes. That is either correct behaviour, the volume filter refusing to force entries into thin morning liquidity, or a silent failure.
Takeaway: Nothing in the system told me which.
Decisions
What I decided, and what it cost
Refuse to make the stop loss adjustable
Instead of: Expose it like everything else. It is the most obvious parameter to want to tune, and locking it invites the question of who I am protecting.
Cost: Removes real flexibility from an expert user and hard-codes an assumption. I would rather explain a locked control than debug a quietly broken system.
Plain English over domain jargon, everywhere
Instead of: Precise terminology ('three-tier portfolio drawdown protection'): shorter, more professional-looking, and what the domain expects.
Cost: Reads as less sophisticated at a quick look, and takes more space than the jargon it replaces.
Simulators instead of static documentation
Instead of: Document the safety systems in text. Faster to build, easier to keep accurate.
Cost: Simulation controls beside real configuration invited genuine confusion. They now have a separate container and label because of it.
Collapse ten flat tabs into two modes
Instead of: Keep the ten-tab strip: Active Sets, Risk Controls, Entry Filters, Profit Targets, Market Regime, News Layer, Sets & Allocation, Scaling Plan, Tax Obligations, V3 Status.
Cost: More clicks to a specific panel. In exchange the top level answers the real confusion, reality or settings?, before any content loads, and two items fit any screen, deleting the mobile dropdown the strip needed.
Takeaway: I would rather explain a locked control than debug a quietly broken system.
Outcome
It is now being tested with real capital
- Three months of paper trading returned a modest 5 to 7 percent, roughly in line with the S&P 500 over the same window
- The console opens on any machine with SSH access to the VM, without installing anything first
- Accessibility built in rather than retrofitted: skip link, full keyboard navigation, live regions on every simulator, prefers-reduced-motion and prefers-contrast support, and a documented contrast ratio for every colour token
Takeaway: A single quarter was never the point: the two-level compounding is built to pull ahead of the index by a modest margin the longer it runs.