FinBot 360 is a next-generation financial dashboard that fuses Deep Learning (LSTM), Natural Language Processing (BERT), and Generative AI (LLMs) to provide real-time stock insights, portfolio analytics, and predictive modeling.
Built for investors and data enthusiasts, it transforms raw market data into actionable intelligence.
Utilizes Long Short-Term Memory (LSTM) neural networks built with TensorFlow/Keras.
- Deep Learning: Trains on historical price action to predict future trends.
- Custom Architecture: Features multiple LSTM layers with Dropout regularization to prevent overfitting.
- Visualization: Plots predicted vs. actual prices dynamically.
Powered by Google Gemini 1.5 Flash.
- Contextual Q&A: Ask complex financial questions and receive natural language responses.
- Market Education: Explains concepts like "Sharpe Ratio" or "Quantitative Easing" instantly.
Leverages Hugging Face Transformers (ProsusAI/finbert).
- NLP Engine: specifically fine-tuned on financial text.
- Sentiment Scoring: Instantly classifies news or earnings reports as Positive, Negative, or Neutral with confidence scores.
- Metrics: Calculates Cumulative Returns, Annualized Volatility, and Sharpe Ratio.
- Visuals: Interactive performance charts using Plotly.
- File Support: Drag-and-drop CSV/Excel portfolio uploads.
- Dual-API Integration: Fetches real-time data via Alpha Vantage with a robust fallback to Yahoo Finance (yfinance).
- Auto-Refresh: Sidebar dashboard updates automatically to track market movements.
FinBot 360 is built on a heavy-hitting stack of data science and ML libraries:
| Category | Technology | Usage |
|---|---|---|
| Frontend & UI | Streamlit |
Interactive web application framework |
| Deep Learning | TensorFlow, Keras |
LSTM Neural Networks for time-series forecasting |
| NLP | Transformers (Hugging Face) |
BERT model for sentiment classification |
| Generative AI | Google Generative AI |
LLM integration for the Chatbot |
| Data Processing | Pandas, NumPy, Scikit-Learn |
Data manipulation and MinMaxScaler normalization |
| Market APIs | YFinance, Alpha Vantage |
Real-time and historical stock data fetching |
| Visualization | Plotly |
Interactive financial charting |
FinBot360/
βββ app.py # Main Application Logic
βββ requirements.txt # Dependency Management
βββ .streamlit/
β βββ config.toml # UI Configuration
βββ sample_portfolios/ # Test Data
β βββ standard_portfolio.csv
β βββ volatile_portfolio.csv
β βββ losing_portfolio.csv
βββ README.md # Documentation
git clone https://github.com/yourusername/FinBot360.git
cd FinBot360# Windows
python -m venv venv
.\venv\Scripts\activate
# Mac/Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtFinBot 360 requires API keys to function fully. Create a .streamlit/secrets.toml file in the root directory:
# .streamlit/secrets.toml
GEMINI_API_KEY = "your_google_gemini_key_here"
ALPHA_VANTAGE_API_KEY = "your_alpha_vantage_key_here"streamlit run app.pyThe project includes a sample_portfolios/ directory to test the Portfolio Performance Analysis tool immediately.
- Navigate to the "Portfolio Performance Analysis" section in the sidebar.
- Upload
standard_portfolio.csv. - Result: The app will parse the
DateandClosecolumns to calculate returns and volatility instantly.
Note: Ensure your CSV files follow the format Date,Close.
- RAG Implementation: Connect Gemini to live news feeds for real-time grounded answers.
- Technical Indicators: Add RSI, MACD, and Bollinger Bands to charts.
- Multi-Stock Comparison: Compare multiple tickers on a single graph.
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- 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
Distributed under the MIT License. See LICENSE for more information.