# Binance Trading Bot
**Automated Binance trading bot with pluggable strategies, historical backtesting, and a live dashboard.**
Self-hosted. Multiple strategy profiles: grid, momentum, or rebalancing.
[Documentation](https://chrisleekr.github.io/binance-trading-bot) · [Quick start](#quick-start-development) · [Deploy](deploy/README.md) · [Strategies](https://chrisleekr.github.io/binance-trading-bot/concepts/strategies/)
[](https://github.com/chrisleekr/binance-trading-bot/actions/workflows/ci.yml) [](https://chrisleekr.github.io/binance-trading-bot) [](https://github.com/chrisleekr/binance-trading-bot/releases) [](LICENSE)
[](https://hub.docker.com/r/chrisleekr/binance-trading-bot) [](https://github.com/chrisleekr/binance-trading-bot/stargazers) [](https://github.com/chrisleekr/binance-trading-bot/graphs/contributors)
> [!WARNING]
> **I cannot guarantee whether you can make money or not. Use it at your own risk.** I have no responsibility for any loss or hardship incurred directly or indirectly by using this code. Read the [disclaimer](#disclaimer) before using it.
>
> Under active development and not recommended for real funds.
## How it works
You run the app on your own server, connect it to your Binance account with an API key, and it watches the market and places buy and sell orders on your behalf. Once running, it repeats a short loop for every coin you told it to watch: read the market, run your strategy's rules, decide buy / sell / wait, and act.
- **Strategy-pluggable.** A _strategy_ is the rulebook the bot trades by. Three ship today: **trailing-trade**, **momentum**, and **rebalance**, and you pick one per profile. Each lives in its own package behind a shared contract, so adding a fourth is mostly a new package plus a registry entry, not a rewrite of the trading loop.
- **Account-scoped profiles.** One operator login owns one or more Binance _accounts_. Each account is one API key pair, one environment (testnet or live), and one wallet. Each account runs N independent _profiles_, each with its own coins, budget, and strategy, all sharing that account's wallet.
- **Reliability-first.** Crash-only worker, idempotent jobs, and a version-aware per-symbol state commit mean a restart resumes cleanly and never double-places an order.
Persistence is Postgres + TimescaleDB; cache and queues are Redis + BullMQ. Schema lives in [`packages/db`](packages/db).
### Act on a symbol
Every monitored symbol gets a workspace: live market data, the strategy's current signal, open orders, and manual overrides in one place.