PyAlloq
A modern Python SDK and workspace for quantitative portfolio optimization, feature engineering, and zero-lookahead backtesting.
Workspace Architecture
pyalloq is organized as a multi-package uv workspace:
pyalloq-core: Core data abstractions (MarketData,ScenarioMarketData), pure interfaces (BaseAllocator,BaseReturnEstimator,BaseCovarianceEstimator,BaseScenarioGenerator),StrategyPipeline,ParallelMonteCarloEngine, and optimization/simulation results.pyalloq-data-connector: Vendor-agnostic data adapters (Yahoo Finance, Alpha Vantage, Finnhub, EOD) standardizing raw payloads into alignedMarketData.pyalloq-backtest: Zero-lookahead historical simulation engines, cross-validation splitters, transaction cost models, and performance metrics.pyalloq-features: Feature engineering transformers, TA-Lib integration, scaling tools, and feature pipelines.pyalloq-simulation: Institutional Monte Carlo scenario generators (GaussianGenerator,PCAFactorGenerator,FHSGenerator,GARCHEVTCopulaGenerator,GMMRegimeGenerator),FactorBackcastImputer, MeucciEntropyPooler(first- and second-moment views), and path-dependentScenarioEvaluator.pyalloq: Main SDK combining classical optimization (Markowitz, Risk Parity, Black-Litterman, HRP, NCO) and deep learning models.
Development Setup
# Clone the repository
git clone https://github.com/your-org/pyalloq.git
cd pyalloq
# Install all workspace packages and dependencies with uv
uv sync --all-extras
# Run type checking
uv run mypy src
# Run tests
uv run pytest
# Run pre-commit hooks
uv run pre-commit run --all-files
Quickstart
import datetime as dt
from pyalloq_data_connector.yahoo_finance import YahooFinanceClient
from pyalloq.optimizers.classical.risk_parity import RiskParityAllocator
from pyalloq_core.pipeline import StrategyPipeline
from pyalloq_backtest.engine import WalkForwardEngine
# 1. Fetch Market Data
client = YahooFinanceClient()
data = client.get_market_data(
tickers=["AAPL", "MSFT", "GOOGL", "AMZN"],
start=dt.datetime(2023, 1, 1),
end=dt.datetime(2024, 1, 1)
)
# 2. Build Strategy Pipeline
allocator = RiskParityAllocator(tickers=data.assets)
pipeline = StrategyPipeline(allocator=allocator)
# 3. Run Walk-Forward Backtest
engine = WalkForwardEngine(pipeline=pipeline, rebalance_freq="ME")
results = engine.run(data)
# 4. Inspect Results & Performance Metrics
print("Performance Tear Sheet:")
print(results["tear_sheet"])
License
MIT
Metadata
Release files for pyalloq 0.1.19
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyalloq-0.1.19-py3-none-any.whl | Python 3 | none | any | Details |
Release files / pyalloq-0.1.19-py3-none-any.whl
| Download URL | pyalloq-0.1.19-py3-none-any.whl |
|---|---|
| Size | 44.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e6477b1c46d822d02390eb3f48b60789cfdf7fc0a6127f0bb4b21c30f669add
|
|
BLAKE2b-256 checksum How to use checksums |
f0e2f026f5a4c8c2f617d0677271e5de3c3e9108bd32e9a04642b5775f3b49f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for pyalloq 0.1.19
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.