← All projects

Paper-trading portfolio bot

XGBoost and LSTM trend models, a score-based ETF allocation and a news sentiment sleeve, running on paper money with a web dashboard.

Context
Personal project
When
2025 to 2026
Stack
Python, scikit-learn, XGBoost, TensorFlow, FastAPI, HTMX, SQLite, Docker

From experiments to one system

It started as four separate scripts: an XGBoost trend classifier, an LSTM, a test bot and a backtester. I consolidated them into one codebase with a model registry, so the live runner always loads a model together with the features and scaler it was trained with.

Strategy

Safety first

The bot refuses to start unless it is pointed at a paper account, runs as a dry run by default, and keeps every decision and order in SQLite for the FastAPI and HTMX dashboard.