Charles screens the market, reasons over each candidate, and places trades autonomously. Run it locally on your own machine, or self-host it on a server to run 24/7. Deploy in about 20 minutes and watch it from a live dashboard.
Paper-trading mode by default — no real money at risk. Switch to live trading anytime by connecting a funded Alpaca account. Free and open source — yours to run, read, and modify.
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.
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.
Charles builds its own watchlist each session — no hand-fed tickers. It scans, ranks, and picks the strongest setups on its own.
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.
Every trade, every error, every morning routine pings your phone instantly. You always know what Charles is doing.
A Streamlit dashboard on port 8501 — open it from any device, anywhere, to see positions, P&L, and the decision log.
Installed as a systemd service: it auto-starts on reboot and restarts itself on crash. Set it once and forget it.
Charles ships with a full Streamlit dashboard accessible at port 8501 on your server. Open it from any browser — desktop, tablet, or phone — to watch positions, signals, and decisions in real time. These are real screenshots from a live running instance.
Dashboard updates every 15 seconds automatically. Access it from any device at http://YOUR_SERVER_IP:8501
Download the bot, deploy it to your own server, and run it. No license, no subscription, no gatekeeping — the entire codebase is yours.
Grab the Charles bundle — it's free. No account, no payment, no catch.
Spin up a DigitalOcean droplet — new accounts get $200 free — and run one deploy script. Full walkthrough in the setup guide.
Add your free API keys (Alpaca, Groq) to a .env file. Two minutes.
charles-start — and it's live. Watch the dashboard or just read the Telegram alerts.
Charles is a free and open research project. Download the full bot, deploy it to your own server, read every line of code, and modify it however you like. No subscription, no license key, no gatekeeping.
The complete autonomous trading bot. Run it on your own server in about 20 minutes.
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.
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.
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.
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.
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.
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.
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.