A lightweight and modular Python toolkit for portfolio optimization, backtesting, and data visualization. Built with Streamlit for a simple and interactive user interface.
- 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
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
-
Clone the repository:
git clone https://github.com/diegotistical/portfolio-optimization-toolkit.git cd portfolio-optimization-toolkit -
Install required packages:
pip install -r requirements.txt Run the Streamlit app: streamlit run app/streamlit_app.py
Python 3.10+
Streamlit for the web app
pandas, NumPy for data manipulation
matplotlib, seaborn for visualization
scipy.optimize for portfolio optimization
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
This project is licensed under the MIT License.
Diego Urdaneta — @Diegotistical