55 lines
No EOL
2 KiB
Markdown
55 lines
No EOL
2 KiB
Markdown
# Stock Bot Trading Platform
|
|
|
|
## Project Purpose
|
|
This is an advanced trading bot platform with a microservice architecture designed for automated stock trading. The system includes:
|
|
- Market data ingestion from multiple providers (Yahoo Finance, QuoteMedia, Interactive Brokers, WebShare)
|
|
- Data processing and technical indicator calculation
|
|
- Trading strategy development and backtesting
|
|
- Order execution and risk management
|
|
- Portfolio tracking and performance analytics
|
|
- Web dashboard for monitoring
|
|
|
|
## Architecture Overview
|
|
The project follows a **microservices architecture** with shared libraries:
|
|
|
|
### Core Services (apps/)
|
|
- **data-ingestion**: Ingests market data from multiple providers
|
|
- **data-pipeline**: Processes and transforms data
|
|
- **web-api**: REST API service
|
|
- **web-app**: React-based dashboard
|
|
|
|
### Shared Libraries (libs/)
|
|
**Core Libraries:**
|
|
- config: Environment configuration with Zod validation
|
|
- logger: Structured logging with Loki integration
|
|
- di: Dependency injection container
|
|
- types: Shared TypeScript types
|
|
- handlers: Common handler patterns
|
|
|
|
**Data Libraries:**
|
|
- postgres: PostgreSQL client for transactional data
|
|
- questdb: Time-series database for market data
|
|
- mongodb: Document storage for configurations
|
|
|
|
**Service Libraries:**
|
|
- queue: BullMQ-based job processing
|
|
- event-bus: Dragonfly/Redis event bus
|
|
- shutdown: Graceful shutdown management
|
|
|
|
**Utils:**
|
|
- Financial calculations and technical indicators
|
|
- Date utilities
|
|
- Position sizing calculations
|
|
|
|
## Database Strategy
|
|
- **PostgreSQL**: Transactional data (orders, positions, strategies)
|
|
- **QuestDB**: Time-series data (OHLCV, indicators, performance metrics)
|
|
- **MongoDB**: Document storage (configurations, raw API responses)
|
|
- **Dragonfly/Redis**: Event bus and caching layer
|
|
|
|
## Current Development Phase
|
|
Phase 1: Data Foundation Layer (In Progress)
|
|
- Enhancing data provider reliability
|
|
- Implementing data validation
|
|
- Optimizing time-series storage
|
|
- Building robust HTTP client with circuit breakers |