Files
executor/.serena/memories/project_overview.md

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: 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