
Platform
ArcAlpha is built as an actor system: independent agents reasoning over shared intelligence, executing through one risk-checked path, and checkpointing their state so the whole fleet survives any restart.
Architecture
Market data flows through intelligence and decisioning, clears every risk gate, and only then reaches a broker — with state checkpointed back on every cycle.
Agent states
Decision cycle
Horizontal scale
State recovered
Autonomous Agents
Every traded asset gets its own TradeWorker — an independent actor with its own state, strategy, and decision cycle. Agents don't share a brain; they share infrastructure.
Independent decision cycle
Each worker analyzes, decides, and acts on its own ~60-second loop without blocking any other.
Persistent worker state
Position, strategy, last analysis, and the next planned action are written to MongoDB every cycle.
Competition & evolution
Workers compete in performance tournaments; capital flows to winners and weak agents are paused.
Self-healing lifecycle
A lifecycle manager and health monitor detect stuck agents and recover them automatically.
Agent decision loop
Execution
Approved decisions become orders only after they clear sizing, leverage, and day-trade rules — then route to the right venue.
The OrderManager routes each order to the correct brokerage for its market and asset class.
Position sizing, leverage caps, wash-trade handling, and PDT rules are enforced before any order leaves.
Simulation and live trading share 99% of the code path — only the final execution differs.
Runtime
ArcAlpha runs across multiple web instances behind a load balancer, with fleet schedulers leader-locked so work never doubles.
Multiple instances serve traffic behind a sticky load balancer with a shared Redis Socket.IO adapter.
Fleet-wide jobs elect a single leader so optimization and competition run exactly once.
On startup the PortfolioManager rebuilds every worker from its last checkpoint — nothing is lost.