Inspiration

We wanted to build a web app for users to understand the volatility of prices in the securities that they invest in while monitoring their transactions and portfolio performance. Our goal was to make a product that was specific to a given user, as opposed to a one-size-fits-all solution.

What it does

The web app takes user input data of their current portfolio and it plots a chart displaying their portfolio's performance over time to visualize the volatility in their investments. In another tab on the app, it shows a mosaic plot, or tree map, showing the volatility of a stock's price with a 5-day period relative to it's 30-day moving average as a gauge of present-day volatility for each stock, industry and sector.

How we built it

We wrote the project entirely with Python. We used the Streamlit Python module to run the frontend UI providing the plots, text, and user inputs. We collected data using an open-source python interface for Yahoo Finance for stock data. We used BigQuery to store the data to allow our app to query data faster as well as make the data machine-agnostic. We created a Firestore database to store user inputs, being their stock transaction history. We then pair their transaction history with the historical prices of their stocks to see how volatile their investments have been. We also gauge volatility with a custom calculation that compares stocks short-term average variation with their long-term average variation to discover which stocks are the most stable at a given point in time.

Challenges we ran into

Synchronizing our development environments across our individual machines was a challenge. As was the complex logic that can convert a set of transactional data into a continuous time-series data format, and creating the python objects that most efficiently organize the many different inputs and outputs of our app.

Accomplishments that we're proud of

We overcame inconsistencies within the data. We learned how to run a new Python frontend module. We created a foundational web app in one day. We are proud of the work, focus, and effort to complete our project in such a short timeframe.

What we learned

We learned how to run a new Python frontend module. We learned more about data engineering and its importance in software development. We learned that even the simplest of concepts that are provided to us daily take a lot of time and patience to complete.

What's next for Market Volatility Portfolio

We'll further research our calculations to cross-reference our math along with the data we used to verify that it is usable and useful information to potential users.

Built With

Share this project:

Updates

Submission history