
TradeAI
Same rules. Less stress.
An ML trading system that plans and executes a daily rebalance, reaching a 1.6 Sharpe ratio in live equity trading since March 2026.
- Before
- 01ManualI planned and traded by hand.
- Build and validate
- 02TrainLightGBM models on historical data.
- 03BacktestThe strategy tested on past data.
- 04Paper tradeReal market, no real money.
- Live
- 05AssistedTradeAI plans positions; I add my judgement and place the orders by hand.
- 06AutomatedIt trades through Alpaca unless I veto it in Telegram.
A · Plan
- 01FeaturesMarket data is ingested and features are computed.
- 02InferenceLightGBM models score the universe.
- 03Rebalance planPositions are picked from the predictions and sized by volatility.
- 04TelegramThe plan is announced in Telegram.
B · Execute
- 05Veto windowIt executes unless I reject it, before the close.
- 06ExecuteOrders go through Alpaca: sells first, then buys.
- 07RecordEvery trade and fee is recorded in PostgreSQL.
- 08DashboardA Next.js dashboard shows holdings and allocation.
The story
The problem
I'd been trading equities by hand and wanted to get into AI. I also wanted results steadier than my own: a system that follows the same rules every trading day, without emotional decisions.
How it evolved
It began as a manual routine: computing features, generating a plan, trading in Robinhood and recording each trade. I trained LightGBM models, backtested the strategy and paper traded it. Then I used TradeAI's plans alongside my own judgement, placing the orders by hand, before moving to live trading through Alpaca's API with Telegram approvals.
How it runs
Each day it ingests market data, computes features, runs inference and plans a rebalance, sizing positions by volatility. Plans arrive in Telegram and execute unless I reject them before the close. Every trade and fee is recorded in PostgreSQL, and a Next.js dashboard shows holdings and allocation. The dashboard is reachable only from my own devices over Tailscale.
The result
Trading live since March 2026, it has reached a 1.6 Sharpe ratio and a 2.0 Sortino ratio, with an 8% max drawdown. Both ratios are annualized from the account's daily returns (adjusted for deposits, with a 4% risk-free rate), and the drawdown is measured on daily closes. That covers about seven months, and the dashboard tracks the account against SPY.
The code is private. I'm happy to walk through it.
