INTRODUCTION: CNBC’s Jim Cramer, the host of Mad Money show, presented a list of stocks on April 27 that he believes will work well in this coronavirus-plagued market. The ‘Cramer COVID-19 Index’ contains 100 companies that touch 17 sectors where investors can expect a positive return in this volatile market environment. The project aims to analyze these 100 stocks and develop strategies for trading these stocks, either individually or in groups.

In iteration Take1, we constructed the necessary code segments for downloading and visualizing the index and the stocks. The script leveraged various data sources, both free and paid subscriptions, for pulling the required dataset together.

In this Take2 iteration, we will build on the previous analysis by constructing a dual moving average crossover trading model (20-day and 50-day) and applying the model to the 100 stocks in the index. For each stock, we will identify the entry and exit dates starting around January 1, 2019.

NOTE: This script calculates the index value by using the number of outstanding shares from each company. Such an approach may not match how CNBC calculates this index (https://www.cnbc.com/cramer-covid-19-stocks/). This script is for educational purposes only and does not constitute a recommendation for buying or selling any stock mentioned in this script.

ANALYSIS: Refer to the list of entry and exit points for each stock in the index under Task 3.

CONCLUSION: Refer to the list of entry and exit points for each stock in the index under Task 3.

Dataset ML Model: Time series analysis with numerical attributes

Dataset Used: Yahoo Finance, IEX Cloud, and Quandl

The HTML formatted report can be found here on GitHub.

]]>INTRODUCTION: CNBC’s Jim Cramer, the host of Mad Money show, presented a list of stocks on April 27th that he believes will work well in this coronavirus-plagued market. The ‘Cramer COVID-19 Index’ contains 100 companies that touch 17 sectors where investors can expect a positive return in this volatile market environment. The project aims to analyze these 100 stocks and develop strategies for trading these stocks, either individually or in groups.

In this Take1 iteration, we will construct the necessary code segments for downloading and visualizing the index and the stocks. The script will leverage various data sources, both free and paid subscriptions, for pulling the required dataset together.

NOTE: This script calculates the index value by using the number of outstanding shares from each company. Such an approach may not match how CNBC calculates this index (https://www.cnbc.com/cramer-covid-19-stocks/). This script is for educational purposes only and does not constitute a recommendation for buying or selling any stock mentioned in this script.

ANALYSIS: Not applicable for this iteration.

CONCLUSION: Not applicable for this iteration.

Dataset ML Model: Time series analysis with numerical attributes

Dataset Used: Yahoo Finance, IEX Cloud, and Quandl

The HTML formatted report can be found here on GitHub.

]]>INTRODUCTION: This algorithmic trading model uses the 20-day and 50-day exponential moving averages to generate trading signals. When the fast moving-average curve crosses above the slow moving-average curve, the strategy goes long (buys) on the stock. When the opposite occurs, we will exit the position. We apply the analysis on the GOOG stock for the three years of 2017-01-01 thru 2019-12-31.

In iteration Take1, we constructed and tested a trading strategy using the daily stock data from Yahoo! Finance with an initial investment pool of 1,500 USD.

In iteration Take2, we constructed and tested a trading strategy using the daily stock data from Alpha Vantage with an initial investment pool of 1,500 USD. We also leveraged the technical indicators available from Alpha Vantage.

In iteration Take3, we constructed and tested a trading strategy using the daily stock data from IEX Cloud with an initial investment pool of 1,500 USD. We also leveraged the technical indicators available from IEX Cloud.

In this Take4 iteration, we will construct and test a trading strategy using the daily stock data from Quandl with an initial investment pool of 1,500 USD.

ANALYSIS: In iteration Take1, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In iteration Take2, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In iteration Take3, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In this Take4 iteration, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

CONCLUSION: For this period, the trading strategy did not outperform the more straightforward long-only approach. We should consider more modeling with different methods for this stock. However, we were able to successfully use the data sources from Quandl to perform our modeling.

Dataset ML Model: Time series analysis with numerical attributes

Dataset Used: Quandl

