CLI-based trading bot for Binance UM Futures supporting market and limit orders first, with scaffolds for advanced orders. Includes robust logging, validation, and environment-based configuration.
- Market and Limit orders (CLI)
- Shared Binance UM Futures client wrapper
- Input validation and structured logging to
bot.log .envconfiguration with testnet/mainnet toggle- Scaffolds for Stop-Limit, OCO, TWAP, and Grid
project_root/
├─ src/
│ ├─ binance_client.py # Client wrapper
│ ├─ logging_config.py # Logging setup
│ ├─ validators.py # Input validation helpers
│ ├─ market_orders.py # CLI for market orders
│ ├─ limit_orders.py # CLI for limit orders
│ └─ advanced/
│ ├─ __init__.py
│ ├─ oco.py # OCO scaffold
│ └─ twap.py # TWAP scaffold
├─ bot.log # Structured logs
├─ requirements.txt # Python deps
├─ .env.example # Env var template
├─ report.pdf # Add your analysis/screenshots here
└─ README.md # This file
- Python 3.10+
- Create and activate a virtual environment
python -m venv .venv
.\.venv\Scripts\activate- Install dependencies
pip install -r requirements.txt- Configure environment
Copy
.env.exampleto.envand fill in your keys.
.env keys:
BINANCE_API_KEYBINANCE_API_SECRETUSE_TESTNET("true" or "false")
- Market order
python src/market_orders.py BTCUSDT BUY 0.01- Limit order
python src/limit_orders.py BTCUSDT SELL 0.01 --price 65000- Stop-Limit order
python src/stop_limit_orders.py BTCUSDT BUY 0.01 --stop 64000 --price 64100Flags:
--reduce-only(limit orders)--time-in-force(GTC/IOC/FOK)
All actions are logged to bot.log with timestamps and error traces.
- Stop-Limit: pending
- OCO:
src/advanced/oco.py - TWAP:
src/advanced/twap.py - Grid: pending
- Testnet supported via
USE_TESTNET=true - Deterministic CLI and validations
- This project uses the official
binance-connectorfor UM Futures.