Skip to main content

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 aligned MarketData.
  • 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, Meucci EntropyPooler (first- and second-moment views), and path-dependent ScenarioEvaluator.
  • pyalloq-viz: Interactive Plotly visualizations and standalone HTML tear sheets (SimulationTearSheet, RobustnessTearSheet, MacroRegimeTearSheet, AllocationTearSheet, MultiPeriodTearSheet) for portfolio optimization, multi-period trajectories, thermodynamic regime gating, PBO/CPCV robustness testing, entropy pooling, and regime analysis.
  • pyalloq: Main SDK combining:
    • Classical & Multi-Period Convex Optimization (pyalloq.classical): Markowitz, Risk Parity, CVaR, Black-Litterman, Multi-Horizon AlphaDecayReturnEstimator, MultiPeriodMPCAllocator (Boyd 2017 & Gârleanu-Pedersen 2013 with cvxpy power cones and high-speed admm operator splitting), and StochasticScenarioMPCAllocator.
    • Hierarchical & Graph Machine Learning (pyalloq.ml): HRPAllocator, NCOAllocator, and Two-Level Bayesian BayesianHRPAllocator (RL-BHRP).
    • Decision-Focused Deep Learning (pyalloq.dl): End-to-End DeepAllocator (C-STAN), DeepCovarianceEstimator, MDFPOptimizationLayer (Entropic Mirror-Descent Fixed-Point with (O(1))-memory implicit differentiation), SPOPlusLoss, HybridDFLLoss, and IPMOAllocator.
    • FinRL Deep Reinforcement Learning & Thermodynamic Gates (pyalloq.rl): Evolvable POMDPPortfolioEnv (spaces.Dict + DictFlattenWrapper + FeatureNormalizationWrapper + AlmgrenChrissCostModel), online risk-adjusted rewards (DifferentialSharpeReward, StepwiseSortinoReward, CARAUtilReward), continuous-control SB3PortfolioAgent (PPO/SAC/DDPG/TD3/A2C), HierarchicalMetaRLAllocator (MetaPortfolioEnv), PortfolioGymEnv, ScenarioPortfolioEnv, TrajectoryPolicyNet, DeepHedgingTrajectoryTrainer, WassersteinRegimeGate (Bures-Wasserstein (W_2) & Carnot efficiency bound), and RLAllocator.

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.23

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

Source distribution (sdist)

Source distribution for pyalloq 0.1.23
File Size Uploaded Provenance Actions
pyalloq-0.1.23.tar.gz 66.4 kB Without provenance Details for pyalloq-0.1.23.tar.gz

Built distribution (wheel)

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

Total release size: 165.3 kB

Release files / pyalloq-0.1.23.tar.gz

Download URL pyalloq-0.1.23.tar.gz
Size 66.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ee80e1e418b77ddfa9341051998a0689b2fb8b51fc7b5ba4051807e36294529e
BLAKE2b-256 checksum
How to use checksums
72c84c46c296d01d1238cbff87359df23491b10d2f54d96421508e8140806bac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyalloq-0.1.23-py3-none-any.whl

Download URL pyalloq-0.1.23-py3-none-any.whl
Size 98.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81503b56bb652c61348b20c4c8f06f385ed4343afc992a01982114689111ffc0
BLAKE2b-256 checksum
How to use checksums
d3f22af3da007927ad3a596ca278edb5779105f500681ed4994f9e4e017cb94b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","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.23

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.

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