Skip to content
Back to skills

2143 Openbb Equity 555c17e9

ASecurity

Comprehensive equity analysis using OpenBB - historical prices, fundamentals, technical indicators, insider trading, analyst ratings, and AI-powered insights

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
businesspythongobashapi

Works with

  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2143-openbb-equity_555c17e9 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2143 Openbb Equity 555c17e9?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2143 Openbb Equity 555c17e9
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2143-openbb-equity-555c17e9/badge)](https://www.skillsdirectory.com/skills/tools-only-2143-openbb-equity-555c17e9)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: openbb-equity
description: Comprehensive equity analysis using OpenBB - historical prices, fundamentals, technical indicators, insider trading, analyst ratings, and AI-powered insights
---

# OpenBB Equity Analysis

Perform comprehensive stock analysis using the OpenBB Platform.

## Usage

```bash
/openbb-equity TICKER [--analysis fundamental|technical|all] [--period 1y]
```

## What This Command Does

Retrieves and analyzes equity data for any stock ticker using OpenBB's comprehensive data sources.

## Workflow

### 1. Check OpenBB Installation

First, verify OpenBB is installed:

```python
try:
    from openbb import obb
    print("✅ OpenBB installed")
except ImportError:
    print("⚠️  Installing OpenBB...")
    import subprocess
    subprocess.run(["pip", "install", "openbb"], check=True)
    from openbb import obb
```

### 2. Parse Arguments

```python
# Parse user input
import sys
ticker = sys.argv[1].upper() if len(sys.argv) > 1 else "AAPL"
analysis_type = "all"  # fundamental, technical, or all
period = "1y"  # 1d, 1w, 1m, 3m, 6m, 1y, 5y

# Parse flags
for arg in sys.argv[2:]:
    if arg.startswith("--analysis="):
        analysis_type = arg.split("=")[1]
    elif arg.startswith("--period="):
        period = arg.split("=")[1]
```

### 3. Retrieve Historical Price Data

```python
# Get historical prices
price_data = obb.equity.price.historical(
    symbol=ticker,
    interval="1d",
    period=period
)

df = price_data.to_dataframe()
print(f"\n📈 Historical Prices for {ticker}")
print(f"Period: {period}")
print(f"Latest Close: ${df['close'].iloc[-1]:.2f}")
print(f"52-Week High: ${df['high'].max():.2f}")
print(f"52-Week Low: ${df['low'].min():.2f}")
print(f"YTD Return: {((df['close'].iloc[-1] / df['close'].iloc[0]) - 1) * 100:.2f}%")
```

### 4. Fundamental Analysis (if requested)

```python
if analysis_type in ["fundamental", "all"]:
    print(f"\n📊 Fundamental Analysis for {ticker}")

    # Company profile
    try:
        profile = obb.equity.profile(symbol=ticker)
        print(f"\nCompany: {profile.name}")
        print(f"Sector: {profile.sector}")
        print(f"Industry: {profile.industry}")
        print(f"Market Cap: ${profile.market_cap / 1e9:.2f}B")
    except:
        print("Profile data not available")

    # Financial metrics
    try:
        metrics = obb.equity.fundamental.metrics(symbol=ticker)
        print(f"\nKey Metrics:")
        print(f"P/E Ratio: {metrics.pe_ratio:.2f}")
        print(f"EPS: ${metrics.eps:.2f}")
        print(f"Dividend Yield: {metrics.dividend_yield:.2%}")
        print(f"ROE: {metrics.roe:.2%}")
    except:
        print("Metrics data not available")

    # Analyst ratings
    try:
        ratings = obb.equity.estimates.analyst(symbol=ticker)
        print(f"\nAnalyst Consensus:")
        print(f"Buy: {ratings.buy_count}")
        print(f"Hold: {ratings.hold_count}")
        print(f"Sell: {ratings.sell_count}")
        print(f"Target Price: ${ratings.target_price:.2f}")
    except:
        print("Analyst ratings not available")
```

### 5. Technical Analysis (if requested)

```python
if analysis_type in ["technical", "all"]:
    print(f"\n📉 Technical Analysis for {ticker}")

    # Calculate technical indicators
    import pandas as pd

    # Simple Moving Averages
    df['SMA_20'] = df['close'].rolling(window=20).mean()
    df['SMA_50'] = df['close'].rolling(window=50).mean()
    df['SMA_200'] = df['close'].rolling(window=200).mean()

    current_price = df['close'].iloc[-1]
    sma_20 = df['SMA_20'].iloc[-1]
    sma_50 = df['SMA_50'].iloc[-1]
    sma_200 = df['SMA_200'].iloc[-1]

    print(f"\nMoving Averages:")
    print(f"Current Price: ${current_price:.2f}")
    print(f"SMA 20: ${sma_20:.2f} {'🟢' if current_price > sma_20 else '🔴'}")
    print(f"SMA 50: ${sma_50:.2f} {'🟢' if current_price > sma_50 else '🔴'}")
    print(f"SMA 200: ${sma_200:.2f} {'🟢' if current_price > sma_200 else '🔴'}")

    # RSI calculation
    delta = df['close'].diff()
    gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()
    loss = (-delta.where(delta < 0, 0)).rolling(window=14).mean()
    rs = gain / loss
    df['RSI'] = 100 - (100 / (1 + rs))

    rsi = df['RSI'].iloc[-1]
    print(f"\nRSI (14): {rsi:.2f}")
    if rsi > 70:
        print("⚠️  Overbought territory")
    elif rsi < 30:
        print("🟢 Oversold territory - potential buy")
    else:
        print("Neutral zone")

    # Volume analysis
    avg_volume = df['volume'].rolling(window=20).mean().iloc[-1]
    current_volume = df['volume'].iloc[-1]
    print(f"\nVolume:")
    print(f"Current: {current_volume:,.0f}")
    print(f"20-day Avg: {avg_volume:,.0f}")
    print(f"Relative: {(current_volume / avg_volume):.2f}x")
```

### 6. AI-Powered Insights

Generate investment insights using Claude's analysis:

```python
# Prepare summary for AI analysis
summary = {
    "ticker": ticker,
    "current_price": current_price,
    "52w_high": df['high'].max(),
    "52w_low": df['low'].min(),
    "ytd_return": ((df['close'].iloc[-1] / df['close'].iloc[0]) - 1) * 100,
    "technical": {
        "sma_position": "bullish" if current_price > sma_200 else "bearish",
        "rsi": rsi,
        "volume_trend": "high" if current_volume > avg_volume else "normal"
    }
}

print(f"\n🤖 AI Analysis for {ticker}:")
print("\nBased on the data above, here's my assessment:")
print(f"- Trend: {'Bullish' if current_price > sma_200 else 'Bearish'} (price {'above' if current_price > sma_200 else 'below'} 200-day SMA)")
print(f"- Momentum: {'Overbought' if rsi > 70 else 'Oversold' if rsi < 30 else 'Neutral'} (RSI: {rsi:.1f})")
print(f"- Volume: {'Elevated' if current_volume > avg_volume * 1.5 else 'Normal'} trading activity")
print(f"\n💡 Recommendation: Consider {summary} in context of your investment strategy and risk tolerance.")
```

### 7. Generate Report

Create a formatted analysis report:

```python
print(f"\n{'='*60}")
print(f"EQUITY ANALYSIS REPORT: {ticker}")
print(f"{'='*60}")
print(f"Generated: {pd.Timestamp.now().strftime('%Y-%m-%d %H:%M:%S')}")
print(f"Data Source: OpenBB Platform")
print(f"\nAnalysis Type: {analysis_type.upper()}")
print(f"Period Analyzed: {period}")
print(f"\n{'='*60}")
```

## Examples

### Basic equity analysis
```bash
/openbb-equity AAPL
```

### Fundamental analysis only
```bash
/openbb-equity TSLA --analysis=fundamental
```

### Technical analysis with custom period
```bash
/openbb-equity NVDA --analysis=technical --period=6m
```

### Complete analysis
```bash
/openbb-equity GOOGL --analysis=all --period=1y
```

## Data Coverage

- **Price Data**: Historical OHLCV, real-time quotes
- **Fundamentals**: Income statements, balance sheets, cash flow, ratios
- **Technical**: SMA, EMA, RSI, MACD, Bollinger Bands, volume
- **Analyst Data**: Ratings, price targets, recommendations
- **Insider Trading**: Recent insider transactions
- **News**: Latest company news and sentiment

## Tips

1. **Compare Multiple Stocks**: Run for different tickers to compare
2. **Track Over Time**: Save reports to monitor changes
3. **Combine with AI Agents**: Use with equity-analyst agent for deeper insights
4. **Export Data**: Save dataframes to CSV for further analysis
5. **Set Alerts**: Monitor key technical levels (support/resistance)

## Integration with Other Commands

```bash
# Compare with crypto
/openbb-crypto BTC --compare=equity

# Portfolio context
/openbb-portfolio --add=AAPL

# Macro correlation
/openbb-macro --impact=equity
```

## Requirements

- OpenBB Platform installed (`pip install openbb`)
- Python 3.9.21 - 3.12
- Optional: API keys for premium data providers (configured in OpenBB)

## Notes

- Free tier provides delayed data (15-20 minutes)
- Premium data requires API keys (configured via `obb.user.credentials`)
- All financial data is for informational purposes only
- Not financial advice - always do your own research

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.