1.7 KiB
1.7 KiB
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:
BaseQuantStrategybase class +StrategyRegistryfor registration - Strategy implementations live in
strategies/impls/and register via@strategydecorator - 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