Skip to main content

MV Port is a Python package to perform Mean-Variance Analysis. It provides a Portfolio class with a variety of methods to help on your portfolio optimization tasks.

Project description

=======================
Mean Variance Portfolio
=======================


.. image:: https://img.shields.io/pypi/v/mvport.svg
:target: https://pypi.python.org/pypi/mvport

.. image:: https://img.shields.io/travis/condereis/mean-variance-portfolio.svg
:target: https://travis-ci.org/condereis/mean-variance-portfolio

.. image:: https://readthedocs.org/projects/mean-variance-portfolio/badge/?version=latest
:target: https://mean-variance-portfolio.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status


.. image:: https://pyup.io/repos/github/condereis/mean-variance-portfolio/shield.svg
:target: https://pyup.io/repos/github/condereis/mean-variance-portfolio/
:alt: Updates



MV Port is a Python package to perform Mean-Variance Analysis. It provides a Portfolio class with a variety of methods to help on your portfolio optimization tasks.


* Free software: MIT license
* Documentation: https://mean-variance-portfolio.readthedocs.io.

.. Modern portfolio theory (MPT), or mean-variance analysis, is a mathematical framework for assembling a portfolio of assets such that the expected return is maximized for a given level of risk. It is a formalization and extension of diversification in investing, the idea that owning different kinds of financial assets is less risky than owning only one type. Its key insight is that an asset's risk and return should not be assessed by itself, but by how it contributes to a portfolio's overall risk and return. It uses the variance of asset prices as a proxy for risk.

Features
--------

* Easy portfolio setup
* Portfolio evaluation
* Random portfolio allocation
* Minimum Variance Portfolio optimization
* Efficient Frontier evaluation
* Tangency Portfolio for a given risk free return rate


Installation
------------
To install MV Port, run this command in your terminal:

.. code:: bash

$ pip install mvport

Check `here <https://mean-variance-portfolio.readthedocs.io/en/latest/installation.html>`_ for further information on installation.

Basic Usage
-----------

Instantiate a portfolio and add some stock and evaluate it given a set of weights:

.. code:: python

>>> import mvport as mv
>>> p = mv.Portfolio()
>>> p.add_stock('AAPL', [.1,.2,.3])
>>> p.add_stock('AMZN', [.1,.3,.5])
>>> mean, variance, sharp_ratio, weights = p.evaluate([.5, .5])
>>> print '{} +- {}'.format(mean, variance)
0.25 +- 0.0225

Check `here <https://mean-variance-portfolio.readthedocs.io/latest/usage.html>`_ for further information on usage.

=======
History
=======

1.0.0 (2018-06-28)
------------------

* First release on PyPI.
* Stock class implemented.
* Portfolio class implemented.
* Minimum Variance Portfolio optimization
* Efficient Frontier evaluation
* Tangency Portfolio for a given risk free return rate


1.0.1 (2018-06-28)
------------------

* Minor ajusts.


1.0.2 (2018-06-28)
------------------

* Minor ajusts.


1.1.0 (2018-08-05)
------------------

* Portfalio evaluation given actual stocks returns.


1.2.0 (2019-03-27)
------------------

* Calculating the optimization problem manualy so cvxopt is no longer necessary.


1.3.0 (2019-03-30)
------------------

* Use pseudo inverse when covariance matrix is close to singular.


1.3.1 (2019-03-31)
------------------

* Fix docs URL on README.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mvport, version 1.3.1
Filename, size File type Python version Upload date Hashes
Filename, size mvport-1.3.1.tar.gz (14.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page