Automated crypto trading research system for Bybit: a universal buy / sell / hold classifier built on gradient boosting, wrapped in a fully automated live-trading loop.
flowchart LR
MD[(📊 Market data)] --> FP[Feature pipeline]
FP --> M{{GBDT predictor}}
M -- buy / sell / hold --> EX[Execution — Bybit API]
EX --> PNL[Positions & P&L]
EX -. trade alerts .-> TG[📨 Telegram]
MD --> RT[Scheduled retraining]
RT -- fresh model --> M
style M fill:#b58900,color:#fff
style EX fill:#0969da,color:#fff
- Signal generation — gradient-boosting models predict the next action per instrument
- Automatic retraining — models are periodically refit on fresh market data, so the system tracks regime drift instead of decaying
- Automated execution — orders placed through the Bybit API, no human in the loop
- Monitoring — trade alerts pushed to Telegram channels
- Reproducible deployment — the whole pipeline ships as a Docker container (
universal_predictor/)
Run live for 5 days: P&L ≈ 0 after fees. The predictive signal that looked promising in backtests did not survive transaction costs and market non-stationarity at this frequency.
Lessons that made it into later work:
- Backtest edge ≠ live edge: fees, slippage and fill behavior must be modeled inside the objective, not checked afterwards.
- Auto-retraining keeps a model current but cannot conjure alpha where the feature horizon has none.
- Infrastructure (retraining loop, execution, alerting) is the reusable asset — the same skeleton works for any signal you plug in.
Python · gradient boosting · Bybit API · Docker / docker-compose · Telegram alerts