Paper trading is the default for a reason: it's how you find out your risk profile, your module selection and your server actually behave the way you expect, before any of it touches real money. Going live is a deliberate, separate step — not a setting you flip in the dashboard, but a real brokerage account swap. Here's exactly what changes, and what to check before you do it.
What's actually different about going live
Paper and live aren't two modes of the same account — they're two entirely separate accounts with separate credentials. There's no toggle that converts a paper account into a live one. Going live means opening a real, funded brokerage account and giving the system that account's credentials alongside — not instead of — the paper ones.
Live trading in Apex runs through Tradier. Your Alpaca paper account stays configured throughout; it continues supplying market data in the background even after you go live, so there's no need to remove or replace it.
The checklist
Open a real Tradier account
Not the sandbox — a funded, live Tradier brokerage account. Generate a live API access token and note your account number from Tradier's side; neither one carries over from anything you've used in paper testing.
Set two flags in your Tradier account config
accounts/tradier-main.envTRADIER_PAPER=false PRIMARY=true
TRADIER_PAPER=falsepoints the account at Tradier's live API instead of its sandbox.PRIMARY=trueis what actually redirects new buy signals to this account — without it, the system keeps trading paper even with valid live credentials sitting right next to it.Confirm shadow mode is off
If
SHADOW_MODE=trueis set anywhere in your configuration — commonly left on from earlier testing — orders are logged but never actually sent to the broker, regardless of which account they're routed to. It's an independent kill switch from the paper/live account setting, and worth checking explicitly rather than assuming it's already off.Restart the service
Configuration is read once at startup — there's no hot-reload. Changing these values doesn't take effect until the service restarts:
bashsudo systemctl restart trading-system
From that restart onward, every new entry the system generates is a real order against real funds. There's no partial or gradual switch — it's live from the first signal after the service comes back up. Do this at a point where you can watch the dashboard through the next session, not right before you step away.
What to check before you flip it
- Your risk profile is set the way you actually want it live, not left on whatever you were using to stress-test paper
- You've reviewed which modules are enabled — everything your tier unlocks that's currently on will start placing real orders, not just the ones you've been paying attention to
- Position sizing and the daily loss ceiling reflect your real account's equity, not a paper balance that may not match it
- You have Telegram or email alerts configured, so you're not relying on checking the dashboard manually for the first live session
None of this is meant to make going live feel harder than it needs to be — it's meant to make sure the moment you do, it's because you decided to, not because a setting carried over from testing without you noticing.