← Command view
EQUITIES · MARKET HOURS · PAPER

Multi-Bot Equity Engine

Five coordinated bots trading index ETFs and large-caps, fed by one capital allocator with real-time P&L tracking.

◇ SIMULATED PAPER TRADING — demonstration only, not financial advice.
View source — prometheus-algo-trader
Equity
Total Return
Today
Open Positions
Uptime
What it does

The job, in plain English

Five separate bots run side by side. A central allocator decides how much capital each one gets and rebalances as conditions shift, so the strongest setups get funded and the rest stand down.

A market-regime check sits in front of everything — when the environment looks hostile, the engine throttles down rather than forcing trades.

How it runs

Architecture

Runtime: Python services coordinated by a capital-allocator module, run as systemd jobs; a small FastAPI service exposes the dashboard data.

Data & execution: equities data in, orders to an Alpaca paper account out, with a real-time P&L tracker persisted to SQLite.

Resilience: watchdog auto-restart, crash recovery, and a daily P&L report.

Telemetry: publishes a stats.json snapshot the front end polls; Telegram for alerts.

PythonFastAPIAlpaca APISQLitesystemdTelegram
Guardrails

Rules & risk controls

  • Max concurrent positions across the fleet
  • Per-bot capital ceiling set by the allocator
  • Daily loss limit → engine halts for the day
  • Market-regime filter gates new entries
  • Regular-trading-hours only
  • Central kill / pause for the whole fleet
Under the hood

Illustrative structure

The shape of the code — enough to show how it is engineered, with the actual strategy logic redacted. The edge stays private.

  equity_engine.py
# equity_engine.py — illustrative structure (strategy logic redacted)
def allocate(bots, equity, regime):
    if regime.hostile:
        return stand_down(bots)          # throttle
    # --- proprietary allocation weights: REDACTED ---
    weights = allocator.solve(bots, equity)
    for bot, w in weights.items():
        bot.set_budget(w * equity)
        bot.step()                        # place/manage trades
    pnl.update(); telemetry.write("data/stats.json")