Spaces:
Sleeping
Sleeping
| title: QueryStockAI | |
| emoji: 📈 | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: docker | |
| pinned: false | |
| license: mit | |
| short_description: AI-powered financial analysis and trading assistant | |
| # QueryStockAI | |
| A comprehensive financial analysis tool that provides stock data, news analysis, and AI-powered insights through an interactive Streamlit web interface. Features advanced machine learning-based stock price predictions using Ridge Regression with comprehensive technical indicators and an AI agent which answers user's queries based on stock dayta and news sentiment. | |
| ## Features | |
| - **Stock Data**: Fetch historical stock prices and performance metrics using Yahoo Finance | |
| - **Interactive Stock Charts**: Visualize stock performance with Plotly charts showing 1 year of data | |
| - **Advanced ML Predictions**: Ridge Regression model with 5 years of training data and 30-day forecasts | |
| - **Comprehensive Technical Indicators**: 35+ technical indicators including RSI, MACD, Bollinger Bands, Stochastic, Williams %R, CCI, and more | |
| - **Latest News Analysis**: Get recent news headlines for selected stocks | |
| - **AI-Powered Chat Interface**: Chat with a financial agent powered by mistral via OpenRouter | |
| - **MCP Server Integration**: Modular architecture with separate MCP servers for stock data and news | |
| - **System Resource Monitoring**: Real-time monitoring of CPU, memory, disk, and network usage | |
| - **Stock Search & Discovery**: Search for custom tickers and browse popular stocks | |
| - **Caching & Performance**: Intelligent caching for charts and news to improve performance | |
| - **Feature Scaling**: StandardScaler for optimal model performance | |
| - **Cross-Validation**: GridSearchCV for hyperparameter tuning | |
| ## Machine Learning Model | |
| ### Ridge Regression with Enhanced Features | |
| - **Training Data**: 5 years of historical stock data | |
| - **Display Data**: Last 1 year shown in charts | |
| - **Prediction Period**: 30 trading days | |
| - **Features**: 35+ technical indicators including: | |
| - Moving Averages (SMA 10, 20, 50, 200) | |
| - Momentum Indicators (RSI, MACD, Stochastic, Williams %R, CCI) | |
| - Volatility Indicators (Bollinger Bands, Price Volatility) | |
| - Volume Analysis (Volume Change, Volume-Price Trend) | |
| - Support/Resistance Levels | |
| - Time-Based Features (Day of Week, Month, Quarter) | |
| - Market Sentiment Indicators | |
| ### Model Performance | |
| - **Regularization**: Ridge Regression with L2 regularization | |
| - **Hyperparameter Tuning**: GridSearchCV with cross-validation | |
| - **Feature Scaling**: StandardScaler for optimal performance | |
| - **Accuracy**: Typically 80-95% R² score on historical data | |
| - **Training Time**: ~2-5 seconds per stock | |
| ## Setup | |
| 1. **Install dependencies**: | |
| ```bash | |
| uv sync | |
| ``` | |
| Or using pip: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 2. **Create a `.env` file** with your API keys: | |
| ``` | |
| GROQ_API_KEY="your_groq_api_key_here" | |
| MODEL="moonshotai/kimi-k2-instruct" # or any model of your choice | |
| ``` | |
| 3. **Run the Streamlit app**: | |
| ```bash | |
| streamlit run Home.py | |
| ``` | |
| or using uv: | |
| ```bash | |
| uv run streamlit run Home.py | |
| ``` | |
| ## Usage | |
| 1. Open the web interface in your browser | |
| 2. Select a stock ticker from the dropdown in the sidebar or search for a custom ticker | |
| 3. View the interactive stock price chart showing: | |
| - Last 1 year of historical data | |
| - 30-day Ridge Regression predictions | |
| - Model performance metrics | |
| 4. Start chatting with the financial agent about the selected stock | |
| 5. Ask questions like: | |
| - "How is this stock performing?" | |
| - "What's the latest news about this company?" | |
| - "Should I invest in this stock?" | |
| - "What are the recent trends?" | |
| ## Architecture | |
| - **Frontend**: Streamlit web interface with interactive charts | |
| - **Backend**: Python with OpenRouter integration | |
| - **ML Pipeline**: Ridge Regression with scikit-learn | |
| - **Data Sources**: | |
| - Stock data via `yfinance` | |
| - News data via `gnews` | |
| - **AI Model**: mistral-small-3.2-24b-instruct via OpenRouter | |
| - **MCP Servers**: Modular servers for stock data and news | |
| ## Files | |
| - `Home.py`: Main Streamlit web application with ML predictions | |
| - `Dockerfile`: Docker configuration for Railway deployment | |
| - `docker-compose.yml`: Local development setup | |
| - `railway.toml`: Railway deployment configuration | |
| - `requirements.txt`: Python dependencies | |
| - `pyproject.toml`: Project configuration | |
| ## Dependencies | |
| - **Streamlit**: Web interface framework | |
| - **yfinance**: Stock data fetching | |
| - **gnews**: News data fetching | |
| - **plotly**: Interactive charts | |
| - **scikit-learn**: Machine learning (Ridge Regression, StandardScaler, GridSearchCV) | |
| - **pandas**: Data manipulation | |
| - **numpy**: Numerical computations | |
| - **openai**: AI model integration | |
| - **fastmcp**: MCP server framework | |
| ## Technical Indicators Used | |
| ### Price-Based Features | |
| - Simple Moving Averages (10, 20, 50, 200-day) | |
| - Price Change (1, 5, 20-day) | |
| - Price Volatility and Range | |
| - Support/Resistance Levels | |
| ### Momentum Indicators | |
| - Relative Strength Index (RSI) | |
| - Moving Average Convergence Divergence (MACD) | |
| - Stochastic Oscillator (K% and D%) | |
| - Williams %R | |
| - Commodity Channel Index (CCI) | |
| ### Volatility Indicators | |
| - Bollinger Bands (Standard Deviation, Position, Squeeze) | |
| - Price Volatility | |
| - Price Range | |
| ### Volume Analysis | |
| - Volume Change and Trends | |
| - Volume-Price Relationship | |
| - Volume Moving Averages | |
| - Volume Spikes | |
| ### Market Sentiment | |
| - Moving Average Crossovers | |
| - Price vs Long-term Averages | |
| - Time-based Patterns | |
| ## System Requirements | |
| - Python 3.10 or higher | |
| - OpenRouter API key | |
| - Internet connection for real-time data | |
| ## Disclaimer | |
| Stock predictions have approximately 70% accuracy. These forecasts are for informational purposes only and should not be used as the sole basis for investment decisions. Always conduct your own research and consider consulting with financial advisors. | |