# 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