In this project, we demonstrate the use of Sharpe Ratio as a measure of portfolio fitness to evolve a portfolio of stocks using Genetic Algorithm. We also apply LSTM modeling to forecast future stock prices.
Official Full Name | Student ID | Work Items | |
---|---|---|---|
Namrata Thakur | A0261619B | 1. Integration 2. Installation and User Guide writing 3. Video creation 4. Bug Fixing | [email protected] |
Ouyang Hui | A0261875U | 1. LSTM model 2. Project report writing 3. Bug fixing 4. Video creation | [email protected] |
See Jia Fong Grace | A0261797M | 1.GA Algo 2. Project report writing 3. Bug fixing 4. Integration & deployment 5. Video Creation | [email protected] |
Wang Zhipeng | A0261980Y | 1. Frontend Lead 2.Backend 3. Project report writing 4. Bug fixing | [email protected] |
Refer to User Guide at GitHub Folder: User Guide
Ubuntu 20.04
At least 2 GB of hard disk space
For frontend: application requirements to be installed using npm for dependencies listed in package.json
For backend: application requirements to be installed using pip for dependencies listed in requirements.txt
Refer to project report at Github Folder: ProjectReport
Sections for Project Report
- Introduction
- Business Value
- Project Aim
- System Architecture
- Deployment
- System Features
- Stock Data Retrieval
- Portfolio Recommendation of the day (based on Daily GA Run)
- Custom Portfolio Recommendation (based on Custom GA Run)
- Stock Price Forecasting
- Historical Portfolio Recommendations
- Financial News
- GA Algorithm for Portfolio Recommendation
- Knowledge Identification
- Fitness Function Definition
- Data specification
- Hyperparameter specification
- Knowledge specification
- Chromosome
- Fitness Value (Sharpe) Computation
- Computation of Daily Return
- Computation of Annualized Daily Return
- Computation of Annualized Portfolio Variance
- Computation of Risk Free Rate
- Computation of Annual Sharpe Ratio
- Population Selection and Generation
- Crossover
- Mutation
- Termination Criteria
- Single run termination criteria (convergence or max epoch)
- Multi-run termination criteria (Sharpe Ratio 2, recursion depth of 5)
- Knowledge Refinement
- Algorithm Tuning
- Key Performance Indicators
- Run time optimizations
- Limitations and Improvements
- Too Slow!
- Overly-dynamic portfolio recommendations
- Only Linux
- LSTM Model for Stock Price Forecasting
- Knowledge Identification
- Knowledge Specification
- Data preprocessing
- Dataset creation
- Knowledge Refinement
- Limitations and improvements
- Conclusion
- References
Refer to Github Folder: Miscellaneous
Efficient Frontier notebook used to generate the efficient frontier images. Note that the database to run the notebook can be found at Frontend/src/database/stocks.db
This Machine Reasoning (MR) course is part of the Analytics and Intelligent Systems and Graduate Certificate in Intelligent Reasoning Systems (IRS) series offered by NUS-ISS.
Lecturer: GU Zhan (Sam)