AI-powered stock analysis package combining data, technical indicators, and multi-provider AI analysis
Project description
InvestorMate 🤖📈
AI-Powered Stock Analysis in Python — Correlation analysis, sentiment analysis, backtesting & custom strategies (v0.2.0)
InvestorMate is the only Python package you need for comprehensive stock analysis - from data fetching to AI-powered insights, portfolio diversification, news sentiment, strategy backtesting, and custom screening.
"Ask any question about any stock and get instant AI-powered insights"
✨ Features
- AI-Powered Analysis - Ask natural language questions about any stock using OpenAI, Claude, or Gemini
- Comprehensive Stock Data - Real-time prices, financials, news, and SEC filings via yfinance
- 60+ Technical Indicators - SMA, EMA, RSI, MACD, Bollinger Bands, and more via pandas-ta
- Advanced Financial Ratios - 40+ ratios including ROIC, WACC, Equity Multiplier, and TTM metrics
- Earnings Call Transcripts - Access earnings dates and transcript infrastructure (expandable)
- Stock Screening - Find value stocks, growth stocks, or create custom screens
- Portfolio Analysis - Track performance, risk metrics, and allocation
- Market Summaries - Real-time data for US, Asian, European, crypto, and commodity markets
- Pretty Formatting - Beautiful CLI output for financial statements and ratios
🚀 Quick Start
pip install investormate
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"ROIC: {stock.ratios.roic}") # Advanced ratios
print(f"TTM EPS: {stock.ratios.ttm_eps}") # Trailing metrics
print(f"RSI: {stock.indicators.rsi()}")
📦 Installation
# Basic installation
pip install investormate
# With development dependencies
pip install investormate[dev]
🔑 API Keys
InvestorMate supports multiple AI providers:
- OpenAI: Get your API key at https://platform.openai.com/api-keys
- Anthropic Claude: Get your API key at https://console.anthropic.com/
- Google Gemini: Get your API key at https://ai.google.dev/
You only need one API key to use the AI features.
📚 Documentation
- Quickstart Guide - Get started in 5 minutes
- API Reference - Complete API documentation
- AI Providers Guide - OpenAI, Claude, and Gemini setup
- Examples - Working code examples
🗺️ Roadmap & Contributing
- ROADMAP.md — Our vision to build a Bloomberg Terminal–grade package. See planned features, phases, and priorities.
- CONTRIBUTING.md — Want to contribute? Start here for development setup, your first PR, and guidelines.
New to open source? Check CONTRIBUTING.md for step-by-step guidance on making your first contribution.
🎯 Why InvestorMate?
| Feature | InvestorMate | Other Solutions |
|---|---|---|
| Simplicity | One package, simple API | Need 5+ packages |
| AI-Powered | Built-in AI analysis | Manual analysis only |
| Provider Choice | OpenAI, Claude, Gemini | Locked to one provider |
| Setup Time | 2 lines of code | Hours of configuration |
| Data Format | JSON-ready | Raw pandas DataFrames |
| Target Users | Everyone | Enterprise only |
💡 Examples
Stock Analysis
from investormate import Stock
from investormate.utils import print_ratios_table
stock = Stock("TSLA")
# Basic info
print(stock.price)
print(stock.market_cap)
print(stock.sector)
# Financial statements
income_stmt = stock.income_statement
balance_sheet = stock.balance_sheet
cash_flow = stock.cash_flow
# Advanced ratios and TTM metrics
print(f"ROIC: {stock.ratios.roic}")
print(f"WACC: {stock.ratios.wacc}")
print(f"TTM Revenue: {stock.ratios.ttm_revenue}")
print(f"TTM EPS: {stock.ratios.ttm_eps}")
# Pretty print all ratios
print_ratios_table(stock.ratios.all())
# DuPont ROE Analysis
dupont = stock.ratios.dupont_roe
print(dupont)
# Earnings transcripts (infrastructure ready)
transcripts_list = stock.earnings_transcripts.get_transcripts_list()
# Historical data
df = stock.history(period="1y", interval="1d")
AI-Powered Insights
from investormate import Investor
investor = Investor(openai_api_key="sk-...")
# Ask questions
result = investor.ask("NVDA", "What are the key revenue drivers?")
# Compare stocks
comparison = investor.compare(
["AAPL", "GOOGL", "MSFT"],
"Which has the best growth prospects?"
)
# Analyze documents
result = investor.analyze_document(
ticker="TSLA",
url="https://example.com/earnings-report.pdf",
question="Summarize Q4 earnings highlights"
)
Technical Analysis
from investormate import Stock
stock = Stock("AAPL")
df = stock.history(period="6mo")
# Add indicators
df = stock.add_indicators(df, [
"sma_20", "sma_50", "rsi_14", "macd", "bbands"
])
# Or use individual methods
sma_20 = stock.indicators.sma(20)
rsi = stock.indicators.rsi(14)
macd = stock.indicators.macd()
Stock Screening
from investormate import Screener
screener = Screener()
# Pre-built screens
value_stocks = screener.value_stocks(pe_max=15, pb_max=1.5)
growth_stocks = screener.growth_stocks(revenue_growth_min=20)
dividend_stocks = screener.dividend_stocks(yield_min=3.0)
# Custom screening
results = screener.filter(
market_cap_min=1_000_000_000,
pe_ratio=(10, 25),
roe_min=15,
sector="Technology"
)
Portfolio Analysis
from investormate import Portfolio
portfolio = Portfolio({
"AAPL": 10,
"GOOGL": 5,
"MSFT": 15,
"TSLA": 8
})
print(f"Total Value: ${portfolio.value:,.2f}")
print(f"Sharpe Ratio: {portfolio.sharpe_ratio:.2f}")
print(f"Allocation: {portfolio.allocation}")
🤝 Contributing
Contributions are welcome! See CONTRIBUTING.md for:
- Development setup and first-time contributor guide
- How to find work (roadmap, good first issues)
- Code style, testing, and PR process
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
⚠️ Disclaimer
InvestorMate is for educational and research purposes only. It is not financial advice. AI-generated insights may contain errors or hallucinations. Always verify information and consult with a qualified financial advisor before making investment decisions.
🌟 Support
If you find InvestorMate useful, please give it a star on GitHub!
Made with ❤️ by the InvestorMate community
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file investormate-0.2.1.tar.gz.
File metadata
- Download URL: investormate-0.2.1.tar.gz
- Upload date:
- Size: 87.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6570bb5f78834f77ee68787161fcc3116663c6db62e9ac818f22298a82718b47
|
|
| MD5 |
bdcdcc583db14da142e7a63f61fb93ae
|
|
| BLAKE2b-256 |
bd0bb526a4d49aba8ec8de3f43c8ef340fa041e81407935b037945d2ceb5fd2b
|
File details
Details for the file investormate-0.2.1-py3-none-any.whl.
File metadata
- Download URL: investormate-0.2.1-py3-none-any.whl
- Upload date:
- Size: 65.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8195f8dfcd5ba4ea42c89a2178d93946e387cf0987fc06cf26256fe8211da47f
|
|
| MD5 |
c6dd966d69f00389ba2d739d55a934a1
|
|
| BLAKE2b-256 |
4677a4245a488bb08a30362909bbcc21d0eef372acdbf803a407c5aeba42f053
|