The HTML formatted report can be found here on GitHub.

]]>INTRODUCTION: This algorithmic trading model uses the 20-day and 50-day simple moving averages to generate trading signals. When the fast moving-average curve crosses above the slow moving-average curve, the strategy goes long (buys) on the stock. When the opposite occurs, we will exit the position. We apply the analysis on the GOOG stock for the three years of 2017-01-01 thru 2019-12-31.

In iteration Take1, we constructed and tested a trading strategy using the daily stock data from Yahoo! Finance with an initial investment pool of 1,500 USD.

In iteration Take2, we constructed and tested a trading strategy using the daily stock data from Alpha Vantage with an initial investment pool of 1,500 USD. We also leveraged the technical indicators available from Alpha Vantage.

In iteration Take3, we constructed and tested a trading strategy using the daily stock data from IEX Cloud with an initial investment pool of 1,500 USD. We also leveraged the technical indicators available from IEX Cloud.

In this Take4 iteration, we will construct and test a trading strategy using the daily stock data from Quandl with an initial investment pool of 1,500 USD.

ANALYSIS: In iteration Take1, the trading strategy returned 32.79%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In iteration Take2, the trading strategy returned 32.79%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In iteration Take3, the trading strategy returned 32.79%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In this Take4 iteration, the trading strategy returned 32.79%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

CONCLUSION: For this period, the trading strategy did not outperform the more straightforward long-only approach. We should consider more modeling with different methods for this stock. However, we were able to successfully use the data sources from Quandl to perform our modeling.

Dataset ML Model: Time series analysis with numerical attributes

Dataset Used: Quandl

The HTML formatted report can be found here on GitHub.

]]>SUMMARY: The purpose of this project is to construct a predictive model using various machine learning algorithms and to document the end-to-end steps using a template. The Forest Cover Type dataset is a multi-class classification situation where we are trying to predict one of several (more than two) possible outcomes.

INTRODUCTION: This experiment tries to predict forest cover type from cartographic variables only. This study area includes four wilderness areas located in the Roosevelt National Forest of northern Colorado. These areas represent forests with minimal human-caused disturbances, so that existing forest cover types are more a result of ecological processes rather than forest management practices.

The actual forest cover type for a given observation (30 x 30-meter cell) was determined from the US Forest Service (USFS) Region 2 Resource Information System (RIS) data. Independent variables were derived from data initially obtained from the US Geological Survey (USGS) and USFS data. Data is in raw form (not scaled) and contains binary (0 or 1) columns of data for qualitative independent variables (wilderness areas and soil types).

In iteration Take1, we established the baseline accuracy for comparison with future rounds of modeling.

In iteration Take2, we examined the feature selection technique of attribute importance ranking by using the Gradient Boosting algorithm. By selecting the essential attributes, we decreased the modeling time and still maintained a similar level of accuracy when compared to the baseline model.

In iteration Take3, we examined the feature selection technique of recursive feature elimination (RFE) with the use of the Extra Trees algorithm. By selecting no more than 40 attributes, we maintained a similar level of accuracy when compared to the baseline model.

In iteration Take4, we constructed and tuned an XGBoost machine learning model for this dataset. We also observed the best accuracy result that we could obtain using the XGBoost model with the training dataset from Kaggle. Furthermore, we applied the XGBoost model to Kaggle’s test dataset and submitted a list of predictions to Kaggle for evaluation.

In iteration Take5, we constructed several Multilayer Perceptron (MLP) models with one hidden layer. These simple MLP models will serve as the baseline models as we build more complex MLP models in future iterations. Furthermore, we applied the MLP model to Kaggle’s test dataset and submitted a list of predictions to Kaggle for evaluation.

In iteration Take6, we constructed several Multilayer Perceptron (MLP) models with two hidden layers. These MLP models will serve as a benchmark as we build more complex MLP models in future iterations. Furthermore, we applied the MLP model to Kaggle’s test dataset and submitted a list of predictions to Kaggle for evaluation.

In this Take7 iteration, we will construct several Multilayer Perceptron (MLP) models with three hidden layers. These MLP models will serve as a benchmark as we build more complex MLP models in future iterations. Furthermore, we will apply the MLP model to Kaggle’s test dataset and submit a list of predictions to Kaggle for evaluation.

ANALYSIS: Note: Performance measurements for iterations Take1, Take2, and Take3 are available from the Take4 blog posts.

