Fin-dashboard is a web application that provides a dashboard for financial markets. It is built using Streamlit. It leverages the facebook's Prophet ML library to help predict the stock/index prices for next n days/months/years.
To access the web application visit Fin-dashboard.
Fin-dashboard provides a dashboard with the following features:
-
Automatic detection of the user’s country to show predictions for the top five, country-specific stocks
-
Ability for users to select long- or short-term predictions and to specify the number of forecasted days
-
Ability for users to choose other stocks and other stock exchanges
-
For long term predictions, a comparison of the model’s predicted price with the analyst’s target price
-
For short term predictions, a sentiment analysis of the stock news to enable visualization of its impact on stock price
-
Long term predictions for stock exchanges of different countries
To read a more detailed guide on how to use and deploy the application, refer to Edge Analytics with SUSE Rancher: Finance - Market Predictions.
To see the presentation and explanation of the Fin-dashboard project, refer to this video.
Fin-Dashboard is composed of the following Python modules:
-
geo_location.py: Determines the country where the user is located to give country specific information.
-
index_correlation.py: Correlates the stock with its parent index.
-
main.py: Contains all the Streamlit configurations/page setup and uses the other files to create the application.
-
plot_charts.py: Contains the Prophet ML model for predicting stock prices. Contains two python functions - one for long term and other for short term predictions.
-
sentiment.py: Collects stock news from Google News and uses the VADER sentiment analysis tool to determine the stock’s trend.
-
stock_recomendation.py: Extracts the analyst’s price target of a stock from Yahoo Finance.
- Install necessary libraries using
pip install -r requirements.txt
- Run
streamlit run main.py
and access the application onlocalhost:8501
- Pull the image from docker hub
sudo docker pull navin772/fin_dashboard:latest
or build the image yourself from the Dockerfile usingdocker build .
- Start a new container using the image
sudo docker run -p 7000:8501 <image_id>
- Access the streamlit app on
localhost:7000
- Run
kubectl apply -k yaml_files
and kustomize will apply all the yaml files to the cluster currently configured with kubectl. - Access the app on
<NodeIP>:<NodePort>