/cvxportfolio

Portfolio optimization and simulation in Python

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

cvxportfolio

Build Status Coverage Status

An (outdated) documentation of the package is given at cvxportfolio.org.

cvxportfolio is a python library for portfolio optimization and simulation, based on the paper Multi-Period Trading via Convex Optimization. It is written in Python, its major dependencies are cvxpy and pandas.

See the examples for basic usage.

If you wish to cite CVXPortfolio, please use:

@article{BBDKKNS:17,
    author       = {S. Boyd and E. Busseti and S. Diamond and R. Kahn and K. Koh and P. Nystrup and J. Speth},
    title        = {Multi-Period Trading via Convex Optimization},
    journal      = {Foundations and Trends in Optimization},
    year         = {2017},
    month        = {August},
    volume       = {3},
    number       = {1},
    pages        = {1--76},
    publisher    = {Now Publishers},
    url          = {http://stanford.edu/~boyd/papers/cvx_portfolio.html},
}

Installation

We provide conda (recommended) and pip packages. From scratch, do:

  1. Install Anaconda
  2. Install pandas
conda install pandas
  1. Install cvxpy (if it doesn't work, follow instructions here)
conda install -c conda-forge lapack
conda install -c cvxgrp cvxpy
  1. Install cvxportfolio
conda install -c cvxgrp cvxportfolio
  1. Test the installation with nose
conda install nose
nosetests cvxportfolio