Implement moomoo API connector for OHLCV data
- Added DataConnector base class with OHLCV, InstrumentInfo, Interval - Implemented MoomooClient with rate limiting, circuit breaker, caching - Mock mode generates realistic data for development - Real-time WebSocket subscription support (mock) - Added examples/demo_moomoo.py showcasing functionality - Updated requirements.txt with requests, websocket-client, redis, python-dotenv - Updated README.md with Data Layer documentation - Added .env.example for configuration
This commit is contained in:
51
README.md
51
README.md
@@ -14,17 +14,66 @@ Simple dashboard displaying key trading metrics:
|
||||
- Drawdown
|
||||
- Win Rate
|
||||
|
||||
## Data Layer Module
|
||||
|
||||
### Moomoo API Connector
|
||||
A robust Python client for moomoo API with comprehensive error handling, rate limiting, and data normalization.
|
||||
|
||||
**Features:**
|
||||
- Historical OHLCV data retrieval
|
||||
- Real-time WebSocket subscription (mock)
|
||||
- Instrument metadata
|
||||
- Rate limiting (token bucket algorithm)
|
||||
- Circuit breaker pattern for fault tolerance
|
||||
- Caching with TTL
|
||||
- Mock mode for development
|
||||
|
||||
**Usage:**
|
||||
```python
|
||||
from data.connectors import create_moomoo_client, Interval
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
client = create_moomoo_client(mock_mode=True)
|
||||
data = client.get_ohlcv(
|
||||
symbol="AAPL",
|
||||
interval=Interval.DAY_1,
|
||||
start_date=datetime.now() - timedelta(days=30),
|
||||
end_date=datetime.now()
|
||||
)
|
||||
```
|
||||
|
||||
See `examples/demo_moomoo.py` for complete demonstration.
|
||||
|
||||
## Development
|
||||
|
||||
### Prerequisites
|
||||
- Python 3.8+
|
||||
- Node.js (for frontend)
|
||||
- Node.js (for frontend, optional)
|
||||
- Docker (optional)
|
||||
- Redis (optional, for caching)
|
||||
|
||||
### Setup
|
||||
1. Clone the repository
|
||||
2. Install dependencies: `pip install -r requirements.txt`
|
||||
3. Run the dashboard: `python app.py`
|
||||
4. Test data connector: `python examples/demo_moomoo.py`
|
||||
|
||||
### Data Layer Development
|
||||
The data connector uses a modular design with base classes for easy extension:
|
||||
- `DataConnector` abstract base class
|
||||
- `MoomooClient` implementation with mock mode
|
||||
- Rate limiting and circuit breaker patterns
|
||||
- Caching support (in-memory or Redis)
|
||||
|
||||
To extend with real API credentials:
|
||||
1. Set environment variables: `MOOMOO_API_KEY`, `MOOMOO_SESSION_TOKEN`
|
||||
2. Set `mock_mode=False` when creating client
|
||||
3. Implement actual API calls in `_make_request()` method
|
||||
|
||||
### UI/UX Development
|
||||
The dashboard is built with Flask (backend) and Bootstrap/Chart.js (frontend).
|
||||
- Backend: `app.py` provides REST API endpoints
|
||||
- Frontend: `templates/dashboard.html` with interactive charts
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Reference in New Issue
Block a user