Metadata-Version: 2.3
Name: pyalloq
Version: 0.1.12
Summary: A modern Python SDK for quant portfolio optimization.
Author: Siddeshkanth
Author-email: Siddeshkanth <pyalloq-info@alloq-alpha.com>
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Office/Business :: Financial :: Investment
Requires-Dist: numpy>=1.24
Requires-Dist: pandas>=2.0
Requires-Dist: scipy>=1.11
Requires-Dist: cvxopt>=1.3 ; sys_platform != 'win32'
Requires-Dist: cvxpy>=1.3
Requires-Dist: scikit-learn>=1.3
Requires-Dist: matplotlib>=3.7
Requires-Dist: seaborn>=0.13
Requires-Dist: pyalloq-core
Requires-Dist: pyalloq-data-connector
Requires-Dist: pyalloq-backtest
Requires-Dist: pyalloq-features
Requires-Dist: pyalloq[torch,rl] ; extra == 'all-ml'
Requires-Dist: pytest>=8 ; extra == 'dev'
Requires-Dist: pytest-cov>=5 ; extra == 'dev'
Requires-Dist: ruff>=0.6 ; extra == 'dev'
Requires-Dist: mypy>=1.11 ; extra == 'dev'
Requires-Dist: twine>=5 ; extra == 'dev'
Requires-Dist: build>=1 ; extra == 'dev'
Requires-Dist: types-requests>=2 ; extra == 'dev'
Requires-Dist: types-setuptools>=75 ; extra == 'dev'
Requires-Dist: torch>=2.0 ; extra == 'dl'
Requires-Dist: stable-baselines3>=2.0 ; extra == 'rl'
Requires-Dist: gymnasium>=0.29 ; extra == 'rl'
Requires-Python: >=3.11
Project-URL: Homepage, https://github.com/your-org/qpo
Project-URL: Repository, https://github.com/your-org/qpo
Project-URL: Issues, https://github.com/your-org/qpo/issues
Provides-Extra: all-ml
Provides-Extra: dev
Provides-Extra: dl
Provides-Extra: rl
Description-Content-Type: text/markdown

# 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`](src/pyalloq-core)**: Core data abstractions (`MarketData`), pure interfaces (`BaseAllocator`, `BaseReturnEstimator`, `BaseCovarianceEstimator`), `StrategyPipeline`, and optimization results.
- **[`pyalloq-data-connector`](src/pyalloq-data-connector)**: Vendor-agnostic data adapters (Yahoo Finance, Alpha Vantage, Finnhub, EOD) standardizing raw payloads into aligned `MarketData`.
- **[`pyalloq-backtest`](src/pyalloq-backtest)**: Zero-lookahead historical simulation engines, cross-validation splitters, transaction cost models, and performance metrics.
- **[`pyalloq-features`](src/pyalloq-features)**: Feature engineering transformers, TA-Lib integration, scaling tools, and feature pipelines.
- **`pyalloq`**: Main SDK combining classical optimization (Markowitz, Risk Parity, Black-Litterman, HRP, NCO) and deep learning models.

## Development Setup

```bash
# 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

```python
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
