DEV Community

Cover image for InvestorMate: AI-Powered Stock Analysis in Python — And calling out open-source devs for feedback and contributions
Chandu Siddartha
Chandu Siddartha

Posted on

InvestorMate: AI-Powered Stock Analysis in Python — And calling out open-source devs for feedback and contributions

If you've ever wanted to do serious stock research in Python without stitching together yfinance, pandas-ta, and a bunch of custom scripts, InvestorMate is built for that. It’s an open-source Python package that aims to be a single toolkit for stock analysis: data, fundamentals, technicals, AI insights, screening, and backtesting.

Here’s what it is, what it does well, and how you can contribute.


What is InvestorMate?

InvestorMate is a Python package for stock research and analysis. The idea is simple: one package, one import, and you can go from raw data to AI-powered insights without juggling multiple libraries.

What you get today:

  • AI-powered analysis — Ask natural language questions about any stock using OpenAI, Claude, or Gemini
  • Stock data — Prices, financials, news, and SEC filings via yfinance
  • 60+ technical indicators — SMA, EMA, RSI, MACD, Bollinger Bands, and more
  • 40+ financial ratios — ROIC, WACC, DuPont ROE, TTM metrics, etc.
  • Stock screening — Value, growth, dividend, and custom screens
  • Portfolio analysis — Allocation, Sharpe ratio, sector mix
  • Backtesting — Strategy framework with examples (e.g., RSI)
  • Correlation & sentiment — Correlation matrices and news sentiment

Quick example:

from investormate import Investor, Stock

# AI-powered analysis
investor = Investor(openai_api_key="sk-...")
result = investor.ask("AAPL", "Is Apple undervalued compared to its peers?")
print(result)

# Stock data and analysis
stock = Stock("AAPL")
print(f"Price: ${stock.price}")
print(f"P/E Ratio: {stock.ratios.pe}")
print(f"RSI: {stock.indicators.rsi()}")
Enter fullscreen mode Exit fullscreen mode

Honest Assessment

What’s solid: Fundamentals, technicals, AI integration, screening, and backtesting are in good shape. The API is straightforward, and you can get useful results quickly.

What’s evolving: Data comes mainly from yfinance (no fallbacks yet), valuation (DCF, comps) isn’t built yet, and some areas (e.g., portfolio risk, SEC Edgar integration) are still on the roadmap. We’re upfront about this in our ROADMAP.md.

Bottom line: It’s useful today for research and learning, and we’re actively working to make it more robust and feature-complete.


We Want Contributors

We’re a small team with a big vision: a Python package that can support serious financial research. We can’t get there alone, and we’d love your help.

You don’t need to be an expert. There’s work for different skill levels:

  • New to open source? We have a CONTRIBUTING.md with setup steps, how to find issues, and how to open your first PR.
  • Prefer docs? We need clearer guides, more examples, and better API docs.
  • Want to code? The roadmap lists robustness fixes, validation, tests, and new features.
  • Have ideas? Open a GitHub Discussion — we read them and respond.

How to get started:

  1. Fork the repo and clone it locally
  2. Read CONTRIBUTING.md for setup
  3. Check ROADMAP.md for priorities
  4. Look for issues labeled good first issue, help wanted, or documentation
  5. Comment on an issue to claim it, then open a PR

We review PRs within a few days, give feedback, and merge when things look good. Every contribution helps, whether it’s a bug fix, a doc update, or a new example.


Try It Out

pip install investormate
Enter fullscreen mode Exit fullscreen mode

Then run the examples in the examples/ folder.


Links


InvestorMate is for educational and research purposes only. It is not financial advice. Always verify information and consult a qualified financial advisor before making investment decisions.

Top comments (0)