Course Syllabus

ELEC/ IEDA 3180 – Data-Driven Portfolio Optimization

Spring 2020-21, HKUST


Modern portfolio theory started with Harry Markowitz’s 1952 seminal paper “Portfolio Selection,” for which he would later receive the Nobel prize in 1990. He put forth the idea that risk-adverse investors should optimize their portfolio based on a combination of two objectives: expected return and risk. Until today, that idea has remained central in portfolio optimization. However, the vanilla Markowitz portfolio formulation does not seem to behave as expected in practice and most practitioners tend to avoid it.

During the past half century, researchers and practitioners have reconsidered the Markowitz portfolio formulation and have proposed countless of improvements and alternatives such as robust optimization methods, alternative measures of risk, regularization via sparsity, improved estimators of the covariance matrix, robust estimators for heavy tails, factor models, volatility clustering models, risk-parity formulations, index tracking, etc.

This course will explore the Markowitz portfolio optimization in its many variations and extensions, with special emphasis on Python programming. All the course material will be complemented with Python code that will be studied in class. The homework and project will be in Python.


  • Yiyong Feng and Daniel P. Palomar, A Signal Processing Perspective on Financial Engineering. Foundations and Trends® in Signal Processing, Now Publishers, 2016. [pdf]
  • Konstantinos Benidis, Yiyong Feng, and Daniel P. Palomar, Optimization Methods for Financial Index Tracking: From Theory to Practice. Foundations and Trends® in Optimization, Now Publishers, 2018. [pdf]
  • Boyd and L. Vandenberghe, Convex Optimization, Cambridge University Press, 2004. [pdf]
  • G. Cornuejols and R. Tutuncu, Optimization Methods in Finance. Cambridge Univ. Press, 2007.
  • F. J. Fabozzi, P. N. Kolm, D. A. Pachamanova, and S. M. Focardi, Robust Portfolio Optimization and Management. Wiley, 2007.


Good knowledge of linear algebra (MATH2111 or MATH2121 or MATH2131 or MATH2350), probability (IEDA2510 or IEDA2520 or IEDA2540 or ELEC2600), and some programming knowledge in Python or R.


Homework: 25%
Midterm:   25%
Final project: 35%
Final lightening presentation: 15% 

Course Schedule

Date Lect Topic
3-Feb     1 Theory: Introduction to convex optimization
5-Feb     2 Practice: Python for finance primer
10-Feb     3 Theory: Convex optimization problems
17-Feb     4 Practice: Solvers in Python
19-Feb     5 Financial data modeling: i.i.d. case
24-Feb     6       (cont’d)
26-Feb     7       (cont’d)
3-Mar     8 Portfolio optimization
5-Mar     9       (cont’d)
10-Mar   10 Data cleaning: data munging, missing values, and outliers
12-Mar   11       (cont’d)
17-Mar   12 Financial data modeling: time series
19-Mar   13       (cont’d)
24-Mar    - Midterm -
26-Mar   14 Backtesting
7-Apr   15 Algorithms: Primer
9-Apr   16 Algorithms: Majorization-Minimization (MM) and Successive Convex Approximation (SCA)
14-Apr   17 Risk parity portfolio via Newton, BCD, and SCA
16-Apr   18       (cont’d)
21-Apr   19 Index tracking of financial markets via MM
23-Apr  20 Portfolio optimization with alternative risk measures
28-Apr  21       (cont’d)
30-Apr  22 Special topics: Kalman Filtering in Finance
5-May  Project presentations by students
7-May  Project presentations by students

Lecture Information

Lecture Time: Wed & Fri, 4:30pm - 5:50pm

Lecture Venue: Rm2407 and online via Zoom

Teaching Team

Instructor: Prof. Daniel P. PALOMAR (


Office: 2398 (Lifts 17/18)

Office hours: By email appointment

TA: Shengjie XIU (

Course Summary:

Date Details Due