In iteration Take4, the XGBoost algorithm achieved a baseline accuracy performance of 75.29%. After a series of tuning trials, XGBoost turned in an accuracy result of 85.58%. When we applied the tuned XGBoost algorithm to the test dataset, we obtained an accuracy score of only 87.72%, which was even better than the predictions from the training data.

However, when we applied the tuned XGBoost algorithm to the test dataset from Kaggle, we obtained an accuracy score of only 75.45%. Keep in mind that Kaggle uses only 2.6% of the original dataset to predict the remaining 97.5% of test data.

In iteration Take5, all single-layer models achieved an accuracy performance of between 70.6% and 77.8% after 75 epochs using the test dataset. The 36-node model appears to have the highest accuracy with low variance. However, when we applied the single-layer 36-node neural network model to the test dataset from Kaggle, we obtained an accuracy score of only 60.96%.

In iteration Take6, all dual-layer models achieved an accuracy performance of between 75.5% and 80.4% after 75 epochs using the test dataset. The 36/28-node model appears to have the highest accuracy with low variance. However, when we applied the dual-layer 36/28-node neural network model to the test dataset from Kaggle, we obtained an accuracy score of only 65.872%.

In this Take7 iteration, all three-layer models achieved an accuracy performance of between 78.1% and 80.1% after 75 epochs using the test dataset. The 36/28/24-node model appears to have the highest accuracy with low variance.

However, when we applied the three-layer 36/28/8-node neural network model to the test dataset from Kaggle, we obtained an accuracy score of only 65.744%. We captured additional performance measurements using different model configurations.

- Three-Layer 36/28/08-Node MLP Model – Accuracy: 65.744%
- Three-Layer 36/28/12-Node MLP Model – Accuracy: 63.707%
- Three-Layer 36/28/16-Node MLP Model – Accuracy: 65.485%
- Three-Layer 36/28/20-Node MLP Model – Accuracy: 63.663%
- Three-Layer 36/28/24-Node MLP Model – Accuracy: 63.455%

CONCLUSION: For this iteration, the baseline model with a three-layer of 36/28/8 nodes appeared to have yielded the best result. For this dataset, we should consider experimenting with more and different MLP models.

Dataset Used: Forest Cover Type Data Set

Dataset ML Model: Multi-Class classification with numerical attributes

Dataset Reference: https://archive.ics.uci.edu/ml/datasets/Covertype

One source of potential performance benchmarks: https://www.kaggle.com/c/forest-cover-type-prediction/overview

The HTML formatted report can be found here on GitHub.

]]>SUMMARY: The purpose of this project is to construct a predictive model using various machine learning algorithms and to document the end-to-end steps using a template. The Forest Cover Type dataset is a multi-class classification situation where we are trying to predict one of several (more than two) possible outcomes.

INTRODUCTION: This experiment tries to predict forest cover type from cartographic variables only. This study area includes four wilderness areas located in the Roosevelt National Forest of northern Colorado. These areas represent forests with minimal human-caused disturbances, so that existing forest cover types are more a result of ecological processes rather than forest management practices.

The actual forest cover type for a given observation (30 x 30-meter cell) was determined from the US Forest Service (USFS) Region 2 Resource Information System (RIS) data. Independent variables were derived from data initially obtained from the US Geological Survey (USGS) and USFS data. Data is in raw form (not scaled) and contains binary (0 or 1) columns of data for qualitative independent variables (wilderness areas and soil types).

In iteration Take1, we established the baseline accuracy for comparison with future rounds of modeling.

In iteration Take2, we examined the feature selection technique of attribute importance ranking by using the Gradient Boosting algorithm. By selecting the essential attributes, we decreased the modeling time and still maintained a similar level of accuracy when compared to the baseline model.

In iteration Take3, we examined the feature selection technique of recursive feature elimination (RFE) with the use of the Extra Trees algorithm. By selecting no more than 40 attributes, we maintained a similar level of accuracy when compared to the baseline model.

In iteration Take4, we constructed and tuned an XGBoost machine learning model for this dataset. We also observed the best accuracy result that we could obtain using the XGBoost model with the training dataset from Kaggle. Furthermore, we applied the XGBoost model to Kaggle’s test dataset and submitted a list of predictions to Kaggle for evaluation.

