Track the Price of Individual Stocks
Fundamental Analysis of a Stock
Calculate Moving Averages of Stock Price
Get Real-time News Articles & Sentiment using Sentiment Analysis
Compare Fundamental Analysis of Different Companies
Visualize Different Fundamental Analysis Metrics
Optimize your portfolio
Suggested Portfolio Allocation Based on Custom Returns
Identify Candlestick Patterns for a Single Stock
Scan Stocks in the Database to Identify Candlestick Patterns
Explanation of what each Candlestick Pattern Means
Results of Stocks Exhibiting the Belt-Hold Candlestick Pattern
CockroachCloud Database Schema
Track: FinTech For Good
Financial education is severely lacking among youths. According to a study by FINRA Investor Education Foundation, there is a clear trend of declining financial literacy with four in five youths failing a financial literacy quiz. This lack of financial knowledge further extends into adulthood, with 53% of adults being financially anxious.
At the same time, women possess significantly lower rates of financial literacy than men. Women are three times as likely as men to say they can’t afford to save for retirement and are three times more likely than men to quit their jobs to care for a family member. Despite this, women are still responsible for the same living expenses men pay. And since they live longer, they face additional costs, including more long-term and overall health care expenses.
All these numbers point towards a need to increase financial literacy. In line with the FinTech Nations Hackathon's FinTech For Good Track to empower users to make their own informed investment decisions, we developed FinWhiz, a data-first fintech tool that helps to cut through the noise and hype (the GameStop saga as a quintessential example) and educate users about finance.
By providing fundamental data about the company as well as real-time news sentiment information and technical analysis, explaining financial jargon and collating together vast amounts of vital information into a clear and intuitive dashboard, we hope to increase the financial literacy of every member in the community.
What it does
FinWhiz consists of five major components:
- An individual stock tracker that supplies real-time stock price data and fundamental analysis of the company (including metrics like the P/E ratio, market capitalization, etc with clear explanations of what the terms mean). To enable users to keep up to date with the latest information, users can also plot interactive charts to visualize candlestick charts, calculate moving averages and retrieve real-time news articles coupled with sentiment analysis to track market sentiment of the company over time.
- A company fundamentals comparison that compares the S&P500 companies across various metrics (such as beta, stock price, etc.) and enables users to sort these companies based on these metrics and plot them on interactive charts to decide which companies they are interested to invest in.
- A personalized portfolio optimizer that suggests stocks to invest in based on the user's individual risk tolerance and target returns. This is calculated by analyzing the stocks' historical data to calculate the average volatility and expected returns.
- A candlestick pattern detector for individual stocks that analyses a company's real-time stock data to detect candlestick patterns that may suggest either a reversal or continuation of a bullish or bearish price trend.
- A candlestick pattern screener that scans real-time stock data of the S&P500 companies and filters them according to the patterns exhibited.
How we built it
We used CockroachCloud, hosted with Google Cloud, to store each company's real-time stock prices, fundamental financial data (including the market capitalization, dividend yield, shares outstanding and more), news articles regarding the company and the associated sentiment (whether it is negative or positive) calculated using the Natural Language Processing library nltk. When a user queries the database, we retrieve the information from CockroachCloud using psycopg2 and SQLAlchemy and display it on the front-end in a visually-appealing and easy-to-understand manner with Streamlit. We use Plotly to plot interactive charts and effectively summarize the data and provide immediate actionable insights to users.
What we learned
This was our first time using CockroachDB (or even writing so much SQL!) We learned:
- the CRUD operations for working with CockroachCloud
- how to interact with CockroachCloud using ORMs and python
- how to scrape websites using beautifulsoup and pandas to obtain the stock ticker symbols, stock prices, stock news articles
- perform sentiment analysis on news articles
- capture the scraped information and store it in the database, and display the information when a user searches for the stock
- plot interactive financial charts using Plotly
- build websites with a nice UI using Streamlit
Apart from technical knowledge, we also learned a lot about finance. From reading articles on Investopedia on Fundamental Analysis and Technical Analysis to understanding what Candlestick Patterns mean and eventually distilling this information into easy-to-understand paragraphs on our website, we walked away much more knowledgeable in finance. Our website contains many explanations on financial terms like "Forward P/E", "Bullish Candlestick Patterns" to simplify the jargon, helping to educate young females about Finance with Data Analytics & Science.
With our data-first approach leveraging real-time data scraped from Yahoo Finance (stock prices, news articles) and analyzing historical prices to suggest stocks to purchase to optimize one's portfolio, we hope this hack will help enable users in leveraging this real-time data effectively to enable efficient and informed decision-making on investments amid the noise and hype constantly surrounding us (the GameStop saga as a quintessential example.)
What's next for FinWhiz
The database is already hosted on the cloud. We plan to deploy and host the front-end so everyone can access the web app.