ReadyResearchers / cmpsc-600-fall-2022-and-spring-2023-senior-thesis-connellyw

cmpsc-600-fall-2022-and-spring-2023-senior-thesis-connellyw created by GitHub Classroom
Creative Commons Attribution 4.0 International
0 stars 0 forks source link

Feedback After Your Senior Thesis Presentation #14

Closed gkapfham closed 1 year ago

gkapfham commented 1 year ago

Hello @connellyw, here is the detailed feedback and questions after your thesis defense:

Process Reminders

Here is feedback on your senior thesis chapters. Please bear in mind that you need to resolve all of these issues in advance of submitting the final version of your senior comprehensive project! Here is a reminder of the deadlines for the Spring 2023 semester in CMPSC 610:

You will note that the end of this issue gives you questions that you must respond to within 24 hours. Please excerpt each of these questions in the issue tracker and then provide a detailed, thoughtful written response. If there is an extenuating circumstance that prevents you from responding within 24 hours, please alert me to the challenges that you face as soon as possible.

Detailed Feedback

Here are additional details that you must consider as you complete the final draft of your senior comprehensive project:

Project Questions

Note: Your response to the second and third question must contain a clear statement of the evaluation metrics by which you would measure words like "effective" and "ineffective" and "good" and "bad".

gkapfham commented 1 year ago

Hi @connellyw, you need to make sure that you check off each of the items in the above list, making it clear on what page in your document you have made the improvement that resolves the issue. You also need to answer the questions that are at the bottom of the improvement list. Ultimately, the answers to these questions should influence the final draft of your document. We should plan to meet during office hours to discuss all of these ways in which you need to significantly improve your document in advance of the final deadline.

connellyw commented 1 year ago

@gkapfham

  1. What my tool takes as input is the market history data of Bitcoin and Ethereum. The data includes information from September 2019 to the present day. The main data collected to be worked with later includes the time, market open and close price, the volume of the trades, and the highest and lowest price of the coin during that hour. It then breaks the data down into 60-day segments and randomizes them so that there is less of a chance of the model overfitting the data later when the model is applied to live market data. The model attempts to predict three hours in advance of the current time of the live market. The output of the program is taking the model and applying it to live market data that is collected from the Binance API. The strength of the prediction is directly factored into the amount of the coin that the program buys. If the returned value is greater than 0 it means that the program indicates that the price will go up. If the price is less than 0, it means that the coin is going down and the program will sell. The general key components of my tool are shown in the technical diagram below. For the most part, the tool was created and developed myself. I did however draw inspiration from previous projects that I found online for some parts. For instance, when developing the hyperparameter for the RNN, I drew inspiration from similar stock prediction tools. The hyperparameter that I chose often is used in LSTM stock market prediction models. After changing it to fit my needs for my tool I was successful in implementing my own version of it in my tool. Another idea that I used from someone else is implementing the PCA part of my tool. This tool is often used when analyzing the stock market and I decided to create my own version of this in my tool. I felt that this was important to have in a tool like this because a lot of information is being thrown at the user so an easy way to interpret this data must be created. Another part of the tool that I drew heavily from someone else is creating the buy and sell orders. When creating this section of the tool I had to consult many sources on how to successfully conduct these transactions. While this might seem like a straightforward step, Binance requires certain parameters when creating these orders. I had to consult the Binance documentation for the implementation of these orders to determine what I needed to load the function with for it to actually work. Stackoverflow was also vital in troubleshooting the errors that I was getting from the Binance API Cryptoflow

  2. My tool is very successful at predicting whether the price of the given coin is going to increase or decrease. It was effective about 60% of the time doing this. Something that my tool is not effective in doing is predicting the precise amount that the coin is going to go up or down. In fact, it does a fairly bad job of this. This is important because it is a factor that goes into the strength of the prediction later on when conducting trades in the live market. Something that I suggest doing for future research is identifying target market segments and training the model. Similar market segments to the current day could lead to better results when trying to predict the price. Also, training the model specifically on price and volume maybe could help the data set be less “confusing” to the model and might return more precise results.

  3. A circumstance that the RNN would be best in would be taking a look at a coin that has fewer fluctuations in its price of it. This is why the model does better training on Bitcoin rather than Ethereum where the price jumps around a lot. These changes confuse the model when trying to predict future market data. Inversely, It would be bad a predicting a coin where there is a massive volume of transactions every hour. Something like Dogecoin where the price can change by thousands of dollars within the hour would lead to poor performance from my tool. That is why I decided to focus on the two main coins that are considered to be the most stable in the field (not including stable coins where the price is intended to not change). These coins are also the best indicators of how the crypto market is doing.

gkapfham commented 1 year ago

Hi @connellyw, thanks for these responses. Can you please make sure that this content is integrated into the final version of your thesis. Also, I want to point out that this diagram shows phases but it does not seem to show inputs and outputs of these phases. It is also important to note that the diagram is not "balanced" and is moreover lacking in sufficient technical detail. Can you please revise it further so that it addresses these issues?

gkapfham commented 1 year ago

Also, @connellyw, I have noticed that you did not yet address any of the 15 major revision requirements for your document, at least based on this checklist. Can you please start working on these tasks, checking them off when finished, and then indicating where in your document you made the requested changes! Thanks, I appreciate your proactive attention to detail as you work to finalize your document and ensure that your thesis meets the baseline requirements.

connellyw commented 1 year ago

all suggestions addressed