Financial Portfolio Optimization Algorithms
Project description
azapy project
Financial Portfolio Optimization Algorithms
An open-source python library for everybody
Author: Mircea Marinescu
email: Mircea.Marinescu@outlook.com
Package installation: pip install azapy
A graphical user interface is provided by azapyGUI package.
Contents
A. Risk-based portfolio optimization algorithms
- mCVaR - mixture CVaR (Conditional Value at Risk)
- mSMCR - mixture SMCR (Second Moment Coherent Risk)
- mMAD - m-level MAD (Mean Absolute Deviation)
- mLSD - m-level LSD (Lower Semi-Deviation)
- mBTAD - mixture BTAD (Below Threshold Absolute Deviation)
- mBTSD - mixture BTSD (Below Threshold Semi-Deviation)
- GINI - Gini index (as in Corrado Gini statistician 1884-1965)
- SD - standard deviation
- MV - variance (as in mean-variance model)
- mEVaR - mixture EVaR (Entropic Value at Risk) (beta version)
For each class of portfolio the following optimization strategies are available
- Optimal-risk portfolio for targeted expected rate of return value
- Sharpe-optimal portfolio - maximization of generalized Sharpe ratio
- Sharpe-optimal portfolio - minimization of inverse generalized Sharpe ratio
- Minimum risk portfolio
- Optimal-risk portfolio for a fixed risk-aversion factor
- Optimal-risk portfolio with the same risk value as a benchmark portfolio (e.g., same as equal weighted portfolio)
- Optimal-diversified portfolio for targeted expected rate of return (minimization of inverse 1-D ratio) (beta version)
- Optimal-diversified portfolio for targeted expected rate of return (maximization of 1-D ratio) (beta version)
- Maximum diversified portfolio (beta version)
- Optimal-diversified portfolio with the same diversification factor as a benchmark portfolio (e.g., same as equal weighted portfolio) (beta version)
- Optimal-diversified portfolio with the same expected rate of return as a benchmark portfolio (e.g., same as equal weighted portfolio) (beta version)
B. "Naïve" portfolio strategies
- Constant weighted portfolio. A particular case is equal weighted portfolio.
- Inverse volatility portfolio (i.e., portfolio weights are proportional to the inverse of asset volatilities)
- Inverse variance portfolio (i.e., portfolio weights are proportional to the inverse of asset variances)
- Inverse drawdown portfolio (i.e., portfolio weights are proportional to the asset absolute value of maximum drawdowns over a predefined historical period)
C. Greedy portfolio optimization strategies
- Kelly's portfolio (as in John Larry Kelly Jr. scientist 1923-1965) - maximization of portfolio log returns
- Universal portfolio (Thomas M. Cover 1996) (beta version)
D. Market Selectors
- Dual Momentum Selector (beta version)
- Correlation Clustering Selector (beta version)
Utility functions:
-
Collect historical market data from various providers.
Supported providers:
- yahoo.com
- eodhistoricaldata.com
- alphavantage.co
- marketstack.com
-
Generate business calendars for all major exchanges across the world.
-
Generate rebalancing portfolio schedules.
-
Append a cash-like security to an existing market data object.
-
Update market data saved in a directory.
-
N-simplex random vectors generators.
Third-party packages used by azapy 1.2.4
- python 3.11.8
- pandas 2.1.4
- numpy 1.26.2
- scipy 1.11.4
- statsmodels 0.14.0
- matplotlib 3.8.0
- plotly 5.9.0
- requests 2.31.0
- pandas_market_calendars 4.3.2
- ecos 2.0.12
- cvxopt 1.3.2
- ta 0.11.0
- yfinance 0.2.33
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
azapy-1.2.5.tar.gz
(114.1 kB
view details)
Built Distribution
azapy-1.2.5-py3-none-any.whl
(162.8 kB
view details)
File details
Details for the file azapy-1.2.5.tar.gz
.
File metadata
- Download URL: azapy-1.2.5.tar.gz
- Upload date:
- Size: 114.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c88a04f578d47452a065dc7657e048252b9ec4b685f2fed030daef525b12ea89 |
|
MD5 | 57ab75df7886f39e38e48bfb757034cc |
|
BLAKE2b-256 | 317851eaf0622a232bd4dfd337205a684ef669ffb6d01ce40e2c86e90701bffa |
File details
Details for the file azapy-1.2.5-py3-none-any.whl
.
File metadata
- Download URL: azapy-1.2.5-py3-none-any.whl
- Upload date:
- Size: 162.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29a56a80832e8da4f481b8b54f3d5401fdd24be9dfa6a46b32f8443456b5c692 |
|
MD5 | b5c38334799d5847f88c30ec713a1e95 |
|
BLAKE2b-256 | 7bc684f8d12b10a72f64166fad97efdb67d86a456bbc0c82c080be78c3b93747 |