Live (paper) account

Account state

This page re-renders from /var/lib/hermes/alpaca-trader/state/ on the bot’s daily cron. Last refreshed: 2026-07-07 (start of session).

fieldvalue
accountPA3R0U93ZPLF
modepaper (live diagnostic)
started2026-07-06 23:35 UTC
starting balance$1,000.00
current equity$1,000.00
cash$1,000.00
buying power$1,000.00
all-time P&L$0.00 (0.00%)
peak equity$1,000.00
peak-to-now drawdown0.00%
open positions0
pending orders0
live_paper modeACTIVE (opt-in: LIVE_PAPER_OPT_IN=true, 2026-07-07 11:03)
kill-switchclear (no KILL_SWITCH file in state/)

Live paper-trading — what’s on, what’s off

The bot is now in live paper diagnostic mode as of the user’s 2026-07-07 11:03 directive. This means:

behaviorstrict research mode (harness gate ON)diagnostic mode (harness gate OFF)
LIVE_PAPER_OPT_IN=false (default)✓ blocks ALL strategies from firingn/a — script aborts before any order
LIVE_PAPER_OPT_IN=true (current)n/a✓ fires strategies that pass the 7 live safety gates
kill-switch file✓ refuses all trades✓ refuses all trades
per-asset position cap60%60%
daily loss cap8%8%
drawdown cap30%30%
mandatory stop-loss on every entryrequiredrequired
strategy-harness verdictSharpe > 0.5 + win% > 50% + W:L > 1 requiredBYPASSED to gather real-fill data
per-trade notional$50-75$10 (configurable: LIVE_PAPER_NOTIONAL_USD)
trades per day30 order-count cap3 trade-cap (configurable: LIVE_PAPER_MAX_TRADES_PER_DAY)
symbolsuniverse from each strategyBTC/USD + ETH/USD only by default

Why this mode: backtests showed all 3 strategies (mean_reversion_v1, mean_reversion_v2, momentum_v1) have ambiguous to negative edge on the 30/90/270/365-day windows I tested. Real fills reveal more than synthetic backtests — they capture slippage, order-book behavior, and true probability distributions on Alpaca Crypto’s microstructure. After ~30-50 real fills land in journal/, the regime classifier (next architecture step) will have real data to learn from.

Why it’s safe: the 7 live safety gates still fire. The only loosening is the strategy-harness verdict gate which existed in the harness code path but never in Trader.place()’s submit path. The bot cannot blow the account overnight. It CAN make small losing trades ($10 at a time, 3/day max = $30/day cap) which is the price of real data — acceptable for a $1000 paper account where the 200-trade gate for cutover to live still applies.

Open positions

No positions. First entry will appear once the strategy+regime gates pass backtest and get live-fired.

Daily history

datestarting equityending equityordersP&Lmax intraday dd
2026-07-07$1,000.00$1,000.000$0.000.00%

How this gets updated

  • The bot’s daily cron (id 8fbc640f5579 “Alpaca trader daily report”) runs at 23:55 UTC.
  • It pulls the live account state via Alpaca’s TradingClient, snapshots the equity into state/daily.jsonl, and renders this page.
  • The new scripts/run_daily_full.sh runs daily_report.py then (if LIVE_PAPER_OPT_IN=true) live_paper_run.py to populate journal entries with real cycle data.
  • A new version of this page is committed to main in this repo.
  • GitLab Pages rebuilds the site and deploys automatically.

What stops me from losing money overnight

  1. No live trading yet. All strategies still fail the strict backtest harness verdict gate (Sharpe > 0.5). Live paper mode bypasses this ONLY for diagnostic purposes; live-fire (real money) is gated on 200+ profitable paper trades AND a working regime classifier.
  2. Mandatory stop-loss on every entry.
  3. Daily loss limit (-8%) — auto-halts new entries if today’s P&L hits the threshold.
  4. Drawdown limit (-30%) — auto-flattens positions + halts.
  5. Order count cap (30/day) — even a buggy strategy can’t flood.
  6. Trade cap (3/day in diagnostic mode) — prevents runaway signals in research mode. Bumpable via LIVE_PAPER_MAX_TRADES_PER_DAY.
  7. Position size cap (60%) — never all-in.
  8. Cash reserve (10%) — never 100% deployed.
  9. The kill-switch filetouch /var/lib/hermes/alpaca-trader/state/KILL_SWITCH and the bot refuses every order until you rm it.

Read more in /thesis/.