CHRLS ▲ AUTONOMOUSSPY +0.42%NVDA +1.18%AAPL −0.31%ENGINE ● ONLINETSLA +2.04%MODE PAPER · RISK-FREEUPTIME 99.9%COST < $20/mo* CHRLS ▲ AUTONOMOUSSPY +0.42%NVDA +1.18%AAPL −0.31%ENGINE ● ONLINETSLA +2.04%MODE PAPER · RISK-FREEUPTIME 99.9%COST < $20/mo*
Self-hosted · runs for under $20/month*

Your own AI trading bot, working 24/7 while you sleep.

Charles screens the market, reasons over each candidate, and places trades autonomously — on a server you control. Deploy it in 20 minutes, watch it from a live dashboard, and never babysit it.

Paper-trading mode by default — no real money at risk. Switch to live trading anytime by connecting a funded Alpaca account. Stripe-secured subscription, cancel anytime.

root@charles:~ — bash
charles-start
🔑 License check… IP 198.51.100.24 — ACTIVE ✓
✅ Charles started
📊 Dashboard: http://your-server:8501
 
charles-logs
09:30:02 INFO 🌅 Morning routine…
09:30:03 INFO 🔍 Screener scanning 100 stocks…
09:30:09 INFO 🔍 Screener ranked 10 candidates
09:30:11 INFO 📈 PAPER BUY NVDA · 4 sh · $847.20 · conf 0.84
09:30:11 INFO 📱 Telegram alert delivered
 
charles-status
● running · uptime 6d 4h · 0 errors
What Charles does

An entire trading desk, in one process.

No clicking, no chart-staring. Charles handles the full loop — screen, reason, decide, log, alert — and keeps doing it whether you're watching or not.

🧠

Reasoning engine

Every candidate is reasoned over by a large language model. The bot explains why it acts — with a confidence score and written rationale logged for every decision.

🔍

Autonomous screener

Charles builds its own watchlist each session — no hand-fed tickers. It scans, ranks, and picks the strongest setups on its own.

🛡️

Paper or live trading

Runs on Alpaca's paper API by default — zero money at risk while you evaluate. Connect a funded Alpaca account anytime to switch to live trading.

📱

Telegram alerts

Every trade, every error, every morning routine pings your phone instantly. You always know what Charles is doing.

📊

Live dashboard

A Streamlit dashboard on port 8501 — open it from any device, anywhere, to see positions, P&L, and the decision log.

24/7 + self-healing

Installed as a systemd service: it auto-starts on reboot and restarts itself on crash. Set it once and forget it.

How it works

From subscription to live bot in four steps.

Your subscription unlocks an access key tied to your server's IP. The bot will only run while that key is active — billing and access stay perfectly in sync.

1

Subscribe

Pick a plan and pay through Stripe. Your account is created instantly.

2

Deploy

Spin up a DigitalOcean droplet — new accounts get $200 free — and run one deploy script. Full walkthrough in the setup guide.

3

Activate

Charles registers your server's IP. As long as your subscription is active, the access whitelist lets it run.

4

Trade

charles-start — and it's live. Watch the dashboard or just read the Telegram alerts.

Total cost of ownership

The whole thing runs for under $20 a month.

(with DigitalOcean promotion applied)

Charles is built around free and near-free infrastructure. Here's every line item — nothing hidden.

ItemWhat it's forCost
DigitalOcean droplet4 GB / 2 vCPU server, runs 24/7$24/mo ~$0*
Charles subscriptionAccess key + updates + support$19/mo
Groq APILLM inference — trade reasoningFree tier
Alpaca paper tradingMarket data + order simulationFree
Telegram alertsReal-time notificationsFree
TotalEverything, all-in~$19/mo*

* New DigitalOcean accounts receive $200 in free credit — covering ~8 months of server hosting. Claim your $200 credit here →
During those 8 months, your all-in cost is just $19/month for the Charles subscription.

Pricing

One simple monthly plan.

Cancel anytime. When your subscription lapses, your access key deactivates and the bot stops on its own — no commitment, no lock-in.

★ Charles Subscription
$19/month

Everything you need to run Charles 24/7 on your own server.

  • Server access key (IP-whitelisted)
  • 24/7 autonomous operation
  • Autonomous reasoning engine
  • Telegram alerts & live dashboard
  • One-command deploy & updates
  • Priority support
Subscribe with Stripe
Please read. Charles runs in paper (simulated) mode by default — no real-money orders are placed until you explicitly connect a funded live Alpaca account. It makes no profit guarantees in either mode. Nothing here is financial advice. Markets carry risk; past or simulated performance does not predict real results. You are responsible for how you use the software and for any rules that apply to you.
How Charles trades

A disciplined swing trader, not a gambler.

Charles isn't a day trader chasing minute-by-minute moves. It's a swing trader — holding positions for days to weeks, entering on high-conviction signals, and exiting with a plan. Here's how it thinks.

🔍

Dynamic screening

Every morning and at 1 PM, Charles scores 100 liquid stocks across momentum, volume, RSI, 50-day MA breakout, relative strength vs SPY, and 52-week proximity. The top 10 become the day's watchlist — no manual input required.

📐

Multi-signal entry

Charles only enters a position when multiple signals align: price breaking above the 50-day MA, RSI in the momentum zone (45–68), MACD confirming, volume above average, and the stock outperforming the broader market.

🌡️

Market regime awareness

Before placing any buy, Charles checks the overall market temperature — SPY trend, choppiness, and volatility. In a confirmed downtrend it suppresses new entries entirely and focuses on protecting existing positions.

🧠

Reasoned decisions

Every candidate passes through a large language model that reads the full picture — technicals, news sentiment, position context, and hold duration — before returning a BUY / SELL / HOLD with a confidence score and written rationale.

🛡️

Layered risk controls

Dynamic trailing stops (tighter on losers, wider on winners), earnings exit protection, a 7-day stale-trade cutoff, a daily loss limit kill switch, and a pre-market gap filter all run automatically.

🔄

Self-improving

Charles tracks its own win rate over closed trades and automatically tightens or loosens its confidence threshold based on recent performance — adapting without any manual tuning.

Default mode is paper trading. All of the above runs on simulated orders with zero real money at risk. When you're ready to trade live, connecting a funded Alpaca account is a single key swap in your .env file.