Shantala's picture
README.md updated with a detailed description of the project, tools used, methods and results
f450707 verified
metadata
title: >-
  Max Diversification and Min CVaR Optimisation Models for a Portfolio with 5
  Assets
emoji: 📊
colorFrom: indigo
colorTo: indigo
sdk: docker
pinned: false
short_description: Dashboard for portfolio optimisation results

Portfolio Optimisation Strategies

Overview

Showcased machine learning in portfolio construction by training/testing multiple optimisation strategies (Max Diversification, Min CVaR, Equal Weighted) on a portfolio of ETFs, with results deployed in a Python Vizro dashboard. Deployed on HuggingFace Spaces.

Python Tools Used

Data Fetching, Preparation and Plotting

  • yfinance to obtain historical ETF prices
  • pandas for data processing and preparation
  • plotly for plotting the data

Portfolio Optimisation

  • scikit-learn for training and testing
  • skfolio to access the Maximum Diversification and Minimum CVaR models

Results Dashboard

  • vizro to build the dashboard

Description

Portfolio Composition

Five ETFs:

  • EWA iShares MSCI Australia ETF
  • EWH iShares MSCI Hong Kong ETF
  • EWJ iShares MSCI Japan ETF
  • ENZL iShares MSCI New Zealand ETF
  • EWS iShares MSCI Singapore ETF

Time Period

30/09/2010 to 30/09/2024

Optimisation Models Tested:

  • Maximum Diversification
  • Minimum CVaR
  • Equal Weighted

Metrics

  • Annualised Mean
  • Annualised Standard Deviation
  • CVaR at 95%

Results

  • The number of stocks (ETFs) in the portfolio is very small, at only 5, so there was not much variability in the results.
  • The Equal Weighted model had the highest annualised return and annualised standard deviation.

Next Steps

Test the optimisation models on a portfolio with a greater number of stocks, over different time periods, including other optimisation models in the analysis.

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference