Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Financial Market Analytics Dashboard

An interactive Python/Dash dashboard for exploratory analysis of stocks and cryptocurrencies — volatility, correlation, moving averages, and risk-adjusted return metrics, powered by live market data.

Python Dash

Features

  • Price & Moving Averages — price charts with 20/50/200-day moving averages for any selected asset
  • Volatility Analysis — 30-day rolling annualized volatility, overall volatility ranking across assets, and visual inspection of volatility clustering
  • Correlation Analysis — static correlation heatmap across all selected assets, plus a rolling 90-day correlation view between any two assets, showing how relationships shift over time (e.g. crypto vs. equities during market stress)
  • Risk & Return Stats — annualized return, annualized volatility, Sharpe ratio, skew, and excess kurtosis per asset, plus drawdown charts and return distribution histograms

Screenshots

Price & Moving Averages

Correlation Analysis

Tech Stack

  • Dash + Plotly — interactive web app and charting
  • pandas / NumPy — data manipulation and statistics
  • yfinance — free historical market data from Yahoo Finance
  • SciPy — skew/kurtosis calculations

Getting Started

Prerequisites

  • Python 3.8+

Installation

git clone https://github.com/<your-username>/financial-eda-dashboard.git
cd financial-eda-dashboard

python3 -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate

pip install -r requirements.txt

Run

python app.py

Then open http://127.0.0.1:8050 in your browser.

Usage

  1. Select one or more tickers (stocks like AAPL, or crypto like BTC-USD)
  2. Choose a date range and return type (log or simple returns)
  3. Click Load / Refresh Data
  4. Explore the four tabs: Price & Moving Averages, Volatility, Correlation, and Return Stats

Methodology Notes

  • Log returns are used by default since they're additive over time and better approximate normality, which most risk statistics assume
  • Volatility is annualized using the standard σ_daily × √252 convention (252 trading days/year)
  • Sharpe ratio is computed without a risk-free rate offset (i.e. mean return / volatility), so it should be read as a relative risk-adjusted return measure rather than an absolute one
  • Correlation is computed on returns, not raw prices, to avoid spurious correlation from shared upward price trends

Project Structure

.
├── app.py              # Main Dash application
├── requirements.txt     # Python dependencies
└── README.md

License

MIT — feel free to use or adapt this project.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages