Portfolio Optimization with Python Course





https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86
Buy Me a Coffee at ko-fi.com

Motivation

Since its release in March 2nd, 2020; Riskfolio-Lib has become one of the most popular Portfolio Optimization Python libraries worldwide with GitHub stars and downloads. However, a significant number of users face challenges when using Riskfolio-Lib due to limited training in mathematical programming. To overcome this barrier, I have developed a comprehensive course on Portfolio Optimization with practical applications in Python.

It is important to note that sales of this course help fund the continuous development and maintenance of Riskfolio-Lib. As a personal open-source project, Riskfolio-Lib is not financially supported by any institution or organization, unlike many other popular Python projects.

Objective

The objective of this course is to provide students with the computational tools needed to design asset allocation strategies using cutting-edge portfolio optimization techniques that would be difficult and time-consuming to implement with spreadsheets or traditional programming languages.

Student Profile

The course is intended for professionals and students in the fields of finance, investments, and risk management who are interested in advancing their portfolio optimization skills. Students are encouraged to have a basic to intermediate background in portfolio theory, optimization, calculus, linear algebra, and statistics, together with intermediate to advanced programming experience in languages such as Python, R, Julia, Rust, C, C++, VBA, VB.NET, Matlab, or similar.

Courses Details

  • The course will be available starting March 28, 2026, including full access to all materials such as recordings, source code, slides, and whiteboard notes.

  • All classes are delivered online and asynchronously through Google Classroom, allowing students to learn at their own pace.

  • The course content will be comprehensively updated every two years. In addition, new classes on relevant emerging topics will be added at no additional cost.

Enrollment

To register for the course, participants are required to have a valid email address with a “@gmail.com” domain. Enrollment can then be completed by paying the course fee using the following PayPal link:


Once the PayPal payment has been completed, please send a confirmation email to orenji.eirl@gmail.com to complete your course registration.

A 10% discount applies to group registrations of 4 or more participants. To request the discount, please email orenji.eirl@gmail.com with the details of all participants, including full name, city of residence, and a valid email address with a “@gmail.com” domain. A customized PayPal invoice with the discounted amount will then be provided.

Course Content

  1. Scientific Computation Review

    1. Numpy: Linear Algebra

    2. Pandas: Dataframes

    3. Scipy: Statistical Functions and Linear Algebra

    4. Montecarlo and Quasimontecarlo Simulation Applied to Portfolio Optimization

    5. Statsmodels: Econometrics

  2. Convex Optimization Applied to Portfolio Optimization

    1. CVXPY: Disciplined Convex Programming (DCP) Optimization

    2. Linear Programming

      1. Gini Mean Difference (GMD)

      2. Mean Absolute Deviation (MAD)

      3. First Lower Partial Moment

      4. Conditional Value at Risk (CVaR)

      5. Maximum Loss or Minimax

      6. Range

      7. Conditional Drawdown at Risk (CDaR)

      8. Maximum Drawdown

      9. Linear Inequalities Constraints

      10. Turnover Constraints

    3. Quadratic Programming

      1. Variance

      2. Tracking Error based on Weights

    4. Second Order Cone Programming

      1. Standard Deviation

      2. Second Lower Partial Moment

      3. Value at Risk for Elliptical Distributions

      4. Index Tracking Error

    5. Semidefinite Programming

      1. Variance

      2. Kurtosis

      3. Approximate Kurtosis

      4. Skewness

    6. Exponential Cone Programming

      1. Entropic Value at Risk (EVaR)

      2. Entropic Drawdown at Risk (EDaR)

    7. Power Cone Programming

      1. Relativistic Value at Risk (RLVaR)

      2. Relativistic Drawdown at Risk (RLDaR)

      3. Even Moments

    8. Convex Fractional Programming (Risk Adjusted Return Ratio Optimization)

    9. Mean Risk Optimization

    10. Ordered Weighted Average (OWA) Risk Measures

      1. OWA Risk Measures

      2. Higher L-moments

    11. Risk Parity Optimization

      1. Least Squares Approach

      2. Risk Budgeting Approach

      3. Semidefinite Approach

    12. Worst Case Optimization

      1. Box Uncertainty Sets

      2. Elliptical Uncertainty Sets

  3. Integer Programming Applied to Portfolio Optimization

    1. Quantile Optimization

      1. Value at Risk

      2. Drawdown at Risk

    2. Integer Constraints

      1. Cardinality Constraint on Assets

      2. Cardinality Constraint on Sets

      3. Join Investment Constraints

      4. Mutually Exclusive Investment Constraints

      5. Buy in Threshold Constraint

    3. Convex Fractional Programming with Integer Variables

    4. Risk Parity Optimization for Long Short Portfolios

  4. Machine Learning Algorithms Applied to Portfolio Optimization

    1. Hierarchical Risk Parity

    2. Hierarchical Equal Risk Contribution

    3. Nested Clustered Optimization

  5. Graph Theory Applied to Portfolio Optimization

    1. Centrality Measures Constraints (Average Connectivity of Graphs)

    2. Network Constraints (Relative Positions on Graphs)

    3. Clusters Constraints (Clusters based on Dendrogram)

  6. Estimation of Input Parameters that Incorporate Additional Information

    1. Risk Factors Models

      1. Explicit Risk Factors

      2. Implicit Risk Factors

    2. Black Litterman Models

      1. Original Black Litterman Model (Views on Assets)

      2. Augmented Black Litterman Model (Views on Assets and Risk Factors)

      3. Black Litterman Bayesian (Views on Risk Factors)

  7. Backtesting of Portfolio Optimization Strategies

    1. The Walk Forward Method (Rolling and Expanding Window)

    2. The Cross-Validation Method

    3. The Combinatorial Purged Cross-Validation Method