Metadata-Version: 2.4
Name: meridianalgo
Version: 7.2.1
Summary: MeridianAlgo Quant Packages - The Complete Quantitative Finance Platform for Professional Developers
Author-email: Meridian Algorithmic Research Team <support@meridianalgo.com>
License: MIT
Project-URL: Bug Reports, https://github.com/MeridianAlgo/Python-Packages/issues
Project-URL: Source, https://github.com/MeridianAlgo/Python-Packages
Project-URL: Documentation, https://meridianalgo.readthedocs.io
Project-URL: Changelog, https://github.com/MeridianAlgo/Python-Packages/blob/main/CHANGELOG.md
Keywords: quantitative-finance,algorithmic-trading,trading,finance,portfolio-optimization,risk-management,portfolio-analytics,execution-algorithms,vwap,twap,market-impact,market-microstructure,liquidity,order-book,statistical-arbitrage,pairs-trading,mean-reversion,factor-models,options-pricing,high-frequency-trading,regime-detection,machine-learning
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=2.0.0
Requires-Dist: pandas>=2.2.0
Requires-Dist: scipy>=1.12.0
Requires-Dist: yfinance>=0.2.40
Requires-Dist: requests>=2.32.0
Requires-Dist: matplotlib>=3.8.0
Requires-Dist: seaborn>=0.13.0
Requires-Dist: ta>=0.11.0
Requires-Dist: tqdm>=4.66.0
Requires-Dist: joblib>=1.4.0
Requires-Dist: python-dateutil>=2.9.0
Requires-Dist: pytz>=2024.1
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
Requires-Dist: ruff>=0.6.0; extra == "dev"
Requires-Dist: black>=24.0.0; extra == "dev"
Requires-Dist: isort>=5.13.0; extra == "dev"
Requires-Dist: mypy>=1.10.0; extra == "dev"
Requires-Dist: sphinx>=7.3.0; extra == "dev"
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "dev"
Provides-Extra: ml
Requires-Dist: scikit-learn>=1.4.0; extra == "ml"
Requires-Dist: torch>=2.2.0; extra == "ml"
Requires-Dist: statsmodels>=0.14.1; extra == "ml"
Requires-Dist: hmmlearn>=0.3.2; extra == "ml"
Provides-Extra: optimization
Requires-Dist: cvxpy>=1.5.0; extra == "optimization"
Requires-Dist: cvxopt>=1.3.2; extra == "optimization"
Provides-Extra: volatility
Requires-Dist: arch>=7.0.0; extra == "volatility"
Provides-Extra: data
Requires-Dist: lxml>=5.0.0; extra == "data"
Requires-Dist: beautifulsoup4>=4.12.0; extra == "data"
Requires-Dist: polygon-api-client>=1.14.0; extra == "data"
Provides-Extra: distributed
Requires-Dist: ray>=2.9.0; extra == "distributed"
Requires-Dist: dask>=2024.1.0; extra == "distributed"
Provides-Extra: full
Requires-Dist: scikit-learn>=1.4.0; extra == "full"
Requires-Dist: torch>=2.2.0; extra == "full"
Requires-Dist: statsmodels>=0.14.1; extra == "full"
Requires-Dist: hmmlearn>=0.3.2; extra == "full"
Requires-Dist: cvxpy>=1.5.0; extra == "full"
Requires-Dist: arch>=7.0.0; extra == "full"
Requires-Dist: lxml>=5.0.0; extra == "full"
Requires-Dist: beautifulsoup4>=4.12.0; extra == "full"
Provides-Extra: all
Requires-Dist: scikit-learn>=1.4.0; extra == "all"
Requires-Dist: torch>=2.2.0; extra == "all"
Requires-Dist: statsmodels>=0.14.1; extra == "all"
Requires-Dist: hmmlearn>=0.3.2; extra == "all"
Requires-Dist: cvxpy>=1.5.0; extra == "all"
Requires-Dist: cvxopt>=1.3.2; extra == "all"
Requires-Dist: arch>=7.0.0; extra == "all"
Requires-Dist: lxml>=5.0.0; extra == "all"
Requires-Dist: beautifulsoup4>=4.12.0; extra == "all"
Requires-Dist: polygon-api-client>=1.14.0; extra == "all"
Requires-Dist: ray>=2.9.0; extra == "all"
Dynamic: license-file

