A Python-based cryptocurrency trading bot that implements a Simple Moving Average (SMA) crossover strategy for automated trading on Binance.
- Real-time price monitoring via Binance orderbook WebSocket
- SMA crossover strategy implementation
- PostgreSQL database for storing prices, signals, and orders
- Redis caching for optimized SMA calculations
- Prometheus metrics for monitoring
- FastAPI endpoints for metrics and monitoring
- Unit tests
The bot implements a Simple Moving Average (SMA) crossover strategy:
- Generates BUY signals when short-term SMA crosses above long-term SMA
- Generates SELL signals when short-term SMA crosses below long-term SMA
- Uses Redis caching for efficient SMA calculations
- Stores all signals and trades in PostgreSQL database
- Docker and Docker Compose
- Binance API credentials
The bot includes comprehensive monitoring:
- Operation latency
- CPU and memory usage
- Error counts
- Data loss events
- Trading signals and executions
Services:
- Trading Bot Swagger API:
http://localhost:8080/docs
- Prometheus metrics:
http://localhost:8000
- PostgreSQL:
localhost:5432
- Redis:
localhost:6379
Access monitoring endpoints:
- Dashboard:
http://127.0.0.1:8080/
- Trading signals:
http://127.0.0.1:8080/signals
- Trading orders:
http://127.0.0.1:8080/orders
- Performance metrics:
http://localhost:8080/api/monitoring/performance
- Error metrics:
http://localhost:8080/api/monitoring/errors
- Prometheus graphical metrics:
http://localhost:9090
pytest tests/test_strategy.py -v
- Clone the repository:
git clone https://github.com/hakanyakar/bilira-case.git
- Navigate to the project directory:
cd bilira-case
-
Create a
.env
file with your configuration like.env.example
. Change only Binance credentials. -
Edit
src/config.py
to customize trading parameters:
- Trading pair
- SMA periods
- Order quantity
- Database settings
- Redis settings
- Run app
docker compose up --build