CS1470 Final Project Outline

Title: Predicting future crypto prices using an LSTM model

Who: Adam Bredvik : abredvik, Max Dekle: mdekle, Damon Burdell: dburdell

Introduction: What problem are you trying to solve and why? If you are implementing an existing paper, describe the paper’s objectives and why you chose this paper. In the paper (https://www.researchgate.net/publication/321503983_Stock_price_prediction_using_LSTM_RNN_and_CNN-sliding_window_model), they used an LSTM model to predict future stock prices. We would like to adapt their paper to help predict future crypto prices.

What kind of problem is this? Classification? Regression? Structured prediction? Reinforcement Learning? Unsupervised Learning? Etc. We believe this is a classification problem, as the paper predicts whether future prices will trend upwards or downwards.

Related Work: Are you aware of any, or is there any prior work that you drew on to do your project? Please read and briefly summarize (no more than one paragraph) at least one paper/article/blog relevant to your topic beyond the paper you are re-implementing/novel idea you are researching. This problem has also been tackled with a convolutional neural net approach. In another paper (https://www.hindawi.com/journals/complexity/2020/6622927/), they use CNNs in conjunction with an LSTM to help predict future stock prices. We find the LSTM model to be the most promising, however, so we would like to focus our efforts on recreating and optimizing it over a CNN.

In this section, also include URLs to any public implementations you find of the paper you’re trying to implement. Please keep this as a “living list”--if you stumble across a new implementation later down the line, add it to this list. Unfortunately, we were unable to find any public implementations of the LSTM paper we’re trying to implement.

Data: What data are you using (if any)? If you’re using a standard dataset (e.g. MNIST), you can just mention that briefly. Otherwise, say something more about where your data come from (especially if there’s anything interesting about how you will gather it). Source: https://www.CryptoDataDownload.com Standard CSV format

How big is it? Will you need to do significant preprocessing? Preprocessing poses a challenge due to the nature of the data, as some of the data should not be normalized as a percent change, but rather a percentage of a given historical high. The BTCUSDT csv file contains roughly 1,300,000 rows of data.

Methodology: What is the architecture of your model? How are you training the model? We are using a 100-minute window, with 90 minutes of previous data to help predict 10 minutes of data in the future.

If you are implementing an existing paper, detail what you think will be the hardest part about implementing the model here. In the paper we are recreating, they don’t specify the specifics of their LSTM model architecture, just how they preprocessed the data and the results. So the challenge will be creating and finding the best LSTM architecture we can, with the optimal number of layers and the best hyperparameters.

Metrics: What constitutes “success?” What experiments do you plan to run? Once we have our base model, our experimentation would consist of tweaking the number of layers in our model, as well as hyperparameters and optimization schemes, in order to give the best results we can.

For most of our assignments, we have looked at the accuracy of the model. Does the notion of “accuracy” apply for your project, or is some other metric more appropriate? Yes, since this is a binary classification problem, we believe that accuracy would be a good metric to evaluate the success of our model. And in terms of a loss metric, we see binary cross-entropy as a potentially good measure to include as well in order to optimize model performance.

If you are implementing an existing project, detail what the authors of that paper were hoping to find and how they quantified the results of their model. The paper was hoping to examine how well different deep learning models perform on analyzing stock market data. However, they found that LSTMs were not as optimal as they thought they could be, due to them heavily relying on previous data to predict future prices, but stock market prices are highly dynamic and not as reliant on past data as most LSTMs predict they are. They used an error percentage, as well as plotted the predicted prices to the actual prices of future stocks.

What are your base, target, and stretch goals? Base: >50% accuracy Target: >55% accuracy Stretch: >60% accuracy

Ethics: Choose 2 of the following bullet points to discuss; not all questions will be relevant to all projects so try to pick questions where there’s interesting engagement with your project. (Remember that there’s not necessarily an ethical/unethical binary; rather, we want to encourage you to think critically about your problem setup.)

Why is Deep Learning a good approach to this problem? Predicting the cryptocurrency market is a very complex task, and thus Deep Learning gives us a comparably complex function that could potentially successfully predict the market. That being said, our model is likely not large enough to encompass the entire complexity of the market’s behavior.

Who are the major “stakeholders” in this problem, and what are the consequences of mistakes made by your algorithm? Anyone who utilizes this model as a way of inferring price fluctuations stands to gain or lose money by doing so. Producing a low accuracy model carries the possibility that any user of this algorithm may use the information gained from it at their own risk. A stakeholder would be anyone who attempts to use such a model for practical purposes, and anyone who does so should be warned that no model is 100% accurate.

Division of labor: Briefly outline who will be responsible for which part(s) of the project. Damon: Pre-processing, model implementation Adam: Model architecture, testing Max: Model creation, additional preprocessing as needed, optimization

--

For this checkin, we also require you to write up a reflection including the following:

Introduction: This can be copied from the proposal. In the paper (link here), they used an LSTM model to predict future stock prices. We would like to adapt their paper to help predict future crypto prices. We believe this is a classification problem, as the paper predicts whether future prices will trend upwards or downwards.

Challenges: What has been the hardest part of the project you’ve encountered so far? Improving the accuracy of the model beyond a certain threshold; after 1 epoch, the model seems to get stuck at a certain loss value We are also in the process of figuring out a good accuracy function for us to use. At the moment we are utilizing a simple up-or-down prediction with sigmoid, but we would like to explore also predicting the percentage change in price, and therefore a continuous distribution for the predictions, and an accuracy threshold for the results.

Insights: Are there any concrete results you can show at this point? Yes, we have a basic LSTM model that predicts whether the price 10 minutes in the future will go up or down. At the moment we have a 1-epoch accuracy of around 70%.

How is your model performing compared with expectations? The model exceeds expectations, achieving a higher accuracy than initially anticipated.

Plan: Are you on track with your project? What do you need to dedicate more time to? Testing different model configurations Evaluating actual performance if we were to implement this in the real world Play around with different ways to evaluate accuracy (using percent change instead of just up or down)

What are you thinking of changing, if anything? Modifying the model architecture to achieve better results

Built With

Share this project:

Updates

posted an update

For this checkin, we also require you to write up a reflection including the following: Introduction: This can be copied from the proposal.

In the paper (link here), they used an LSTM model to predict future stock prices. We would like to adapt their paper to help predict future crypto prices. We believe this is a classification problem, as the paper predicts whether future prices will trend upwards or downwards.

Challenges: What has been the hardest part of the project you’ve encountered so far? Improving the accuracy of the model beyond a certain threshold; after 1 epoch, the model seems to get stuck at a certain loss value We are also in the process of figuring out a good accuracy function for us to use. At the moment we are utilizing a simple up-or-down prediction with sigmoid, but we would like to explore also predicting the percentage change in price, and therefore a continuous distribution for the predictions, and an accuracy threshold for the results.

Insights: Are there any concrete results you can show at this point? Yes, we have a basic LSTM model that predicts whether the price 10 minutes in the future will go up or down. At the moment we have a 1-epoch accuracy of around 70%.

How is your model performing compared with expectations? The model exceeds expectations, achieving a higher accuracy than initially anticipated.

Plan: Are you on track with your project? What do you need to dedicate more time to? Testing different model configurations Evaluating actual performance if we were to implement this in the real world Play around with different ways to evaluate accuracy (using percent change instead of just up or down)

What are you thinking of changing, if anything? Modifying the model architecture to achieve better results

Log in or sign up for Devpost to join the conversation.