In iteration Take5, we constructed several Multilayer Perceptron (MLP) models with one hidden layer. These simple MLP models will serve as the baseline models as we build more complex MLP models in future iterations. Furthermore, we applied the MLP model to Kaggle’s test dataset and submitted a list of predictions to Kaggle for evaluation.

In this Take6 iteration, we will construct several Multilayer Perceptron (MLP) models with two hidden layers. These MLP models will serve as a benchmark as we build more complex MLP models in future iterations. Furthermore, we will apply the MLP model to Kaggle’s test dataset and submit a list of predictions to Kaggle for evaluation.

ANALYSIS: Note: Performance measurements for iterations Take1, Take2, and Take3 are available from the Take4 blog posts.

In iteration Take4, the XGBoost algorithm achieved a baseline accuracy performance of 75.29%. After a series of tuning trials, XGBoost turned in an accuracy result of 85.58%. When we applied the tuned XGBoost algorithm to the test dataset, we obtained an accuracy score of only 87.72%, which was even better than the predictions from the training data.

However, when we applied the tuned XGBoost algorithm to the test dataset from Kaggle, we obtained an accuracy score of only 75.45%. Keep in mind that Kaggle uses only 2.6% of the original dataset to predict the remaining 97.5% of test data.

In iteration Take5, all single-layer models achieved an accuracy performance of between 70.6% and 77.8% after 75 epochs using the test dataset. The 36-node model appears to have the highest accuracy with low variance. However, when we applied the single-layer 36-node neural network model to the test dataset from Kaggle, we obtained an accuracy score of only 60.96%.

In this Take6 iteration, all dual-layer models achieved an accuracy performance of between 75.5% and 80.4% after 75 epochs using the test dataset. The 36/28-node model appears to have the highest accuracy with low variance.

However, when we applied the dual-layer 36/28-node neural network model to the test dataset from Kaggle, we obtained an accuracy score of only 65.872%. We captured additional performance measurements using different model configurations.

- Dual-Layer 36/08-Node MLP Model – Accuracy: 62.255%
- Dual-Layer 36/12-Node MLP Model – Accuracy: 62.410%
- Dual-Layer 36/16-Node MLP Model – Accuracy: 60.732%
- Dual-Layer 36/20-Node MLP Model – Accuracy: 63.096%
- Dual-Layer 36/24-Node MLP Model – Accuracy: 61.015%
- Dual-Layer 36/28-Node MLP Model – Accuracy: 65.872%
- Dual-Layer 36/32-Node MLP Model – Accuracy: 62.934%

CONCLUSION: For this iteration, the baseline model with a dual-layer of 36/28 nodes appeared to have yielded the best result. For this dataset, we should consider experimenting with more and different MLP models.

Dataset Used: Forest Cover Type Data Set

Dataset ML Model: Multi-Class classification with numerical attributes

Dataset Reference: https://archive.ics.uci.edu/ml/datasets/Covertype

One source of potential performance benchmarks: https://www.kaggle.com/c/forest-cover-type-prediction/overview

The HTML formatted report can be found here on GitHub.

]]>SUMMARY: The purpose of this project is to construct a predictive model using various machine learning algorithms and to document the end-to-end steps using a template. The Forest Cover Type dataset is a multi-class classification situation where we are trying to predict one of several (more than two) possible outcomes.

INTRODUCTION: This experiment tries to predict forest cover type from cartographic variables only. This study area includes four wilderness areas located in the Roosevelt National Forest of northern Colorado. These areas represent forests with minimal human-caused disturbances, so that existing forest cover types are more a result of ecological processes rather than forest management practices.

The actual forest cover type for a given observation (30 x 30-meter cell) was determined from the US Forest Service (USFS) Region 2 Resource Information System (RIS) data. Independent variables were derived from data initially obtained from the US Geological Survey (USGS) and USFS data. Data is in raw form (not scaled) and contains binary (0 or 1) columns of data for qualitative independent variables (wilderness areas and soil types).

In iteration Take1, we established the baseline accuracy for comparison with future rounds of modeling.

In iteration Take2, we examined the feature selection technique of attribute importance ranking by using the Gradient Boosting algorithm. By selecting the essential attributes, we decreased the modeling time and still maintained a similar level of accuracy when compared to the baseline model.

