Stock Analysis

This is an interactive dashboard where users can pick a stock ticker, the date range and indicators.
See it in action!
Have a look at the code on my Github: Github

Programming language: Python
Libraries: numpy, pandas, matplotlib, searborn, yfinance, plotly, streamlit

Brief Overview:


  • Create an interactive dashboard
  • User can choose stock, time frames and indicators


  • Use of Streamlit to create the app
  • Numpy and Pandas to calculate the indicators

Results(as of 03/26/2021)

  • Dashboard is fully interactive
  • Users can choose from the following indicators: Volume, RSI, MACD, MFI, Bollinger Band.


  • Implementation of the indicators without using financial python packages
  • Make Interaction possible (free choice of indicators)

What did I learn?

  • Dealing with Streamlit (turns data scripts into shareable web apps).
  • Get to know different indicators related to the stock price


  • Implementing more indicators (stochastic oscillator, CCI momentum...).
  • Using other visualization libraries
  • Add notification when basic trading strategies are present
  • Add recent news from the company


The stock dashboard was my first standalone project, which I implemented with Python. There are many tutorials on the internet which show how to create such dashboards, but most of them are just static and don't let the user choose which indicators they want to have displayed. The interactivity was also the biggest challenge for me at that time.

Implementation of the App

A central part was the Python library Streamlit, which is used to create web apps relatively straightforward. In this project I came across Streamlit for the first time and without it I would not have been able to implement it this way.

Particularly interesting in the project was the work with financial specific indicators, of which I have heard before, but never knew exactly what they mean, or measure. Currently Volume, SMA, EMA, RSI, MACD, MFI and Bollinger Band are implemented. It was also a goal not to use a Python library for these indicators, but to write the implementation myself (with the help of some online articles it was quite feasible).

Besides the calculation I also spend time on the visualization. I used the standard visualizations libraries Matplotlib and Seaborn, in the future I want to design the visualization with Plotly to offer even more interactivity.