Each of the chapters is organized around a specific subject:
Sec. 2 (Markowitz portfolio optimization) is a general introduction, and is recommended to be read first to familiarize with the problem formulation and notations used throughout this book. Here we also present a code example showing how to use MOSEK to model the problem and how to solve it.
Sec. 3 (Input data preparation) summarizes concepts and pitfalls related to the preparation of raw data. Here we discuss how to arrive at security returns data suitable for optimization, starting from raw data that is commonly available on the internet. This chapter is recommended as a second read.
Each of the subsequent chapters are focusing on a specific topic: mitigating estimation error, using factor models, modeling transaction costs, and finally optimizing relative to a benchmark. These chapters are independent and thus can be read in any order.
The book assumes a basic familiarity with conic optimization. Sec. 10.1 (Conic optimization refresher) can be used as a quick refresher in this topic. It shows how to convert traditional quadratic optimization (QO) and quadratically constrained quadratic optimization (QCQO) problems into equivalent quadratic conic optimization models, and what are the advantages of this conversion. Then it briefly introduces other types of cones as well.