In iteration Take3, we examined the feature selection technique of recursive feature elimination (RFE) with the use of the Extra Trees algorithm. By selecting no more than 40 attributes, we maintained a similar level of accuracy when compared to the baseline model.

In iteration Take4, we constructed and tuned an XGBoost machine learning model for this dataset. We also observed the best accuracy result that we could obtain using the XGBoost model with the training dataset from Kaggle. Furthermore, we applied the XGBoost model to Kaggle’s test dataset and submitted a list of predictions to Kaggle for evaluation.

In this Take5 iteration, we will construct several Multilayer Perceptron (MLP) models with one, two, and three hidden layers. These simple MLP models will serve as the baseline models as we build more complex MLP models in future iterations. Furthermore, we will apply the MLP model to Kaggle’s test dataset and submit a list of predictions to Kaggle for evaluation.

ANALYSIS: Note: Performance measurements for iterations Take1, Take2, and Take3 are available from the Take4 blog posts.

In iteration Take4, the XGBoost algorithm achieved a baseline accuracy performance of 75.29%. After a series of tuning trials, XGBoost turned in an accuracy result of 85.58%. When we apply the tuned XGBoost algorithm to the test dataset, we obtained an accuracy score of only 87.72%, which was even better than the predictions from the training data.

However, when we apply the tuned XGBoost algorithm to the test dataset from Kaggle, we obtained an accuracy score of only 75.45%. Keep in mind that Kaggle uses only 2.6% of the original dataset to predict the remaining 97.5% of test data.

In this Take5 iteration, all single-layer models achieved an accuracy performance of between 70.6% and 77.8% after 75 epochs using the test dataset. The 36-node model appears to have the highest accuracy with low variance.

However, when we apply the single-layer neural network model to the test dataset from Kaggle, we obtained an accuracy score of only 60.96%. We captured additional performance measurements using different model configurations.

- Single-Layer 08-Node MLP Model – Accuracy: 56.552%
- Single-Layer 12-Node MLP Model – Accuracy: 57.647%
- Single-Layer 16-Node MLP Model – Accuracy: 58.475%
- Single-Layer 20-Node MLP Model – Accuracy: 58.415%
- Single-Layer 24-Node MLP Model – Accuracy: 58.985%
- Single-Layer 28-Node MLP Model – Accuracy: 59.913%
- Single-Layer 32-Node MLP Model – Accuracy: 59.282%
- Single-Layer 36-Node MLP Model – Accuracy: 60.967%
- Single-Layer 40-Node MLP Model – Accuracy: 60.825%

CONCLUSION: For this iteration, the baseline model with a single layer of 36 nodes appeared to have yielded the best result. For this dataset, we should consider experimenting with more and different MLP models.

Dataset Used: Forest Cover Type Data Set

Dataset ML Model: Multi-Class classification with numerical attributes

Dataset Reference: https://archive.ics.uci.edu/ml/datasets/Covertype

One source of potential performance benchmarks: https://www.kaggle.com/c/forest-cover-type-prediction/overview

The HTML formatted report can be found here on GitHub.

]]>In this Take4 iteration, we will construct and tune an XGBoost machine learning model for this dataset. We will observe the best accuracy result that we can obtain using the XGBoost model with the training dataset from Kaggle. Furthermore, we will apply the XGBoost model to Kaggle’s test dataset and submit a list of predictions to Kaggle for evaluation.

ANALYSIS: From iteration Take1, the baseline performance of the machine learning algorithms achieved an average accuracy of 78.04%. Two algorithms (Bagged Decision Trees and Extra Trees) achieved the top accuracy metrics after the first round of modeling. After a series of tuning trials, Extra Trees turned in the top overall result and achieved an accuracy metric of 85.80%. By using the optimized parameters, the Extra Trees algorithm processed the testing dataset with an accuracy of 86.50%, which was even better than the predictions from the training data.

From iteration Take2, the performance of the machine learning algorithms achieved an average accuracy of 77.84%. Extra Trees produced an accuracy metric of 85.80% with the training dataset. The model processed the testing dataset with an accuracy of 86.19%, which was slightly better than the predictions from training. At the importance level of 99%, the attribute importance technique eliminated 23 of 54 total attributes. The remaining 31 attributes produced a model that achieved a comparable accuracy compared to the baseline model. The modeling time went from 2 minutes 2 seconds down to 1 minute 41 seconds, a reduction of 17.2%.

