Inspiration

The problem with modern brokerage accounts is they fail to explain to the user why their portfolio behaves the way it does. Often times, concepts like risk aren't communicated clearly and as a result user's can't take advantage of a stock's volatility and maximize their returns for the lowest possible risk.

Stock Up aims to remedy this by analyzing a user's portfolio of holdings and suggesting allocations based on the user's goal.

What it does

First, Stock Up accepts a file containing the user's portfolio consisting of each holding the user possesses and their percentage allocation of the total portfolio.

Then Stock Up's analysis feature computes relevant quantities related to understanding the user's portfolio such as:

  • the expected value/return of each holding (weighted average)
  • volatility (weighted standard deviation)
  • the Sharpe ratio (compares the return of an investment with its risk).

Finally, Stock Up's optimization feature suggests optimizations to the user by using a cost/objective function. Based on the user's goal, a variety of potential portfolio allocations are suggested such as:

  • minimum volatility
  • maximum Sharpe ratio (allowing the user to maximum profits for the least risk)
  • maximum Sharpe ratio for a specific volatility of the user's choosing

Stock Up's optimization feature performs a Monte Carlo run to find the most optimized portfolios when given an initial portfolio.

All the data produced is printed is a user-friendly manner and visualized in graphs for better understanding.

How we built it

The core functionality of the application was built in Python while the user interface was built in Flask.

Challenges we ran into

Populating the data in a user-interface with Flask was challenging because we haven't had any previous experience with Flask.

What's next for Stock Up

Future iterations include a user-friendly database for users to log in to and track progress of their optimizations.

Built With

Share this project:

Updates