journal data: PAUSED · last update 2026-07-07 18:02 UTC (42 days ago) · expected cadence: daily (bot cron, target 23:55 UTC)

Live (paper) account

Account state

This page re-renders from the bot’s state snapshots when its daily cron commits to this repo. The snapshot below is from 2026-07-07 (start of session). If the freshness banner at the top of the page reads STALE or PAUSED, everything on this page describes that date — not today.

fieldvalue (at snapshot, 2026-07-07)
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 opt-intrue at snapshot (LIVE_PAPER_OPT_IN=true, recorded 2026-07-07 11:03 UTC) — not a claim about the mode’s state today
kill-switchclear at snapshot (no KILL_SWITCH file in state/ on 2026-07-07)

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

As of the snapshot date (2026-07-07), the bot was in live paper diagnostic mode, per the operator’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 (at snapshot)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, and the same commit must bump source_ts in data/liveness.json (enforced by scripts/check_liveness.py in CI).
  • GitLab Pages rebuilds the site and deploys automatically.
  • If any of those steps stop running, this page silently freezes. That is what the sitewide freshness banner is for: it compares the declared snapshot timestamp against the clock (at build time and again in your browser) and downgrades the label to STALE after 48h or PAUSED after 7 days.

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/.