Portfolio optimization and simulation in Python
Python Shell Makefile
Switch branches/tags
Nothing to show
Clone or download
enzobusseti Merge pull request #16 from weiyialanchen/master
Add dollar neutral, factor constraints and fixed alpha constraint
Latest commit 152188a Jul 5, 2018



Build Status Coverage Status

The cvxportfolio documentation is 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:

    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},


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