An Open-Source Implementation of the Critical-Line Algorithm for Portfolio Optimization

Algorithms, 6(1), pp.169-196, 2013

29 Pages Posted: 8 Jan 2013 Last revised: 2 Jan 2016

See all articles by David H. Bailey

David H. Bailey

Lawrence Berkeley National Laboratory; University of California, Davis

Marcos Lopez de Prado

Cornell University - Operations Research & Industrial Engineering; Abu Dhabi Investment Authority; True Positive Technologies

Date Written: February 1, 2013

Abstract

Portfolio optimization is one of the problems most frequently encountered by financial practitioners. To our knowledge, the Critical Line Algorithm (CLA) is the only algorithm specifically designed for inequality-constrained portfolio optimization problems, which guarantees that the exact solution is found after a given number of iterations. Furthermore, CLA does not only compute a single portfolio, but it derives the entire efficient frontier. In the context of portfolio optimization problems, this approach is clearly more adequate than generic-purpose quadratic programming algorithms. The main goal of this paper is to fill a gap in the literature by providing a well-documented, step-by-step open-source implementation of CLA in a scientific language. The code is implemented as a Python class object, which allows it to be imported like any other Python module, and integrated seamlessly with pre-existing code. We discuss the logic behind CLA following the algorithm’s decision flow. In addition, we have developed several utilities that facilitate the answering of recurrent practical problems. We hope that this publication will offer a better alternative to financial practitioners, many of whom are currently relying on generic-purpose optimizers which often deliver suboptimal solutions. The source code can be downloaded at the authors' websites.

Keywords: portfolio selection, quadratic programming, portfolio optimization, constrained efficient frontier, turning point, Kuhn-Tucker conditions, risk aversion

JEL Classification: C02, G11, G14, D53

Suggested Citation

Bailey, David H. and López de Prado, Marcos and López de Prado, Marcos, An Open-Source Implementation of the Critical-Line Algorithm for Portfolio Optimization (February 1, 2013). Algorithms, 6(1), pp.169-196, 2013, Available at SSRN: https://ssrn.com/abstract=2197616 or http://dx.doi.org/10.2139/ssrn.2197616

David H. Bailey

Lawrence Berkeley National Laboratory ( email )

1 Cyclotron Road
Berkeley, CA 94720
United States

HOME PAGE: http://www.davidhbailey.com

University of California, Davis ( email )

One Shields Avenue
Apt 153
Davis, CA 95616
United States

HOME PAGE: http://www.davidhbailey.com

Marcos López de Prado (Contact Author)

Abu Dhabi Investment Authority ( email )

211 Corniche Road
Abu Dhabi, Abu Dhabi PO Box3600
United Arab Emirates

HOME PAGE: http://www.adia.ae

Cornell University - Operations Research & Industrial Engineering ( email )

237 Rhodes Hall
Ithaca, NY 14853
United States

HOME PAGE: http://www.orie.cornell.edu

True Positive Technologies ( email )

NY
United States

HOME PAGE: http://www.truepositive.com

Do you have a job opening that you would like to promote on SSRN?

Paper statistics

Downloads
8,789
Abstract Views
28,343
Rank
1,392
PlumX Metrics