The stack:
LightGBM gradient boosting for stock ranking (~30 min training) JAX PPO reinforcement learning for position sizing (~5.5 hrs training) 51 features: value metrics, momentum, quality factors, sentiment Walk-forward validation (no lookahead bias) PostgreSQL + FastAPI + React on a single Hetzner CCX33 (32GB RAM, 8 vCPU)
How it works: Every evening after market close, the pipeline runs: fetch EOD data, calculate ratios, refresh materialized views, retrain models, generate predictions, rebalance portfolios. Surgical daily updates (1-5 position changes) rather than full rebuilds.
Recent war story: Three weeks ago I had 19+ consecutive pipeline failures. Materialized views owned by postgres user blocked my acis user from refreshing. Cascade: stale technical indicators -> no PE/PB data -> broken ML features -> invalid predictions. Recovery required manual rebuilds of EMA, SMA, RSI, MACD for 1,700+ stocks. Lesson: monitor data freshness, not just job completion.
Results so far: 61 trading days tracked. Best strategy: +9% alpha vs SPY. Live performance data (updated daily): https://acis-trading.com/investor-reports
The model:
$99/month flat fee (vs ~$5,000/year at 1% AUM on $500K) You keep your money at your own brokerage Daily recommendations via API or web dashboard
Happy to answer questions about the ML architecture, pipeline design, or the business model.