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.

Highlights

  • Since the work of Markowitz [1], portfolio optimization has become one of the most critical operations performed in investment management

  • Critical Line Algorithm (CLA) is the only algorithm designed for inequality-constrained portfolio optimization problems, which guarantees that the exact solution is found after a given number of iterations

  • Portfolio optimization is one of the problems most frequently encountered by financial practitioners

Read more

Summary

Introduction

Since the work of Markowitz [1], portfolio optimization has become one of the most critical operations performed in investment management. The lack of publicly available CLA software, commercially or open-source, means that most researchers, practitioners and financial firms are resorting to generic linear or quadratic programming algorithms that have not been designed to solve the constrained portfolio optimization problem, and will often return suboptimal solutions. This is quite astounding, because as we said most financial practitioners face this problem with relatively high frequency. Results can be validated using the Python code in the Appendix

The Problem
The Solution
A Few Utilities
Search for the Minimum Variance Portfolio
Search for the Maximum Sharpe Ratio Portfolio
Computing the Efficient Frontier
A Numerical Example
Conclusions
Python Implementation of the Critical Line Algorithm
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call