Skip to content

Shradd7/Portfolio-Optimisation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Portfolio Optimization using ML & Quant Strategies

📌 Problem Statement

Traditional portfolio optimization techniques (like Mean-Variance Optimization) assume static returns and often fail in real-world dynamic markets. They also ignore practical constraints like transaction costs, rebalancing, and risk management.

Solution

This project builds a hybrid portfolio optimization system that combines:

  • Quantitative Finance (Markowitz Optimization)
  • Machine Learning (Return Prediction)
  • Backtesting (Real-world validation)

The goal is to create a portfolio that maximizes risk-adjusted returns while being robust in real market conditions.


⚙️ Tech Stack

  • Python
  • Pandas, NumPy
  • Scikit-learn / XGBoost
  • Matplotlib / Plotly

🔄 Pipeline

Data Collection → Data Cleaning → Feature Engineering → ML Prediction → Portfolio Optimization → Backtesting


📊 Features

  • Mean-Variance Portfolio Optimization
  • Risk-adjusted return maximization (Sharpe Ratio)
  • Portfolio constraints (weight limits)
  • Rolling window backtesting
  • Benchmark comparison
  • Visualization of performance

📈 Benchmark Comparison

The model is evaluated against:

  • Equal Weight Portfolio
  • Market Index (e.g., NIFTY 50)

Metrics Used:

  • Sharpe Ratio
  • CAGR (Compound Annual Growth Rate)
  • Volatility
  • Maximum Drawdown

📷 Results

Efficient Frontier

Efficient Frontier

Portfolio Performance vs Benchmark

Performance


🧠 Key Learnings

  • Financial data is highly noisy and non-stationary
  • Overfitting is a major risk in return prediction
  • Backtesting is critical to validate strategies
  • Risk management is as important as return maximization

🔮 Future Improvements

  • Add Black-Litterman Model
  • Include transaction costs and slippage
  • Deploy using Streamlit dashboard
  • Integrate live market data APIs
  • Add Reinforcement Learning for dynamic allocation

▶️ How to Run

git clone https://github.com/Shradd7/Portfolio-Optimisation.git
cd Portfolio-Optimisation
pip install -r requirements.txt
python main.py

About

This project focuses on building a portfolio optimization system using quantitative finance techniques.It implements Mean-Variance Optimization (Markowitz framework) to construct portfolios that maximize risk-adjusted returns.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors