Skip to content

suenot/markowitz

Repository files navigation

Markowitz Portfolio Theory Examples

Practical implementation of Modern Portfolio Theory for cryptocurrency portfolios using Python.

📚 Overview

This repository contains progressive examples demonstrating Markowitz Portfolio Theory concepts, from basic portfolio calculations to advanced optimization strategies.

🚀 Quick Start

Installation

# Clone the repository
git clone https://github.com/suenot/markowitz.git
cd markowitz

# Install dependencies
pip install -r requirements.txt

Run Examples

# Run all examples
python run_all_examples.py

# Or run individual examples
python 01_basic_portfolio_math.py
python 02_efficient_frontier.py
python 03_portfolio_optimization.py
python 04_multi_asset_portfolio.py
python 05_advanced_strategies.py

📂 Examples Structure

Level 1: Basic Portfolio Math (01_basic_portfolio_math.py)

  • Portfolio return and volatility calculations
  • Risk-return trade-offs
  • Value at Risk (VaR) analysis
  • Correlation analysis

Level 2: Efficient Frontier (02_efficient_frontier.py)

  • Monte Carlo simulation of random portfolios
  • Efficient frontier visualization
  • Special portfolios identification (max Sharpe, min volatility)
  • Portfolio concentration analysis

Level 3: Portfolio Optimization (03_portfolio_optimization.py)

  • Mathematical optimization using scipy
  • Maximum Sharpe ratio portfolio
  • Minimum volatility portfolio
  • Target return optimization
  • Sensitivity analysis

Level 4: Multi-Asset Portfolio (04_multi_asset_portfolio.py)

  • Real crypto portfolio with 8+ assets
  • Comprehensive backtesting
  • Out-of-sample performance validation
  • Risk decomposition analysis
  • Multiple optimization strategies comparison

Level 5: Advanced Strategies (05_advanced_strategies.py)

  • Black-Litterman model
  • Hierarchical Risk Parity (HRP)
  • Risk Parity optimization
  • Maximum Diversification
  • Practical rebalancing with transaction costs

📊 Output Files

Each example generates visualization files:

  • 01_basic_portfolio_analysis.png - Basic metrics and distributions
  • 02_efficient_frontier.png - Efficient frontier visualization
  • 03_portfolio_optimization.png - Optimization results
  • 04_multi_asset_portfolio.png - Multi-asset analysis and backtesting
  • 05_advanced_strategies.png - Advanced strategies comparison

🔧 Requirements

  • Python 3.8+
  • numpy
  • pandas
  • matplotlib
  • seaborn
  • scipy
  • yfinance

📖 Documentation

See the accompanying articles for detailed explanations:

⚠️ Disclaimer

This is for educational purposes only. Not financial advice. Cryptocurrency investments are highly risky. Always do your own research.

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

About

Markowitz portfolio theory article with examples

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages