stock-bot/README.md
2025-06-02 08:15:20 -04:00

180 lines
4.8 KiB
Markdown

# 🤖 Stock Bot Trading System
A comprehensive trading bot built with Bun and Turborepo, featuring a service-oriented architecture for real-time market data processing and strategy execution.
## 🚀 Quick Start
### Prerequisites
- [Bun](https://bun.sh/) runtime
- Node.js 18+ (for compatibility)
### Installation
```bash
# Clone and install dependencies
git clone <your-repo-url>
cd stock-bot
bun install
```
### Running the System
#### Option 1: VS Code Tasks (Recommended)
1. Open the project in VS Code
2. Press `Ctrl+Shift+P` (or `Cmd+Shift+P` on Mac)
3. Type "Tasks: Run Task" and select it
4. Choose "Start All Services"
#### Option 2: Manual Startup
```bash
# Terminal 1: Start Market Data Gateway
cd apps/core-services/market-data-gateway
bun run dev
# Terminal 2: Start Trading Dashboard
cd apps/interface-services/trading-dashboard
bun run dev
```
### Access Points
- **Trading Dashboard**: http://localhost:5173
- **Market Data API**: http://localhost:3001
- **Health Check**: http://localhost:3001/health
## 📊 Dashboard Features
### Real-time Market Data
- Live price feeds for AAPL, GOOGL, MSFT, TSLA, AMZN
- WebSocket connections for real-time updates
- Service health monitoring
### Professional UI Components
- Built with Tremor UI for financial visualizations
- Interactive charts and metrics
- Responsive design for all devices
### Dashboard Tabs
1. **Market Data**: Live prices, volume, bid/ask spreads
2. **Portfolio**: Holdings allocation and performance
3. **Charts**: Price and volume analysis
4. **Performance**: Trading metrics and statistics
## 🏗️ Architecture
### Service-Oriented Design
```
apps/
├── core-services/
│ └── market-data-gateway/ # Market data ingestion
├── interface-services/
│ └── trading-dashboard/ # React dashboard
├── data-services/ # (Future) Data processing
├── execution-services/ # (Future) Order management
├── intelligence-services/ # (Future) Strategy engine
├── platform-services/ # (Future) Infrastructure
└── integration-services/ # (Future) External APIs
```
### Shared Packages
```
packages/
├── shared-types/ # TypeScript definitions
├── config/ # Configuration management
├── database/ # (Future) Database utilities
└── trading-core/ # (Future) Core trading logic
```
## 🔧 Development
### Project Structure
- **Turborepo**: Monorepo management
- **Bun**: Package manager and runtime
- **TypeScript**: Type safety across all services
- **React + Vite**: Modern frontend development
- **Tremor UI**: Financial dashboard components
### Key Technologies
- **Backend**: Hono framework, WebSockets, Redis
- **Frontend**: React, TypeScript, Tremor UI
- **Data**: QuestDB (planned), PostgreSQL (planned)
- **Deployment**: Docker, Kubernetes (planned)
## 📈 Current Status
### ✅ Completed
- [x] Monorepo setup with Turborepo
- [x] Market Data Gateway service
- [x] Real-time WebSocket connections
- [x] Professional React dashboard
- [x] Tremor UI integration
- [x] TypeScript type system
- [x] Service health monitoring
### 🚧 In Progress
- [ ] Strategy execution engine
- [ ] Risk management system
- [ ] Portfolio tracking
- [ ] Real broker integration
### 🔮 Planned
- [ ] Advanced charting
- [ ] Backtesting framework
- [ ] Machine learning signals
- [ ] Multi-broker support
- [ ] Mobile application
## 🛠️ API Endpoints
### Market Data Gateway (Port 3001)
```
GET /health # Service health check
GET /api/market-data/:symbol # Current market data
GET /api/ohlcv/:symbol # Historical OHLCV data
WS ws://localhost:3001 # Real-time data stream
```
### Data Format
```typescript
interface MarketData {
symbol: string;
price: number;
bid: number;
ask: number;
volume: number;
timestamp: string;
}
```
## 🔧 Configuration
Environment variables are managed in `.env`:
```bash
# Database Configuration
DATABASE_URL=postgresql://...
QUESTDB_URL=http://localhost:9000
# External APIs
ALPHA_VANTAGE_API_KEY=your_key_here
ALPACA_API_KEY=your_key_here
# Service Configuration
NODE_ENV=development
LOG_LEVEL=info
```
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Commit changes: `git commit -m 'Add amazing feature'`
4. Push to branch: `git push origin feature/amazing-feature`
5. Open a Pull Request
## 📝 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- [Tremor UI](https://tremor.so/) for beautiful financial components
- [Bun](https://bun.sh/) for fast runtime and package management
- [Turborepo](https://turbo.build/) for monorepo tooling