Skip to content

miladnasiri/FinBert

Repository files navigation

FinBert: Financial Analysis Dashboard 📈

Python FastAPI Streamlit License

A comprehensive financial analysis dashboard combining real-time market data, technical analysis, and NLP-powered sentiment analysis using FinBERT.

Dashboard Preview

🚀 Features

  • 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

🛠️ Installation

  1. Clone the repository:
git clone https://github.com/miladnasiri/FinBert.git
cd FinBert
  1. Create and activate virtual environment:
python -m venv finbert_env
source finbert_env/bin/activate  # On Windows use: finbert_env\Scripts\activate
  1. Install required packages:
pip install -r requirements.txt

🚦 Getting Started

  1. Start the backend server:
uvicorn src.backend.main:app --reload
  1. In a new terminal, start the frontend:
streamlit run src/frontend/app.py
  1. Open your browser and navigate to:

🎯 Usage

  1. Enter a stock symbol (e.g., AAPL, GOOGL)
  2. Select analysis type:
    • Technical Analysis
    • Fundamental Analysis
    • Sentiment Analysis
  3. Choose time period
  4. Explore interactive visualizations and metrics

🏗️ Architecture

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]
Loading

Dashboard Preview

🔧 Technical Stack

  • Backend

    • FastAPI
    • yfinance
    • pandas
    • numpy
    • ta (Technical Analysis)
    • transformers (FinBERT)
  • Frontend

    • Streamlit
    • Plotly
    • pandas
  • ML/NLP

    • FinBERT
    • PyTorch
    • transformers

📈 Sample Analysis

Technical Analysis

Technical Analysis

Fundamental Analysis

Fundamental Analysis

Sentiment Analysis

Sentiment Analysis

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📬 Contact

Milad Nasiri - @miladnasiri

Project Link: https://github.com/miladnasiri/FinBert

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages