Inspiration
In recent years, individual investors have faced an overwhelming amount of information when trying to make informed trading decisions. News articles, Reddit discussions, social media sentiment, stock fundamentals, and technical indicators all influence market moves — but analyzing these different signals manually is time-consuming, noisy, and error-prone. We were inspired to create AInvestor because we believe that AI can serve as an intelligent co-pilot for retail investors, combining real-time data collection, sentiment analysis, financial fundamentals, and advanced LLM reasoning into a single, easy-to-use decision engine.
What it does
Our product does the following:
- Aggregate multi-source market data (news, Reddit, Yahoo Finance, technical signals)
- Apply financial sentiment models (FinBERT) to quantify sentiment
- Leverage Gemini’s reasoning capabilities to synthesize all factors
- Generate a professional, explainable Buy/Sell/Hold recommendation Ultimately, we want AInvestor to be a smart and trustworthy assistant that helps everyday investors cut through the noise and make better investment decisions — quickly, reliably, and confidently.
How we built it
These were the components of our project
- Multi-source Data Collection a) Reddit Discussions: Using praw, the system fetches up to 100 posts mentioning the stock ticker across five major financial subreddits (e.g., r/wallstreetbets, r/stocks, etc.), filtering by minimum length (>50 characters) and minimum upvotes (>10). b) NewsAPI: Queries the top 100 relevant news articles about the stock from the past 30 days. c) Yahoo Finance News: Scrapes up to 100 latest news headlines and summaries using yfinance. Extracts previous stock history information such as PE ratio, highs, lows, and open and closing prices. d) Fundamentals: Fetches real-time company data from Yahoo Finance, including: i. P/E Ratio ii. EPS Growth (YoY) iii. Revenue Growth (YoY) iv. Debt-to-Equity Ratio v. Dividend Yield vi. Cash Position vii. Market Cap viii. Industry ix. Return on Equity (ROE) x. Profit Margin xi. Beta (5Y Monthly) xii. Recent Trading Activity: Retrieves 90 days of stock price data (Open, High, Low, Close, Volume) and computes: xiii. Moving Averages (MA5, MA30) xiv. Relative Strength Index (RSI) xv. High/Low Range xvi. Volume Changes
- Sentiment Analysis (NLP) a) Applies a fine-tuned FinBERT model (ProsusAI/finbert) to every news headline, summary, and Reddit post. b) Supports long texts by automatically splitting into 450-character chunks, aggregating the sentiment results to find the majority sentiment (Positive, Neutral, Negative).
- Technical and Fundamental Analysis a) Computes and formats key technical indicators (like RSI, MA5, MA30, recent High/Low ranges). b) Extracts critical fundamental ratios (like P/E, Revenue Growth, Debt-to-Equity, Dividend Yield) from Yahoo Finance API. c) All metrics are summarized cleanly for LLM processing.
- AI Reasoning via Gemini 1.5 Pro a) The system composes a prompt containing: b) Overall media sentiment c) Fundamental health summary d) Recent trading patterns e) It feeds this structured input into Google’s Gemini 1.5 Pro model, prompting it to think like a professional financial analyst f) Gemini outputs: i. Investment Action: “Buy”, “Sell”, or “Hold” ii. Reason: A short but detailed explanation based on the evidence provided.
- Interactive Visualization a) Visualizes the stock data over the last 90 days using Plotly: b) Candlestick Chart (with MA5 overlay) c) Volume Histogram d) RSI Line Chart (with Overbought/Oversold thresholds at 70/30) e) Users can toggle between “Show All” (candlestick + moving averages) and “Candle Only” views to simplify analysis.
- Key Design Choices a) Keep user interaction minimal: user inputs a stock ticker, and the system handles the entire multi-modal data gathering and reasoning pipeline. b) Focus on Explainability: every investment recommendation comes with a natural-language justification based on concrete numbers and signals. c) Lightweight: Designed to run easily with minimal dependencies (Torch, HuggingFace Transformers, YFinance, Plotly).
Challenges we ran into
Deploying the website and ensuring that the deployed UI is consistent with what we could view locally. This involved ensuring that all the packages in our requirements.txt file matched up with the packages we had used
Accomplishments that we're proud of
- Successful financial sentiment analysis using FinBERT
- Successful integration & using Gemini’s capabilities for logical reasoning
- Developing a UI that feels user-friendly and informative
What we learned
- We learned that creating a product involves putting the intended user top of mind in considering what features to add to our product
- A product should be easy to use and should benefit users’ everyday lives.
- We got experience with building all aspects of a product: from scraping the initial data to developing the front-end UI
What's next for AInvestor
Personalized Stock Recommendation:
- Users can create accounts
- Users can watch/keep an eye on several stock tickers
- More personalized recommendations based on existing stocks and past stock investment patterns
- Tailored recommendations based on if they prefer risky stock choices or safer stock choices
Log in or sign up for Devpost to join the conversation.