Standalone portfolio risk analytics engine
Project description
portfolio-risk-engine
Quantitative portfolio analytics library — factor regression, risk decomposition, optimization, and performance attribution.
Install
pip install portfolio-risk-engine
What it does
- Factor analysis — multi-factor regression with HAC standard errors, rolling betas, factor contribution decomposition
- Risk decomposition — systematic vs idiosyncratic risk, variance attribution by factor and position
- Portfolio optimization — mean-variance, minimum-variance, maximum-return with configurable constraints
- Risk scoring — composite risk score across concentration, volatility, factor exposure, and drawdown dimensions
- Performance metrics — Sharpe, Sortino, max drawdown, tracking error, information ratio, up/down capture
- Income projection — dividend yield forecasting with coverage and growth analysis
- Scenario analysis — what-if position changes with full risk recomputation
Quick Start
from portfolio_risk_engine import build_portfolio_view
result = build_portfolio_view(
weights={"AAPL": 0.3, "MSFT": 0.3, "GOOGL": 0.2, "BND": 0.2},
)
Data Providers
The engine uses a PriceProvider protocol for market data. A default FMP-backed provider is included when fmp-mcp is installed:
from portfolio_risk_engine.providers import set_price_provider
# Use the built-in FMP provider (requires FMP_API_KEY env var)
from portfolio_risk_engine._fmp_provider import FMPPriceProvider
set_price_provider(FMPPriceProvider())
# Or bring your own:
from portfolio_risk_engine.providers import PriceProvider
class MyProvider(PriceProvider):
def fetch_monthly_close(self, ticker, start_date=None, end_date=None, **kw): ...
def fetch_monthly_total_return_price(self, ticker, start_date=None, end_date=None, **kw): ...
# ...
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file portfolio_risk_engine-0.2.0.tar.gz.
File metadata
- Download URL: portfolio_risk_engine-0.2.0.tar.gz
- Upload date:
- Size: 6.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
212d56658094192f664585d3371b5f1962b7d84a14a173f89202cf4f53dbedad
|
|
| MD5 |
6320a87349ca05c8727da7a689a012b3
|
|
| BLAKE2b-256 |
a1670d2019ebb39a5a89adfeceffe5ab1019808deeb3e3f25cc11347cd43573c
|
File details
Details for the file portfolio_risk_engine-0.2.0-py3-none-any.whl.
File metadata
- Download URL: portfolio_risk_engine-0.2.0-py3-none-any.whl
- Upload date:
- Size: 145.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
026c9c13dfc1f057d891a9c08635e0325d3cd3fa0cd61d98a4389192650ef7ea
|
|
| MD5 |
402f0da4be0a37790b509685ce4675f5
|
|
| BLAKE2b-256 |
56024f502fa716e8762c48ad6f5f962e61eead8d2bcf70d48af05b2921a8d764
|