A comprehensive, modern stock market dashboard built with Streamlit featuring real-time data visualization, technical analysis, and an elegant dark theme interface.
- Live stock price tracking from Yahoo Finance
- Support for global markets (US, European, Asian, Emerging markets)
- Currency-aware price formatting
- Historical data analysis with multiple time periods
- Moving Averages: SMA 20, SMA 50, EMA 20
- RSI (Relative Strength Index): 14-period momentum oscillator
- MACD: Moving Average Convergence Divergence with histogram
- Bollinger Bands: Volatility indicator with upper/lower bands
- Volume Analysis: Trading volume with color-coded bars
- Dark Theme: Elegant glassmorphism design
- Responsive Layout: Optimized for desktop and mobile
- Interactive Charts: Plotly-powered visualizations
- Clean Interface: Hidden Streamlit branding for professional look
- Smooth Animations: CSS transitions and hover effects
- Main Price Chart: Candlestick or line chart with technical indicators
- Volume Chart: Color-coded volume bars
- Technical Indicators: Separate RSI and MACD charts
- Quick Metrics: Current price, daily high/low, volume
- Analysis Summary: Automated trend analysis and signals
- Watchlist: Quick access to popular stocks by category
- Python 3.8 or higher
- pip package manager
-
Clone the repository
git clone https://github.com/dafahentra/stocks-dashboard.git cd stock-dashboard -
Install dependencies
pip install -r requirements.txt
-
Run the application
streamlit run stocks_dashboard.py
-
Open in browser
- The app will automatically open at
http://localhost:8501 - If not, navigate to the URL shown in terminal
- The app will automatically open at
streamlit
plotly
pandas
yfinance
ta
curl_cffi
- Enter Stock Ticker: Input any valid stock symbol (e.g., AAPL, GOOGL, GOTO.JK)
- Select Time Period: Choose from 1 day to 5 years
- Choose Chart Type: Candlestick or Line chart
- Add Indicators: Select technical indicators to overlay
- Analyze: View comprehensive analysis in multiple tabs
- US Stocks: AAPL, GOOGL, MSFT, AMZN
- European: BMW.DE, ASML.AS, NESN.SW
- Asian: TSM, 7203.T, BABA
- Emerging Markets: GOTO.JK, BBCA.JK, VALE
- SMA/EMA: Trend following indicators
- RSI: Momentum oscillator (30 oversold, 70 overbought)
- MACD: Trend and momentum indicator
- Bollinger Bands: Volatility and mean reversion
stock-dashboard/
β
βββ stocks_dashboard.py # Main application file
βββ components.py # Chart and data components
βββ styles.py # Theme and styling configuration
βββ requirements.txt # Python dependencies
βββ README.md # Project documentation
βββ LICENSE # MIT License
The app uses a comprehensive dark theme defined in styles.py. You can customize:
- Color palette
- Chart themes
- UI components
- Animation effects
To add new technical indicators:
- Import the indicator from
talibrary incomponents.py - Add calculation in
add_indicators()function - Create visualization function
- Add to indicator selection in main app
- Efficient data caching with Streamlit's
@st.cache_data - Automatic currency detection and formatting
- Robust error handling for API failures
- Support for different market intervals
- Gap-free Charts: Removes non-trading periods for cleaner visualization
- Interactive Tooltips: Detailed hover information
- Responsive Design: Adapts to different screen sizes
- Professional Styling: TradingView-inspired appearance
- Automated Signals: Bullish/bearish trend detection
- Volume Analysis: Above/below average volume detection
- Moving Average Crossovers: Buy/sell signal generation
- RSI Levels: Overbought/oversold conditions
-
Data Not Loading
- Check internet connection
- Verify ticker symbol is correct
- Try different time periods
-
Charts Not Displaying
- Ensure all dependencies are installed
- Check browser compatibility
- Clear browser cache
-
Performance Issues
- Reduce time period for faster loading
- Limit number of indicators
- Check system resources
- "Unable to fetch data": Invalid ticker or API issue
- "Error fetching": Network connectivity problem
- "No data available": Stock may be delisted or market closed
Contributions are welcome! Here's how to contribute:
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
# Clone your fork
git clone https://github.com/yourusername/stock-dashboard.git
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Run in development mode
streamlit run stocks_dashboard.py --server.runOnSave trueThis project is licensed under the MIT License - see the LICENSE file for details.
Dafa Hentra
- GitHub: @dafaHentra
- Email: dapahentra@gmail.com
- Yahoo Finance for providing free stock data API
- Streamlit for the amazing web app framework
- Plotly for interactive chart capabilities
- TA-Lib for technical analysis calculations
- TradingView for chart design inspiration
β Star this repo if you found it helpful!
π’ Share with fellow traders and developers!
π Found a bug? Please create an issue!

