Welcome to CVXPortfolioΒΆ

CVXPortfolio is a package for simulating and optimizing multi-period investment based on the framework outlined in the paper Multi-Period Trading via Convex Optimization.

The simulator is able to simulate the evolution of a portfolio, taking into account asset returns, transaction costs, and holding costs. The package includes simple but reasonable models of transaction cost based on asset bid-ask spread, volume, and volatility.

CVXPortfolio provides functionality for implementing trading strategies using the convex optimization package CVXPY.

The package relies on Pandas for data handling (e.g., prices, returns, volumes). Our simple examples show how Quandl can be used to import open source financial data, but any other source can be used instead.

CVXPortfolio is released under a permissive open source license. It includes basic functionality for simulation and simple or complex optimization based trading. Users can easily extend the package with additional trading strategies.

CVXPortfolio was designed and implemented by Enzo Busseti and Steven Diamond, with input from Stephen Boyd and the authors of the paper.

CVXPortfolio is not quite ready yet, but if you want to jump into the development branch feel free.