Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📈 Portfolio Optimization Toolkit

Python License Last Commit Streamlit

A lightweight and modular Python toolkit for portfolio optimization, backtesting, and data visualization. Built with Streamlit for a simple and interactive user interface.


🚀 Features

  • Portfolio Optimization:
    • Maximize Sharpe Ratio
    • Minimize Portfolio Volatility
    • Risk Parity Optimization
  • Backtesting:
    • Simulate and compare portfolio strategies against benchmarks
  • Data Handling:
    • Fetches historical prices using yfinance (Yahoo Finance API)
  • Visualization:
    • Interactive performance plots and risk-return charts
  • Streamlit App:
    • Web-based UI for easy experimentation

📂 Project Structure

  Portfolio Optimization Toolkit/
  ├── app/
  │   └── streamlit_app.py
  ├── portfolio_optimizer/
  │   ├── __init__.py
  │   └── optimizer.py
  ├── src/
  │   ├── backtest.py
  │   ├── data_loader.py
  │   ├── plotter.py
  │   └── utils.py
  ├── requirements.txt
  ├── README.md
  └── LICENSE

🛠️ Installation

  1. Clone the repository:

    git clone https://github.com/diegotistical/portfolio-optimization-toolkit.git
    cd portfolio-optimization-toolkit
  2. Install required packages:

    pip install -r requirements.txt
    Run the Streamlit app:
    streamlit run app/streamlit_app.py
    

📊 Technologies Used

Python 3.10+

Streamlit for the web app

pandas, NumPy for data manipulation

matplotlib, seaborn for visualization

scipy.optimize for portfolio optimization


✨ Future Improvements

Add more robust backtesting framework (transaction costs, slippage)

Integrate live data from APIs (Yahoo Finance, Alpha Vantage)

Add machine learning-based portfolio selection models

Extend to multi-period optimization


📜 License

This project is licensed under the MIT License.


👨‍💻 Authors

Diego Urdaneta — @Diegotistical

About

Portfolio Optimization Toolkit is a Python library for optimizing and backtesting portfolio strategies. It provides tools for asset allocation, risk management, and performance analysis.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages