Skip to main content

AlphEast Backtesting Engine

Python Version License Documentation Status

🌟 Overview

AlphEast is an event-driven backtesting engine designed for developing and evaluating quantitative trading strategies. While still in its early stages of development, it provides a robust, extensible framework for simulating and evaluating multi-symbol trading strategies with realistic considerations like transaction costs and slippage.

Our goal is to offer a flexible tool for researchers and traders to quickly prototype and test their ideas, without getting bogged down in boilerplate.


📚 Documentation

For complete usage instructions, API reference, detailed examples, and guides, please visit our official documentation website:

https://alpheast.readthedocs.io/en/latest/


✨ Key Features

  • Event-Driven Architecture: Simulates market conditions and trade executions with a clear, sequential event flow.
  • Multi-Symbol Backtesting: Simultaneously test strategies across multiple financial instruments.
  • Pluggable Strategies: Easily define and integrate your own custom trading strategies.
  • Customizable Position Sizing: Implement various position sizing methods to manage risk and allocate capital.
  • Realistic Simulations: Accounts for transaction costs (commissions) and slippage to provide more accurate results.
  • Performance Metrics & Visualization: Generates standard trading performance metrics and plots equity curves for quick analysis.
  • Flexible Data Ingestion: Designed to integrate with various data sources, from direct in-memory data to custom database repositories.

🚀 Quick Start

Get your first backtest running in minutes!

Installation

pip install alpheast

Basic Usage Example

from datetime import datetime
from typing import Dict, List
from alpheast.config.data_source import DataSource, DataSourceType
from alpheast.engine import BacktestingEngine
from alpheast.config.backtest_config import BacktestingOptions
from alpheast.models.interval import Interval
from alpheast.models.price_bar import PriceBar
from examples.basic.example_strategy import ExampleStrategy


if __name__ == "__main__":
    symbol = "AAPL"
    options = BacktestingOptions(
        symbols=[symbol],
        start_date=datetime(2021, 1, 1),
        end_date=datetime(2025, 1, 1),
        interval=Interval.DAILY,
        initial_cash=100_000.0
    )

    price_bar_data: Dict[str, List[PriceBar]] = {
        symbol: [] # Provide your data
    }
    data_source = DataSource(
        type=DataSourceType.DIRECT,
        price_bar_data=price_bar_data,
    )

    engine = BacktestingEngine(
        options=options,
        data_source=data_source,
        strategies=[ExampleStrategy(symbol)],
    )
    
    results = engine.run()

    if results:
        results.print_summary()
        results.plot_equity_curve()

equity-curve

⚡️ Performance

AlphEast is designed for efficiency and demonstrates strong scaling characteristics with both the number of symbols and the backtesting duration. Below are some example execution times measured on a standard setup:

Execution Time (seconds)

Symbols \ Duration 1 Year 5 Years
1 0.2124 0.9258
2 0.3027 1.2424
10 0.9525 3.6243

Status

In mid stages of development.

Contributing

All contributions are warmly welcomed. Head over to CONTRIBUTING.md for details.

Metadata

Release files for alpheast 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for alpheast 0.1.3
File Size Uploaded
alpheast-0.1.3.tar.gz 43.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for alpheast 0.1.3
File Interpreter ABI Platform
alpheast-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 100.3 kB

Release files / alpheast-0.1.3.tar.gz

Download URL alpheast-0.1.3.tar.gz
Size 43.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d6a266c3f09fd15f7b49015c3d544bbf9d0de5080eb983a08f6a40a77c0cb4e7
BLAKE2b-256 checksum
How to use checksums
f445721746ebb883427a7fd06637a276f0e3b2240c4186dc7942323c19c4bc02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / alpheast-0.1.3-py3-none-any.whl

Download URL alpheast-0.1.3-py3-none-any.whl
Size 57.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e3311665f7059aaa182ac19cfd2978bb205a5f87666e20e9c853bb9a824573fb
BLAKE2b-256 checksum
How to use checksums
d640a4d9de30f399aa78309dfe8bebb6feb0ae5d0c53306bb66bcc416f39644a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page