banbot is a high-performance, easy-to-use, multi-symbol, multi-strategy, multi-period, multi-account event-driven trading robot.
- web ui: write strategy, backtest, and deploy without IDE.
- high-performance: backtest for 1 year klines in seconds.
- easy-to-use: write once, support both backtesting and real trading.
- flexible: free combination of symbols, strategies and time frames.
- event-driven: no lookahead, more freedom to implement your trade ideas.
- scalable: trade multiple exchange accounts simultaneously.
- hyper opt: support bayes/tpe/random/cmaes/ipop-cmaes/bipop-cmaes
banbot support exchanges powered by banexg:
| logo | id | name | ver | websocket |
|---|---|---|---|---|
![]() |
binance | spot/usd-m/coin-m | * | Y |
![]() |
okx | spot/usd-m/coin-m | * | Y |
![]() |
bybit | spot/usd-m/coin-m | * | Y |
go runbanbot to get started with Docker in minutes!
Download the banbot.md file, then attach this file to any AI conversation to tell it the strategy you want to test.
Or immediately test your idea using the Banbot Workflow.
Please go to BanBot Website for documents.
Follow How to Contribute. Get in touch via Discord to discuss development, new features, and the roadmap. Unless you explicitly state otherwise, any contributions intentionally submitted for inclusion in a banbot workspace you create shall be licensed under AGPLv3, without any additional terms or conditions.
If banbot made your life easier and you want to help us improve it further, or if you want to speed up development of new features, please support us with a tip. We appreciate all contributions!
| METHOD | ADDRESS |
|---|---|
| BTC | bc1qah04suzc2amupds7uqgpukellktscuuyurgflt |
| ETH | 0xedBF0e5ABD81e5F01c088f6B6991a623dB14D43b |
This project is dual-licensed under GNU AGPLv3 License and a commercial license. For free use and modifications of the code, you can use the AGPLv3 license. If you require commercial license with different terms, please contact me.
Choose run_policy.engine: time_series (default) for per-symbol callbacks or factor for native multi-factor/cross-sectional rounds. Root banbot backtest / banbot trade run either or both from one YAML configuration. Mixed replay uses execution.mode: events and explicit account budgets. Factor research uses root research, version archives use data archive, and standalone expressions use root validate / explain --spec. See the English guide, 中文指南, API and refactor record.
Factor live needs application-registered verified transport, instrument/revision/funding evidence and startup reconciliation. Missing capabilities fail explicitly; SDK support alone does not prove real factor venue readiness. Paper/dry-run is separate historical simulation.
Configuration retains v0.5 root keys without requiring a version marker, and ordinary loading leaves YAML unchanged. Explicit run_policy[].engine enables new engine options; factor fields belong directly to each policy and account execution overrides to root accounts.<name>. See the compatibility comparison and configuration guide.



