Skip to main content

Trading infrastructure library with backtesting

Project description

CI Build PyPI Version

tradedesk

tradedesk is an event-driven trading framework for building, running, and evaluating systematic trading strategies across both backtesting and live broker environments.

It provides:

  • Event-based strategy execution
  • Unified backtest and live broker runtime model
  • Market data aggregation and indicator framework
  • Portfolio orchestration and risk management
  • Trade recording, metrics, and reporting

The framework is designed so that strategies react to events --- not broker implementations --- enabling the same strategy code to run unchanged in both backtest and live environments.

Core Concepts

Event-Driven Architecture

All major subsystems communicate via events:

  • Market data events (ticks, candles)
  • Strategy events (signals)
  • Execution events (orders, fills)
  • Portfolio events (position updates)
  • Recording events (trade lifecycle)

As a user, you primarily:

  • Implement a strategy that reacts to candle updates
  • Optionally subscribe to events for custom analytics or logging

Basic Strategy Structure

A strategy derives from the base strategy class and implements candle handling logic.

Typical flow:

  1. Market data arrives (tick or candle)
  2. Aggregation produces candles
  3. Strategy receives on_candle_update
  4. Strategy emits order requests
  5. Execution layer processes orders
  6. Portfolio updates positions
  7. Recording captures trade lifecycle

Running a Backtest

Backtesting uses the same event model as live trading.

High-level flow:

  • CSV or historical provider feeds market data
  • Backtest runner drives event loop
  • Strategy executes normally
  • Portfolio and recording operate identically to live mode

See docs/backtesting_guide.md for detailed usage.

Live Trading (IG)

The IG execution module provides:

  • REST client for order management
  • Streaming price integration
  • Position synchronization
  • Retry and resilience handling

Your strategy remains unchanged --- only the execution configuration differs.

Portfolio & Risk

The portfolio subsystem:

  • Tracks positions
  • Applies risk policies
  • Reconciles fills
  • Emits portfolio events

Risk controls can reject or modify orders before execution.

Recording & Reporting

The recording subsystem:

  • Tracks trades and equity curves
  • Computes excursions and performance metrics
  • Generates structured reports

Users can subscribe to recording events for custom reporting pipelines.

Typical Project Structure

my_strategy/
    strategy.py
    run_backtest.py
    config.py

Installation

Install using your preferred environment manager. Ensure Python 3.11+.

Documentation

See the docs/ directory for:

  • Backtesting guide
  • Strategy guide
  • Portfolio guide
  • Indicator guide
  • Aggregation guide
  • Risk management guide
  • Metrics guide

tradedesk is designed for clarity, determinism, and event-level transparency.

License

Licensed under the Apache License, Version 2.0. See: https://www.apache.org/licenses/LICENSE-2.0

Copyright 2026 Radius Red Ltd.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tradedesk-0.6.0.tar.gz (268.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tradedesk-0.6.0-py3-none-any.whl (110.1 kB view details)

Uploaded Python 3

File details

Details for the file tradedesk-0.6.0.tar.gz.

File metadata

  • Download URL: tradedesk-0.6.0.tar.gz
  • Upload date:
  • Size: 268.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tradedesk-0.6.0.tar.gz
Algorithm Hash digest
SHA256 07afe0d2abe4ab1e2c3489d56ca1266384c1207198a947c41c63be4c2aa265ae
MD5 c89b754d2e0afa6407435b1dba9ed947
BLAKE2b-256 b318167e33c3cd625ec537f812583bbaa2467b0376f6d95020d562a7ba354077

See more details on using hashes here.

Provenance

The following attestation bundles were made for tradedesk-0.6.0.tar.gz:

Publisher: publish.yml on radiusred/tradedesk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tradedesk-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: tradedesk-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 110.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tradedesk-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1a04d4e66ed98a790cfdd64b92ad4935d7d5f3c72b3a769f0f302dccbc338d1
MD5 46dc93f0895c98d55b6bf1954f61e686
BLAKE2b-256 98d3ddf9de2e0fa08c78bafc3276df1379c6859efc7cff8b497ff42d3b5f42ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for tradedesk-0.6.0-py3-none-any.whl:

Publisher: publish.yml on radiusred/tradedesk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page