This project implements a factor-based portfolio optimization and strategy evaluation framework using mean–variance optimization and the Fama–French three-factor model. The system constructs and evaluates long-only and long-short ETF portfolios through a rolling backtesting framework and analyzes strategy performance using risk-adjusted metrics.
Applied quantitative finance project focused on portfolio analytics, optimization, and strategy backtesting using factor models.
- Construct optimized portfolios using mean–variance optimization
- Estimate expected returns using factor-based models
- Implement long-only and long-short portfolio strategies
- Evaluate portfolio performance through rolling backtesting
- Compare strategies using risk-adjusted performance metrics
Portfolio weights are estimated using a mean–variance optimization framework:
max ( wᵀ μ − λ wᵀ Σ w )
Where:
- μ = expected returns
- Σ = covariance matrix
- λ = risk-aversion parameter
Optimization is implemented using Python and CVXPY.
Expected returns are estimated using the Fama–French Three-Factor Model:
Ri − Rf = α + βm(Mkt−Rf) + βsSMB + βvHML + ε
This model captures exposure to:
- Market risk
- Size factor (SMB)
- Value factor (HML)
Two portfolio strategies are evaluated.
- Portfolio weights constrained to positive values
- Diversified exposure across ETFs
- Allows short selling
- Enables hedging during volatile market conditions
Performance is evaluated using a rolling backtesting framework with periodic rebalancing to assess portfolio behavior across different market conditions.
Portfolio performance is evaluated using:
- Sharpe Ratio
- Volatility
- Maximum Drawdown
- Skewness
- Kurtosis
- Value at Risk (VaR)
- Conditional Value at Risk (CVaR)
- Long–short portfolios achieved higher risk-adjusted returns compared to long-only strategies.
- Portfolio performance depends strongly on the risk and return estimates used in the optimization process.
- Allowing short positions improves diversification and enables better hedging during volatile market conditions.
factor-based-portfolio-optimization/
│
├── notebook/
│ └── code_factor_portfolio.pdf
│
├── report/
│ └── report_factor_portfolio.pdf
│
└── README.md
Contains the implementation notebook describing:
- data preprocessing
- factor model estimation
- portfolio optimization
- backtesting framework
- strategy evaluation
Contains the full research report detailing:
- methodology
- empirical analysis
- results
- conclusions
- Python
- Pandas
- NumPy
- CVXPY
- Matplotlib
This project demonstrates techniques commonly used in:
- Quantitative portfolio construction
- Systematic asset allocation
- Portfolio analytics and performance evaluation
- Factor-based investment strategies
Mrinal Gupta
MS Financial Engineering
Stevens Institute of Technology