AlphEast Backtesting Engine
🌟 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()
⚡️ 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)
| File | Size | Uploaded | |
|---|---|---|---|
| alpheast-0.1.3.tar.gz | 43.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|