This repository contains the implementation of a machine learning-driven system for dow-30 portfolio optimization. The project aims to dynamically adjust portfolio allocations to maximize returns and minimize risks based on predictive analytics.
The goal of this project is to develop a robust system that can forecast future dow-30 price movements and optimize portfolio allocations accordingly. It leverages historical price data from Yahoo Finance, focusing on the dow-30 by market capitalization.
- Data Collection: Scripts to fetch historical data for the top 30 Dow-Jones stocks from Yahoo Finance.
- Predictive Modeling: Implementation of various machine learning models including ARIMA, LSTM, and XGBoost to predict future price movements with an emphasis on minimizing RMSE.
- Optimization Algorithm: Dynamic allocation strategy using techniques like the Kelly Criterion and Mean-Variance Optimization, tailored for cryptocurrency portfolios.
- Risk Management: Incorporates risk management measures such as setting maximum exposure limits and stop-loss strategies.
- Backtesting Framework: Evaluation of the portfolio's performance over time against historical data, considering transaction costs and market slippage.
- Real-Time Data Pipeline and Monitoring System: Infrastructure to ingest real-time data and monitor portfolio performance, enabling timely adjustments.
-
Feature Selection:
- Identify and select relevant features that could improve the accuracy and performance of the predictive models.
-
Predictive Modeling (ML Step):
- Machine Learning Models: Experiment with various machine learning models to predict future returns or price movements. Models can range from traditional ones like ARIMA and LSTM (Long Short-Term Memory networks) to more complex deep learning models.
- Evaluation: Use appropriate metrics (e.g., RMSE for regression tasks, accuracy for classification, etc.) to evaluate model performance. Also, consider the specific nature of financial returns and risk (e.g., Sharpe Ratio, Maximum Drawdown) in your evaluation.
-
Optimization Algorithm:
- Dynamic Allocation: Implement an optimization algorithm that can adjust allocations dynamically based on the predictive models' outputs. Techniques such as the Kelly Criterion, Mean-Variance Optimization, or even more sophisticated machine learning-driven methods could be applied.
- Risk Management: Incorporate measures to manage risk, such as setting maximum exposure limits to specific assets, incorporating stop-loss strategies, or using derivatives for hedging.
-
Backtesting:
- Simulation: Backtest your optimized portfolio against historical data to evaluate its performance over time, considering transaction costs, slippage, and other real-world factors.
- Adjustment: Refine your models and strategies based on backtesting results. This iterative process is crucial to enhancing the robustness of your optimization system.
-
Deployment and Monitoring:
- Real-Time Data Pipeline: Develop a system for real-time data ingestion and prediction to ensure your portfolio can respond swiftly to market changes.
- Monitoring System: Implement a monitoring system to track the performance of your portfolio and the accuracy of your predictive models, allowing for timely adjustments.
- Clone this repository:
git clone https://github.com/EthanFalcao/WPI-IA-Portfolio-Optimization-and-Risk-Analysis.git
- Install "requirements.txt":
pip install requirements.txt