Finance Forecasting and Portfolio Optimization

A quantitative finance system combining time series forecasting with portfolio optimization to support data-driven investment decisions and risk management.

PythonPandasNumPyScikit-learnPyPortfolioOptMatplotlibStatsmodels

Overview

A quantitative finance system combining time series forecasting with portfolio optimization to support data-driven investment decisions and risk management.

Problem

Individual investors and small funds lack access to sophisticated quantitative tools for portfolio construction and return forecasting. The goal is to build an accessible system that combines ML-based return forecasting with modern portfolio theory for optimal asset allocation.

Dataset

Historical price data for a diversified set of assets including equities, ETFs, and commodities. Features engineered from technical indicators (RSI, MACD, Bollinger Bands), fundamental ratios, and macroeconomic variables.

Architecture

LSTM-based return forecasting model for individual assets. Mean-Variance Optimization (MVO) and Black-Litterman model for portfolio construction, incorporating forecasted returns as views. Risk parity allocation as an alternative strategy.

Training

LSTM trained on rolling 60-day windows with walk-forward validation to prevent look-ahead bias. Portfolio optimization run monthly with rebalancing. Sharpe ratio and maximum drawdown used as primary evaluation metrics.

Results

LSTM forecasts improved directional accuracy to 58% vs 51% for the random walk baseline. Optimized portfolio achieved Sharpe ratio of 1.34 vs 0.89 for equal-weight benchmark over the test period. Maximum drawdown reduced by 22%.

GitHub Repository

View on GitHub