Early this year, we decided to try out stock trading for a bit to see how it worked. Our experience wasn't great - we were overwhelmed by a lot of different trading apps, plethora of unhelpful online guides, and overall no clear consensus on how to actually trade efficiently. Given our interest in FinTech, we decided to create a solution that could help both beginners and advanced traders with their daily stock trading.

What it does

InvestIQ is a online webapp that utilizes sentiment analysis to predict what stocks are the best to buy/sell/hold at any given time. It has a web-scraper that analyzes thousands of Reddit, Twitter, Youtube, and other social media comments/responses to see what companies people are talking about. This data is gathered into a model to output "popularity" numbers for company stocks and then reported through the webapp to users. It also displays additional data/graphs about each stock, and it even involves an LLM model to summarize the status of a stock each day. Users can create accounts for the tool and track what investments they are making.

How we built it

The project was split into 2 distinct parts, the backend and the frontend. The backend was written in Python and utilized Flair, NLP, Pandas, OpenAI, Yahoo Finance, Polygon, Google Cloud, and Cartesi Rollup. The frontend was written in Javascript and utilized React and Tailwind. We worked on both ends in parallel, syncing up at regular midpoints to integrate the two ends together.

Challenges we ran into

One major challenge we ran into was our sentiment analysis algorithm. After we had all of our data, we had to fine-tune a model that could accurately predict the popularity of a stock given social media data. We researched the area thoroughly and eventually created an algorithm that had a 90% accuracy rate. Another challenge was making sure the system could run efficiently. Through Google Cloud and Cartesi, we managed to alleviate the high backend load and increase system responsiveness.

Accomplishments that we're proud of

One major accomplishment was finishing the social media scraper. It was a very involved tool that had to scrape across several large social media sites and return the data in a serializable format. Another accomplishment was alleviating our backend load through distributed computing using Cartesi. Finally, our final integration between the backend and frontend to form a finished product was our biggest accomplishment.

What we learned

We learned a lot about the FinTech area as well as picking up new parts of the tech stack. We learned how stocks/trading works and how to use them in daily life. On the technical side, we learned about scraping, sentiment analysis, decentralized systems, and cloud computing.

What's next for InvestIQ

We want to keep expanding the platform in a variety of ways. One, we want to add more user features on the site. People can create profiles and track their investments/losses, as well as interests. Two, we want to incorporate social media into the site itself. This could come in the form of a social feed that users can use to communicate with each other. Finally, we want to further expand the sentiment analysis model to be more accurate and predict future trends in stock prices as well.

Built With

Share this project: