Portfolio Optimization with Python Course¶
Motivation¶
Since its release in March 2nd, 2020; Riskfolio-Lib has become one of the most popular
Portfolio Optimization Python libraries worldwide with and
.
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¶
Scientific Computation Review
Numpy: Linear Algebra
Pandas: Dataframes
Scipy: Statistical Functions and Linear Algebra
Montecarlo and Quasimontecarlo Simulation Applied to Portfolio Optimization
Statsmodels: Econometrics
Convex Optimization Applied to Portfolio Optimization
CVXPY: Disciplined Convex Programming (DCP) Optimization
Linear Programming
Gini Mean Difference (GMD)
Mean Absolute Deviation (MAD)
First Lower Partial Moment
Conditional Value at Risk (CVaR)
Maximum Loss or Minimax
Range
Conditional Drawdown at Risk (CDaR)
Maximum Drawdown
Linear Inequalities Constraints
Turnover Constraints
Quadratic Programming
Variance
Tracking Error based on Weights
Second Order Cone Programming
Standard Deviation
Second Lower Partial Moment
Value at Risk for Elliptical Distributions
Index Tracking Error
Semidefinite Programming
Variance
Kurtosis
Approximate Kurtosis
Skewness
Exponential Cone Programming
Entropic Value at Risk (EVaR)
Entropic Drawdown at Risk (EDaR)
Power Cone Programming
Relativistic Value at Risk (RLVaR)
Relativistic Drawdown at Risk (RLDaR)
Even Moments
Convex Fractional Programming (Risk Adjusted Return Ratio Optimization)
Mean Risk Optimization
Ordered Weighted Average (OWA) Risk Measures
OWA Risk Measures
Higher L-moments
Risk Parity Optimization
Least Squares Approach
Risk Budgeting Approach
Semidefinite Approach
Worst Case Optimization
Box Uncertainty Sets
Elliptical Uncertainty Sets
Integer Programming Applied to Portfolio Optimization
Quantile Optimization
Value at Risk
Drawdown at Risk
Integer Constraints
Cardinality Constraint on Assets
Cardinality Constraint on Sets
Join Investment Constraints
Mutually Exclusive Investment Constraints
Buy in Threshold Constraint
Convex Fractional Programming with Integer Variables
Risk Parity Optimization for Long Short Portfolios
Machine Learning Algorithms Applied to Portfolio Optimization
Hierarchical Risk Parity
Hierarchical Equal Risk Contribution
Nested Clustered Optimization
Graph Theory Applied to Portfolio Optimization
Centrality Measures Constraints (Average Connectivity of Graphs)
Network Constraints (Relative Positions on Graphs)
Clusters Constraints (Clusters based on Dendrogram)
Estimation of Input Parameters that Incorporate Additional Information
Risk Factors Models
Explicit Risk Factors
Implicit Risk Factors
Black Litterman Models
Original Black Litterman Model (Views on Assets)
Augmented Black Litterman Model (Views on Assets and Risk Factors)
Black Litterman Bayesian (Views on Risk Factors)
Backtesting of Portfolio Optimization Strategies
The Walk Forward Method (Rolling and Expanding Window)
The Cross-Validation Method
The Combinatorial Purged Cross-Validation Method