Initial commit - BTC Trading Dashboard
- FastAPI backend with PostgreSQL database connection - Frontend dashboard with lightweight-charts - Technical indicators (SMA, EMA, RSI, MACD, Bollinger Bands, etc.) - Trading strategy simulation and backtesting - Database connection to NAS at 20.20.20.20:5433 - Development server setup and documentation
This commit is contained in:
145
README.md
Normal file
145
README.md
Normal file
@ -0,0 +1,145 @@
|
||||
# BTC Trading Dashboard
|
||||
|
||||
A Bitcoin trading dashboard with FastAPI backend, PostgreSQL database, and technical analysis features.
|
||||
|
||||
## Architecture
|
||||
|
||||
- **Backend**: FastAPI (Python)
|
||||
- **Frontend**: HTML/JS dashboard with lightweight-charts
|
||||
- **Database**: PostgreSQL (connects to NAS)
|
||||
- **Features**:
|
||||
- Real-time candle data
|
||||
- Technical indicators (SMA, EMA, RSI, MACD, Bollinger Bands, etc.)
|
||||
- Trading strategy simulation
|
||||
- Backtesting
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Python 3.9+
|
||||
- PostgreSQL database (on NAS at 20.20.20.20:5433)
|
||||
|
||||
## Setup
|
||||
|
||||
### 1. Virtual Environment
|
||||
|
||||
```cmd
|
||||
python -m venv venv
|
||||
```
|
||||
|
||||
### 2. Install Dependencies
|
||||
|
||||
```cmd
|
||||
venv\Scripts\activate
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 3. Configure Database
|
||||
|
||||
Edit `.env` file:
|
||||
```
|
||||
DB_HOST=20.20.20.20
|
||||
DB_PORT=5433
|
||||
DB_NAME=btc_data
|
||||
DB_USER=btc_bot
|
||||
DB_PASSWORD=your_password
|
||||
```
|
||||
|
||||
### 4. Test Database Connection
|
||||
|
||||
```cmd
|
||||
python test_db.py
|
||||
```
|
||||
|
||||
## Running the Server
|
||||
|
||||
### Quick Start
|
||||
|
||||
**Windows:**
|
||||
```cmd
|
||||
start_dev.cmd
|
||||
```
|
||||
|
||||
**Linux/Mac:**
|
||||
```bash
|
||||
chmod +x start_dev.sh
|
||||
./start_dev.sh
|
||||
```
|
||||
|
||||
### Manual Start
|
||||
|
||||
```cmd
|
||||
venv\Scripts\activate
|
||||
uvicorn src.api.server:app --reload --host 0.0.0.0 --port 8000
|
||||
```
|
||||
|
||||
## Access the Application
|
||||
|
||||
Once the server is running:
|
||||
|
||||
- **Dashboard**: http://localhost:8000/dashboard
|
||||
- **API Docs**: http://localhost:8000/docs
|
||||
- **Health Check**: http://localhost:8000/api/v1/health
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
.
|
||||
├── config/
|
||||
│ └── data_config.yaml # Data collection configuration
|
||||
├── src/
|
||||
│ ├── api/
|
||||
│ │ ├── server.py # FastAPI application
|
||||
│ │ └── dashboard/ # Frontend static files
|
||||
│ ├── data_collector/ # Data collection modules
|
||||
│ │ ├── main.py # Data collector service
|
||||
│ │ ├── database.py # Database manager
|
||||
│ │ ├── websocket_client.py # WebSocket client
|
||||
│ │ ├── indicator_engine.py # Technical indicators
|
||||
│ │ ├── brain.py # Trading logic
|
||||
│ │ └── backtester.py # Backtesting engine
|
||||
│ └── strategies/ # Trading strategies
|
||||
│ ├── base.py # Base strategy class
|
||||
│ └── ma_strategy.py # Moving average strategy
|
||||
├── .env # Environment variables
|
||||
├── requirements.txt # Python dependencies
|
||||
└── test_db.py # Database connection test
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
| Endpoint | Method | Description |
|
||||
|----------|--------|-------------|
|
||||
| `/` | GET | API info |
|
||||
| `/api/v1/health` | GET | System health check |
|
||||
| `/api/v1/candles` | GET | Get candle data |
|
||||
| `/api/v1/strategies` | GET | List available strategies |
|
||||
| `/api/v1/ta` | GET | Technical analysis |
|
||||
| `/api/v1/stats` | GET | Trading statistics |
|
||||
| `/api/v1/backtests` | POST | Trigger backtest |
|
||||
|
||||
## Development Tips
|
||||
|
||||
1. **Auto-reload**: The server reloads automatically when Python files change
|
||||
2. **Database changes**: Restart server to pick up schema changes
|
||||
3. **Frontend**: Edit HTML/JS in `src/api/dashboard/static/`
|
||||
4. **Indicators**: Add new indicators in `src/api/dashboard/static/js/indicators/`
|
||||
5. **Strategies**: Create strategies in `src/strategies/`
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Port 8000 already in use
|
||||
```cmd
|
||||
netstat -ano | findstr :8000
|
||||
taskkill /PID <PID> /F
|
||||
```
|
||||
|
||||
### Database connection failed
|
||||
1. Check NAS is reachable: `ping 20.20.20.20`
|
||||
2. Verify PostgreSQL is running on NAS
|
||||
3. Check `.env` credentials
|
||||
4. Run `python test_db.py` for diagnosis
|
||||
|
||||
### No data in dashboard
|
||||
1. Verify data collector is running on NAS
|
||||
2. Check database has candles table
|
||||
3. Use API docs to query data manually
|
||||
Reference in New Issue
Block a user