Inspiration:
Seeing the recent trends in the stock market, it inspired us to create a data visualization project in order to help us better analyze the cause behind the trends and if it is possible to predict such trends before it actually happens.
After seeing the impact that online trading communities can have on the stock market as a whole, specifically regarding the volatility of certain stocks such as GameStop (GME) and AMC Theaters, we were inspired to create a project that can visualize live information about the WallStreetBets trading community as well as the trading behaviours and sentiments of its members in order to help us better analyze the cause behind such trends and determine whether it is possible to predict or detect these kinds of trends early on.
What it does:
In addition to providing live market data including the price of various stocks over time via Yahoo Finance, StonkViz collects data from the trading subreddit r/WallStreetBets and performs sentiment analysis on its members’ posts in order to make predictions about changes to the stock market. This is done by collecting posts and comments from the subreddit via the Reddit API, extracting the content of those posts and running it through an algorithm to detect trends in the positivity or negativity of traders’ posts on the subreddit, which is then tracked over time and displayed on the site alongside usual market data using ApexCharts.js, an open-source charting library.
How we built it:
The website was built using primarily Python for the backend using the Flask web framework as well as with standard HTML/CSS/JavaScript for the frontend. The stock price and sentiment displays were built using the ApexCharts.js library, which dynamically updated the page using a custom API. The data was sourced using the Yahoo Finance and Reddit APIs via a set of Python scripts. Similarly, several Python scripts were created to perform sentiment analysis on the retrieved data.
Challenges we ran into:
The major challenges we faced were collecting relevant information from posts on the subreddit (votes, author, etc.), collecting and processing relevant market information, and applying sentiment analysis to the content of posts. We also had some challenges with adding SVG files into the background of the webpage as well as several other style-related issues. This was due to the fact that the ApexCharts graphs were also SVG files, requiring careful planning on our part in order to get both to work properly in our project.
Accomplishments that we're proud of:
We are proud of the progress that our team made this weekend on such an impactful project. We were able to make a strong base for the future of the sentiment analysis model which, when added to our current perspective of the market, will give additional insight into how user’s sentiments could affect the stock market.
What we learned:
We all learned team-building and how to properly use version control software, both of which are essential skills for aspiring developers. We also learned how to work with natural language processing, web scraping, creating custom scripts for getting data through JSON objects, backend API calls, data visualization, website animations, and web design.
What's next for StonkViz:
We are planning to build a more analytical dashboard that will show all the stock prices and perform data mining to it, which would be useful for predicting the future valuation of stocks.
YouTube Link in comments https://github.com/snguyen3/stonks
Built With
- apexcharts
- api
- css
- flask
- html5
- javascript
- natural-language-processing
- python
- scraping
- sentiment-analysis
- yahoo-finance
Log in or sign up for Devpost to join the conversation.