A comprehensive financial analysis dashboard combining real-time market data, technical analysis, and NLP-powered sentiment analysis using FinBERT.
-
Real-time Market Data Analysis
- Live stock price tracking
- Historical data visualization
- Volume analysis
-
Advanced Technical Analysis
- Moving Averages (20, 50 day)
- RSI (Relative Strength Index)
- MACD (Moving Average Convergence Divergence)
- Bollinger Bands
-
Fundamental Analysis
- Company overview
- Key financial metrics
- Performance indicators
- Risk metrics
-
NLP Sentiment Analysis
- FinBERT-powered sentiment analysis
- Company description analysis
- Sentiment visualization
-
Interactive Visualization
- Candlestick charts
- Technical indicators
- Sentiment graphs
- Performance metrics
- Clone the repository:
git clone https://github.com/miladnasiri/FinBert.git
cd FinBert
- Create and activate virtual environment:
python -m venv finbert_env
source finbert_env/bin/activate # On Windows use: finbert_env\Scripts\activate
- Install required packages:
pip install -r requirements.txt
- Start the backend server:
uvicorn src.backend.main:app --reload
- In a new terminal, start the frontend:
streamlit run src/frontend/app.py
- Open your browser and navigate to:
- Frontend: http://localhost:8501
- API docs: http://localhost:8000/docs
- Enter a stock symbol (e.g., AAPL, GOOGL)
- Select analysis type:
- Technical Analysis
- Fundamental Analysis
- Sentiment Analysis
- Choose time period
- Explore interactive visualizations and metrics
graph LR
A[Yahoo Finance API] --> B[FastAPI Backend]
B --> C[Data Processing]
C --> D[FinBERT Analysis]
D --> E[Streamlit Frontend]
E --> F[Interactive Dashboard]
-
Backend
- FastAPI
- yfinance
- pandas
- numpy
- ta (Technical Analysis)
- transformers (FinBERT)
-
Frontend
- Streamlit
- Plotly
- pandas
-
ML/NLP
- FinBERT
- PyTorch
- transformers
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- FinBERT for NLP model
- yfinance for market data
- Streamlit for the interactive dashboard
- FastAPI for the backend framework
Milad Nasiri - @miladnasiri
Project Link: https://github.com/miladnasiri/FinBert