From iteration Take3, the performance of the machine learning algorithms achieved an average accuracy of 77.99%. Extra Trees produced an accuracy metric of 85.97% with the training dataset. The model processed the testing dataset with an accuracy of 86.64%, which was slightly better than the predictions from training. The RFE technique eliminated 16 of 54 total attributes. The remaining 38 attributes produced a model that achieved a comparable accuracy compared to the baseline model. The modeling time went from 2 minutes 2 seconds down to 1 minute 58 seconds, a reduction of 3.2%.

In this Take4 iteration, the XGBoost algorithm achieved a baseline accuracy performance of 75.29%. After a series of tuning trials, XGBoost turned in an accuracy result of 85.58%. When we apply the tuned XGBoost algorithm to the test dataset, we obtained an accuracy score of only 87.72%, which was even better than the predictions from the training data.

However, when we apply the tuned XGBoost algorithm to the test dataset from Kaggle, we obtained an accuracy score of only 75.45%. Keep in mind that Kaggle uses only 2.6% of the original dataset to predict the remaining 97.5% of test data.

CONCLUSION: For this iteration of the project, the XGBoost algorithm achieved the best accuracy result when compared to other machine learning algorithms using the training and testing datasets. For this dataset, XGBoost should be considered for further modeling.

Dataset Used: Forest Cover Type Data Set

Dataset ML Model: Multi-Class classification with numerical attributes

Dataset Reference: https://archive.ics.uci.edu/ml/datasets/Covertype

The HTML formatted report can be found here on GitHub.

]]>INTRODUCTION: This algorithmic trading model uses the 20-day and 50-day exponential moving averages to generate trading signals. When the fast moving-average curve crosses above the slow moving-average curve, the strategy goes long (buys) on the stock. When the opposite occurs, we will exit the position. We apply the analysis on the GOOG stock for the three years of 2017-01-01 thru 2019-12-31.

In iteration Take1, we constructed and tested a trading strategy using the daily stock data from Yahoo! Finance with an initial investment pool of 1,500 USD.

In iteration Take2, we constructed and tested a trading strategy using the daily stock data from Alpha Vantage with an initial investment pool of 1,500 USD. We also leveraged the technical indicators available from Alpha Vantage.

In this Take3 iteration, we will construct and test a trading strategy using the daily stock data from IEX Cloud with an initial investment pool of 1,500 USD. We also will leverage the technical indicators available from IEX Cloud.

ANALYSIS: In iteration Take1, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In iteration Take2, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In this Take3 iteration, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

CONCLUSION: For this period, the trading strategy did not outperform the more straightforward long-only approach. We should consider more modeling with different methods for this stock. However, we were able to successfully use the data sources from IEX Cloud to perform our modeling.

Dataset ML Model: Time series analysis with numerical attributes

Dataset Used: IEX Cloud

The HTML formatted report can be found here on GitHub.

]]>INTRODUCTION: This algorithmic trading model uses the 20-day and 50-day exponential moving averages to generate trading signals. When the fast moving-average curve crosses above the slow moving-average curve, the strategy goes long (buys) on the stock. When the opposite occurs, we will exit the position. We apply the analysis on the GOOG stock for the three years of 2017-01-01 thru 2019-12-31.

In this Take2 iteration, we will construct and test a trading strategy using the daily stock data from Alpha Vantage with an initial investment pool of 1,500 USD. We also will leverage the technical indicators available from Alpha Vantage.

ANALYSIS: In iteration Take1, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

In this Take2 iteration, the trading strategy returned 27.94%. In the meantime, the long-only approach achieved an accumulated return of 37.21%.

CONCLUSION: For this period, the trading strategy did not outperform the more straightforward long-only approach. We should consider more modeling with different methods for this stock. However, we were able to successfully use the data sources from Alpha Vantage to perform our modeling.

Dataset ML Model: Time series analysis with numerical attributes

Dataset Used: Alpha Vantage

The HTML formatted report can be found here on GitHub.

]]>