Course Syllabus

MAFS5310 - Portfolio Optimization with R

MSc in Financial Mathematics

Fall 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 variations, namely, robust optimization methods, alternative measures of risk (e.g., CVaR or ES), regularization via sparsity, improved estimators of the covariance matrix via random matrix theory, robust estimators for heavy tails, factor models, mean models, volatility clustering models, risk-parity formulations, etc.

This course will explore the Markowitz portfolio optimization in its many variations and extensions, with special emphasis on R programming. Each week will be devoted to a specific topic, during which the theory will be first presented, followed by an exposition of a practical implementation based on R programming.


  • Yiyong Feng and Daniel P. Palomar, A Signal Processing Perspective on Financial Engineering. Foundations and Trends® in Signal Processing, Now Publishers, 2016. [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 and some programming knowledge in R (or similar). Willingness to spend countless of hours programming in R.


Homework: 25%
Class participation (video on): 10%
Weekly portfolio game (in R):   40%
Final lightening presentation (1 min with 3 slides): 25% 

Course Schedule

Date Week Lect Topic
8-Sep     1    1 Theory: Introduction to convex optimization
   2 Practice: R for finance primer
15-Sep     2    3 Theory: Convex optimization problems
   4 Practice: Solvers in R
22-Sep     3    5 Portfolio optimization
   6       (cont’d)
29-Sep     4    7 Backtesting portfolios
   8 Data cleaning
6-Oct     5    9 Prior information: Shrinkage and Black-Litterman
 10       (cont’d)
20-Oct     6  11 Regularized robust estimators under heavy tails and outliers
 12       (cont’d)
27-Oct      7  13 Robust portfolio optimization
 14       (cont’d)
3-Nov     8  15 Portfolio optimization with alternative risk measures
 16       (cont’d)
10-Nov    9  17 Risk parity portfolio
 18       (cont’d)
17-Nov   10  19 Index tracking of financial markets
 20       (cont’d)
24-Nov 11 21 Time series modeling of financial data
22       (cont’d)
12 Theory: Pairs trading
Practice: Pairs trading with R
 1-Dec  13 Project presentations by students

Lecture Information

Lecture Time: Tue 19:30 – 22:20

Online via Zoom

Teaching Team

Instructor: Prof. Daniel P. PALOMAR (


Office: 2398 (Lifts 17/18)

Office hours: By email appointment

TAs: Rui ZHOU ( and Sandeep KUMAR (