41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
# Project Overview: executor
|
|
|
|
## Purpose
|
|
A Django-based quantitative strategy executor. It provides an API for executing quantitative trading strategies (trend following, mean reversion, volatility breakout, asset allocation) and returning results, with optional callback support.
|
|
|
|
## Tech Stack
|
|
- **Language**: Python 3.13+
|
|
- **Framework**: Django 5.2.7
|
|
- **Database**: SQLite (default)
|
|
- **Dependencies**: django, yfinance (market data), gunicorn (production server), requests (HTTP callbacks)
|
|
- **Package Manager**: uv
|
|
- **Deployment**: Docker + docker-compose, gunicorn
|
|
|
|
## Project Structure
|
|
```
|
|
executor/ # Django project config (settings, urls, wsgi, asgi)
|
|
strategies/ # Main Django app
|
|
models.py # QuantStrategy, StrategyVersion, StrategyExecution
|
|
views.py # API views (list_strategies, execute_strategy, execution_status, send_callback)
|
|
base.py # BaseQuantStrategy abstract class, StrategyRegistry
|
|
implementations.py # Strategy registration
|
|
impls/ # Strategy implementations
|
|
trend_following.py
|
|
mean_reversion.py
|
|
volatility_breakout.py
|
|
asset_allocation.py
|
|
management/commands/ # init_strategies command
|
|
urls.py
|
|
admin.py
|
|
templates/ # Global templates (empty)
|
|
staticfiles/ # Collected static files
|
|
mediafiles/ # Media files
|
|
```
|
|
|
|
## Architecture
|
|
- Strategies follow a registry pattern: `BaseQuantStrategy` base class + `StrategyRegistry` for registration
|
|
- Strategy implementations live in `strategies/impls/` and register via `@strategy` decorator
|
|
- API is function-based views (not DRF), returning JSON
|
|
- Execution model tracks strategy runs with status and results
|
|
- Callback support for async notification of execution results
|