Coder Social home page Coder Social logo

portfolio-optimization's Introduction

Portfolio-Management

This is a beginner project from AQR Capital Management - build a dynamic portfolio optimization framework for multi-asset classes including equity, bond, real estate, and commodity.

Target

Traditional Markowitz model suffers from over-sensitivity regarding model parameters. The aim is to construct a dynamically rebalanced portfolio and fine-tune the model by adding sparse portfolio selection with mandate constraints.

Data

Daily prices of four asset classes from 1990-2023 of equities (US equity, EM equity, Asia equity, Europe equity), fixed-income (high yield bond, aggregate bond), real estate (US real estate) and commodity (gold).

Strategy Pipeline

Backtest

Models

$$\text{argmax}_w(\mu^{T}w-\cfrac{1}{2}\lambda w^T\Sigma w- \gamma \left|| w - \hat{w} \right||^2)$$

  • $\sum_i w_i = 1, w_i>0$ are portfolio weights, $\hat{w}$ is the previous weight

  • $\mu$: mean asset returns

  • $\Sigma$: covariance matrix, portfolio volatility

  • $\lambda$: risk penalty parameter (higher $\lambda$ means lower volatility)

  • $\gamma$: portfolio turnover penalty parameter (higher $\gamma$ means lower turnover)

Performance Summary

Models Return Volatility Sharpe Max Drawdown Turnovers
V1 0.0200 0.0714 0.2799 -0.1691 0.2518
V1.5 0.0163 0.0738 0.2216 -0.1778 0.3581
V2 0.0475 0.1183 0.4021 -0.2044 0.2468
V3 0.0479 0.1211 0.3957 -0.2110 0.1499
V4 0.0542 0.1411 0.3845 -0.2383 0.1828
  • v1: Markowitz model
  • V1.5: mean-variance + winsorization
  • V2: mean-variance + winsorization + notional control
  • V3: mean-variance + winsorization + notional control + turnover control
  • V4 (Final model): mean-variance+ winsorization + notional control + turnover control + risk control

Risk Contribution

Optimal Portfolio Weights

Robustness Check

Check the model robustness for different asset classes, different hyper-parameter values (risk control and turnover control), different backtest windows.

  • Change of Sharpe and volatility with different risk penalty parameter $\lambda$

  • Performance comparison for different backtest windows

portfolio-optimization's People

Contributors

bradleyboyuyang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.