Investing in stocks is a cornerstone of financial growth, yet a staggering 58 percent of individuals under 30 refrain from engaging in the stock market. The primary barrier? The overwhelming teem of technical terminology and data associated with stock analysis. To address this, our team designed a cutting-edge product that seamlessly parses complex financial metrics and presents them in an accessible interface. Our goal is to empower users to comprehend the intricacies of stock evaluation without being overwhelmed by the jargon.
Users can effortlessly create a diverse portfolio tailored to their preferences, leveraging advanced filtering options based on sectors, risk levels, and return expectations. Through an intuitive swipe-based interface, users can curate their portfolio by indicating their interest in specific stocks. As users engage with the platform, our algorithm dynamically refines its recommendations, aligning with the user's evolving preferences until an optimal portfolio is achieved.
Our platform prioritizes a teaching focus through a personalized chatbot at the user’s disposal at any time. In addition to explaining technical investing vocabulary, the chatbot can offer clear explanations for subtle parameters or trends such as a comparison between the price per earnings (PE) ratio for that stock and the average PE for that sector.
Additionally, we integrated sentiment analysis to offer users deeper insights into specific stocks. By analyzing the most recent financial news articles related to a company, our model assigns a sentiment score ranging from 0 to 100, where lower scores indicate a negative sentiment and higher scores indicate a positive sentiment. By quantifying sentiment in this manner, users can quickly gauge market sentiment and potentially align their personal investment strategies with prevailing opinions in the financial news landscape.
In line with our theme to enhance user accessibility, we incorporated sentiment analysis for each stock based on the most recent financial news articles for that stock. This is assessed as a score between positive and negative and displayed alongside a stock. For example, if Apple’s recent news indicated positive sentiment for the company, then the user would see a high positive value of sentiment next to it.
Initially, we opted for a Kaggle database and a pre-trained model from Hugging Face. After training the model on our dataset, an unexpected hurdle emerged—Hugging Face’s entire website was down. With no data stored locally, we could not utilize the model anymore.
Despite this setback, we persisted and devised an alternative solution. We crafted our own model, employing a Vectorizer for tokenization, sklearn for upsampling and an SGDClassifier for predictions, that achieved a final accuracy of 81%.
Additionally, we encountered the issue of load balancing the heavy inflow of data per stock. While our aim was to provide users with comprehensive information, the extensive data retrieval from various endpoints posed a bottleneck. With over 15 requests per stock, the loading time stretched to approximately ~5 seconds. To mitigate this, we cached ticker data in MongoDB and pulled the data down as a dataframe when the backend web-server is initialized. This allowed us to cut down our stock load times to ~1 second, ensuring a seamless UI experience.
Tracks Applied (4)
Major League Hacking
Major League Hacking
Discussion