Trading Bot
Python trading bot project using machine learning to decide which assets should be held. The bot is intended to trade through the IBKR API, beginning with paper trading and potentially supporting real trades later behind explicit safeguards.
Project Status
This repository is at the planning and scaffolding stage. The machine learning model, trading parameters, asset universe, and risk rules will be designed later.
Main Parts
- Training data collection
- Model generation and training
- Trading bot using the trained model
- Optional read-only web UI for trading status
Environment
Use mise to manage Python and uv to manage Python packages.
mise install
mise exec -- uv sync
mise exec -- uv run python --version
The current local Python version is pinned in .mise.toml.
Dependencies
Runtime dependencies are declared in pyproject.toml.
ib-insyncfor the IBKR API connection.pandasfor tabular candle data handling.pyarrowfor Parquet file support.
Trading Safety
The default target is paper trading. Real trading should only be added later with explicit configuration, clear documentation, and tests around order generation and broker integration.
Do not commit secrets such as IBKR credentials, account identifiers, API tokens, or private configuration.
Documentation
See docs/README.md for the initial architecture notes and decision log.
The first data collection design note is docs/data-fetcher.md.
Manual test instructions for the IBKR fetcher skeleton are in docs/manual-test/README.md.