# MeridianAlgo

[![PyPI version](https://img.shields.io/pypi/v/meridianalgo.svg?style=flat-square&color=blue)](https://pypi.org/project/meridianalgo/)
[![Python versions](https://img.shields.io/pypi/pyversions/meridianalgo.svg?style=flat-square)](https://pypi.org/project/meridianalgo/)
[![License](https://img.shields.io/pypi/l/meridianalgo.svg?style=flat-square)](https://github.com/MeridianAlgo/Python-Packages/blob/main/LICENSE)

MeridianAlgo is a Python library for quantitative finance and algorithmic trading. It covers portfolio optimization, risk management, derivatives pricing, backtesting, machine learning, execution algorithms, and more, all in one library.

## Installation

```bash
pip install meridianalgo
```

Optional extras add heavier capabilities on demand.

```bash
pip install "meridianalgo[ml]"            # scikit-learn, torch, statsmodels, hmmlearn
pip install "meridianalgo[optimization]"  # cvxpy, cvxopt
pip install "meridianalgo[volatility]"    # arch (GARCH family)
pip install "meridianalgo[all]"           # everything
```

Requires Python 3.10 or newer. The core install runs on numpy, pandas, and scipy alone. Modules that need an optional dependency stay unavailable until the matching extra is installed.

## Quick start

```python
import meridianalgo as ma

# Top level convenience metrics on a return series
sharpe = ma.calculate_sharpe_ratio(returns)
max_dd = ma.calculate_max_drawdown(returns)
cvar_95 = ma.calculate_expected_shortfall(returns)

# One call summary of around 28 metrics plus a formatted text report
stats = ma.summary_stats(returns)
print(ma.tearsheet(returns))

# Technical indicators, base install, no extras
rsi = ma.RSI(prices, period=14)
upper, mid, lower = ma.BollingerBands(prices, period=20)
```

Portfolio optimization takes annualized expected returns as a pandas Series and a covariance matrix as a pandas DataFrame.

```python
from meridianalgo import MeanVariance

expected_returns = returns.mean() * 252
covariance = returns.cov() * 252
result = MeanVariance().optimize(expected_returns, covariance, objective="max_sharpe")
print(result.weights, result.sharpe_ratio)
```

## What is inside

| Domain | Highlights |
|---|---|
| Portfolio | Mean variance, HRP, Black Litterman, risk parity, Kelly, CPPI |
| Risk | VaR, CVaR, stress testing, scenario analysis, risk budgeting |
| Derivatives | Black Scholes, greeks, implied vol, exotics |
| Volatility | GARCH and the GARCH family, realized vol estimators, regimes |
| Monte Carlo | GBM, Heston, jump diffusion, CIR, variance reduction |
| Credit | Merton model, CDS pricing, Z spread, expected loss |
| Fixed income | Bond pricing, duration, convexity, yield curves |
| Backtesting | Event driven engine, order management, slippage |
| Machine learning | LSTM models, walk forward CV, feature engineering |
| Execution | VWAP, TWAP, POV, implementation shortfall |
| Signals | More than forty technical indicators, functional and OOP APIs |

## Links

- Documentation at https://meridianalgo.readthedocs.io
- Source and issues at https://github.com/MeridianAlgo/Python-Packages
- Changelog at https://github.com/MeridianAlgo/Python-Packages/blob/main/CHANGELOG.md

## License

MIT License. For research and educational use. Trading involves substantial risk of loss, and past performance does not guarantee future results.
