← Command view
CRYPTO · 24/7 · PAPER

Crypto Momentum Suite

Always-on momentum bots scanning and executing across BTC, ETH, and SOL — sized by volatility, monitored around the clock.

◇ 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

This system runs continuously, watching price and volume action across major crypto assets. When conditions line up, it opens a position sized to current volatility, then manages the exit automatically — no manual intervention, no emotion.

Built to run headless and unsupervised: if a process dies it restarts itself, it recovers cleanly after a crash, and it reports its state on an interval so I always know what it is doing.

How it runs

Architecture

Runtime: a Python service running an async scan/execute loop, deployed as a systemd job on a Linux VM so it runs 24/7 with the machine headless.

Data & execution: live market data in, orders routed to an Alpaca paper account out. State and history persisted to SQLite.

Resilience: a watchdog auto-restarts on failure, with crash recovery and a remote kill/pause control.

Telemetry: writes a stats.json snapshot every ~60s (the data this page reads) and pushes alerts to Telegram.

PythonasyncioAlpaca Crypto APISQLitesystemdTelegram Bot API
Guardrails

Rules & risk controls

  • Per-position risk capped as a fixed % of equity
  • Portfolio-level exposure ceiling across all open trades
  • Position size scaled to recent volatility
  • Automated stop / exit logic on every position
  • Global kill switch + remote pause
  • No leverage in the paper configuration
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.

  crypto_suite.py
# crypto_suite.py — illustrative structure (strategy logic redacted)
async def run_cycle(assets):
    for sym in assets:
        bar = await data.latest(sym)
        # --- proprietary momentum scoring: REDACTED ---
        signal = strategy.score(bar)          # internal
        if signal.enter and risk.ok(sym):
            size = risk.size_by_vol(sym, equity)   # vol-scaled
            await broker.submit(sym, size, "buy")   # Alpaca paper
        manage_open_positions(sym)            # auto exits
    telemetry.write("data/stats.json")        # this page reads it