Skip to content

Dharshin1/quant-portfolio-optimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cross-Asset Portfolio Optimization

Overview

This project focuses on building a diversified cross-asset portfolio using historical financial data. The goal is to maximize risk-adjusted returns while minimizing portfolio risk and drawdowns.

It applies modern portfolio theory concepts such as log returns, covariance analysis, and efficient frontier simulation.


Features

  • Multi-asset portfolio construction (stocks, crypto, commodities, indices)

  • Data preprocessing and cleaning

  • Log return calculation

  • Covariance and correlation analysis

  • Monte Carlo simulation (5000 portfolios)

  • Efficient Frontier visualization

  • Optimal portfolio selection:

    • Maximum Sharpe Ratio
    • Minimum Volatility
  • Portfolio backtesting

  • Drawdown analysis

  • Rolling Sharpe Ratio

  • Stress testing (high volatility periods)

  • Portfolio performance metrics


Project Structure

portfolio-optimization/
│
├── data/                  # CSV files (asset price data)
├── notebook.ipynb        # Main analysis notebook
├── requirements.txt      # Required libraries
└── README.md             # Project documentation

Technologies Used

  • Python
  • Pandas
  • NumPy
  • Matplotlib
  • Seaborn

Installation

  1. Clone the repository:
git clone https://github.com/your-username/portfolio-optimization.git
cd portfolio-optimization
  1. Install dependencies:
pip install -r requirements.txt

How to Run

Option 1: Jupyter Notebook

jupyter notebook notebook.ipynb

Option 2: Python Script

python main.py

Methodology

1. Data Preprocessing

  • Load multiple CSV files
  • Convert Date column to datetime
  • Set Date as index
  • Keep only Price column
  • Handle missing values
  • Convert prices to float

2. Feature Engineering

  • Compute log returns:
returns = np.log(prices / prices.shift(1))

3. Statistical Analysis

  • Mean returns
  • Covariance matrix
  • Correlation heatmap

4. Portfolio Optimization

  • Simulate 5000 random portfolios

  • Compute:

    • Expected return
    • Volatility
    • Sharpe ratio

5. Optimal Portfolios

  • Max Sharpe Portfolio
  • Min Volatility Portfolio

6. Efficient Frontier

  • Plot risk vs return
  • Highlight optimal portfolios

7. Backtesting

  • Compute portfolio value over time
  • Compare performance

8. Risk Analysis

  • Drawdown calculation
  • Rolling Sharpe Ratio
  • Stress testing during high volatility

Key Results

Metric Max Sharpe Min Volatility
Annual Return 20.2% 17.7%
Volatility 24.34% 23.57%
Sharpe Ratio 0.83 0.75
Max Drawdown -44.39% -40.99%
Sortino Ratio 1.04 -

Visualizations

  • Asset price trends
  • Efficient Frontier
  • Portfolio equity curves
  • Drawdown plots
  • Rolling Sharpe Ratio
  • Correlation heatmap

Assumptions

  • Risk-free rate = 0%
  • No transaction costs
  • Daily rebalancing
  • Missing data dropped (no interpolation)
  • Log returns used for calculations

Conclusion

  • The Max Sharpe Portfolio provides higher returns but comes with higher risk.
  • The Min Volatility Portfolio offers more stability with lower returns.
  • Diversification plays a crucial role in reducing portfolio risk.
  • Correlated assets increase overall portfolio volatility.

Future Improvements

  • Include transaction costs
  • Add dynamic portfolio rebalancing
  • Use machine learning for asset allocation
  • Implement regime-switching models
  • Stress test with extreme market scenarios

Author

Dharshini D


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors