Not just for sharing moments with friends, family, and internet strangers, social media sites have begun to even influence financial markets. Meme stocks--stocks that have increased in value not due to performance, but social media hype--heavily favor early adopters who enter and exit at the right time.
What it does
MemeMoney tracks the number of mentions of stock ticker symbol on two popular social media sites-- Reddit and Twitter for the past three days from the current date, excluding weekends. It then creates a table displaying:
- the previous day's close price
- the number of mentions on Reddit
- the number of mentions on Twitter in English, excluding retweets
- the price differential from the previous day, and
- the mention differential from the previous day
How we built it
We used python as the programming language and the Tkinter module to build the GUI. Data on social media mentions and stock prices were extracted using the Pushshift API (for Reddit mentions), Twitter API (for Twitter mentions), and Alpha Vantage API (for stock prices). To collaborate and integrate our code, we used git and github as the tool and platform.
Challenges we ran into
- Due to free API limitations, MemeMoney is unable to track realtime stock data and social media mentions. In addition, there is a limited number of API call requests during a period of time, so we may have to wait some time in between API calls after the limit has been reached. For popular stocks that have a large amount of mentions, the program takes a while to generate results and may sometimes time out during the process. For example, the Twitter API times out after 300 requests.
- Collaborating using git and github outside school projects. We had some difficulties with the push, pull, branch, and merge operations on github.
- Conversion from epoch time or datetime to a standardized value across all APIs for inclusion in the results table.
- Integration of the individual portions of the code. Each team member had slightly different approaches to problems and the results returned were not in the same type and format.
- Zoom had a limitation of one hour per session, so we had to constantly create new sessions, which caused some degree of work disruption.
- Using the same programing language to make project cohesive
Accomplishments that we're proud of
- Building a functional GUI in a short amount of time. We were able to create a GUI that accepts an user-entered stock ticker and displays a table.
- Extracting Reddit and Twitter mentions with the free API limitations.
- Good team collaboration. We all helped one another with compilation errors and learned to use github for merging changes in code.
- One team member learned to program in python.
What we learned
- Using APIs. Working with APIs is not as difficult as we imagined, but they often come with severe limitations that have to be worked around to get the results you want.
- Building a functional GUI.
- Collaborating and integrating code using git and github.
What's next for MemeMoney
- Optimize the runtime of the app for popular stocks that have a large amount of mentions.
- Generate more data by going back further than the previous three days, if possible (may still be subject to free API limitations).
- Include sentiment analysis to see if social media mentions are positive or negative about the stock.
- Package into an exe or dmg file.