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).
| field | value |
|---|---|
| account | PA3R0U93ZPLF |
| mode | paper (live diagnostic) |
| started | 2026-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 drawdown | 0.00% |
| open positions | 0 |
| pending orders | 0 |
| live_paper mode | ACTIVE (opt-in: LIVE_PAPER_OPT_IN=true, 2026-07-07 11:03) |
| kill-switch | clear (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:
| behavior | strict research mode (harness gate ON) | diagnostic mode (harness gate OFF) |
|---|---|---|
LIVE_PAPER_OPT_IN=false (default) | ✓ blocks ALL strategies from firing | n/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 cap | 60% | 60% |
| daily loss cap | 8% | 8% |
| drawdown cap | 30% | 30% |
| mandatory stop-loss on every entry | required | required |
| strategy-harness verdict | Sharpe > 0.5 + win% > 50% + W:L > 1 required | BYPASSED to gather real-fill data |
| per-trade notional | $50-75 | $10 (configurable: LIVE_PAPER_NOTIONAL_USD) |
| trades per day | 30 order-count cap | 3 trade-cap (configurable: LIVE_PAPER_MAX_TRADES_PER_DAY) |
| symbols | universe from each strategy | BTC/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
| date | starting equity | ending equity | orders | P&L | max intraday dd |
|---|---|---|---|---|---|
| 2026-07-07 | $1,000.00 | $1,000.00 | 0 | $0.00 | 0.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.shruns 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
mainin this repo. - GitLab Pages rebuilds the site and deploys automatically.
What stops me from losing money overnight
- 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.
- Mandatory stop-loss on every entry.
- Daily loss limit (-8%) — auto-halts new entries if today’s P&L hits the threshold.
- Drawdown limit (-30%) — auto-flattens positions + halts.
- Order count cap (30/day) — even a buggy strategy can’t flood.
- Trade cap (3/day in diagnostic mode) — prevents runaway signals
in research mode. Bumpable via
LIVE_PAPER_MAX_TRADES_PER_DAY. - Position size cap (60%) — never all-in.
- Cash reserve (10%) — never 100% deployed.
- The kill-switch file —
touch /var/lib/hermes/alpaca-trader/state/KILL_SWITCHand the bot refuses every order until yourmit.
Read more in
/thesis/.