Skip to content

Giulianocrucio/OFDS-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Portfolio Optimization with Frank-Wolfe Algorithms

This project explores numerical methods for solving the Markowitz portfolio optimization problem under budget and no short-selling constraints.
The focus is on implementing and comparing three algorithms: Frank-Wolfe, Pairwise Frank-Wolfe, and Projected Gradient.

Problem Statement

We consider the classical Markowitz mean-variance optimization problem:

$$ \min_{x \in \Delta_n} ; \gamma x^T \Sigma x - r^T x $$

where:

  • $x \in \mathbb{R}^n$ represents the portfolio weights,
  • $\Sigma$ is the covariance matrix of asset returns,
  • $r$ is the vector of expected returns,
  • $\gamma > 0$ is the risk-aversion parameter,
  • $\Delta_n = { x \geq 0, ; e^T x = 1 }$ is the probability simplex (budget and no short-selling constraints).

Implemented Methods

  • Frank-Wolfe Algorithm
    First-order method with linear minimization oracle. Implemented with multiple step-size strategies (exact line search, Armijo rule, diminishing step size).

  • Pairwise Frank-Wolfe Algorithm
    A variant of Frank-Wolfe designed to improve convergence on boundary solutions by combining a toward and away step.

  • Projected Gradient Method
    Gradient descent adapted to constrained domains by projecting iterates onto the simplex at each step.

Datasets

The algorithms were tested on weekly return data from:

  • S&P 500
  • NASDAQ 100
  • Dow Jones

Each dataset contains individual stock returns adjusted for dividends and stock splits.

Evaluation Procedure

  • Training window: 52 weeks
  • Testing window: 12 weeks
  • Rolling-window approach for rebalancing
  • Comparison of convergence speed, number of iterations, and computational time across algorithms.

About

Portfolio Optimization with Frank-Wolfe Algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •