70

Argus

Our team of 6 developed a stock trading bot that utilized sentiment analysis from Reddit to guide trading decisions. We utilized technologies such as Python, PostgreSQL, PyTorch, Tensorflow, Pandas/Matplotlib, Swift, and AWS to build the project.

Summary

Working as a team of 6, our goal was to create a stock trading bot that traded based on current sentiment for specific tickers. After seeing how Reddit influenced the rise of "meme stocks" like GameStop and AMC, we hoped to capitalize on future stocks by using the current sentiment around specific stocks as indicators.

Learnings

A random interesting thing that I learned was when I was trying write a script to scrape stock tickers on a daily basis. For some reason, the Nasdaq API doesn't provide an endpoint that'll return the data on Nasdaq's stock screener. The way I expected the "Download CSV" button to work was that it would open a new tab with a link to the csv and then use a download flag to close that flag and download it in the browser. I was hoping to just copy the url in the tab it opened and use it in the script.

The fix I found was to open the Network tab in the developer console and then click on the "Download CSV" button. This download request ends up getting traced, and open that url by just right-clicking on the object and opening in a new tab. At that point, all you have to do is use that url and run a ticker parsing script as a daily Cron Job. It's definitely not the most technically impressive thing we did in the project, but it was cool using a random technique that I learned in high school when I participated in random cybersecurity competitions like picoCTF.

Problems

Reddit users vs the world

According to Bloomberg intelligence, retail investors accounted for 22% of total trading volume in 2022. Reddit users only make up for a small percentage of retail investors, so even when sentiment around a ticker is highly negative or positive, that usually isn't reflected in the price of the stock. With there being few cases of stocks being influenced by Reddit to a significant degree, it leaves you with a very small dataset to work with.

"Keeping Customers Informed Through Market Volatility"

During the rise of GameStop ($GMC), Robinhood, among other brokerages, temporarily froze trading around the GMC stock. Even if Argus was to get in on "the next GameStop," the possibility that brokerages could freeze if the investment was too successful would also be needed to taken into account.

Despite the problems we encountered, I learned a lot of things, being that it was my first time working with many of the technologies we ended up using in the project.

Built with

  • Python
  • PostgreSQL
  • PyTorch
  • Tensorflow
  • Pandas / Matplotlib
  • Swift
  • AWS