Catalogskills.sh · gracefullight

Financial Data Fetcher

Fetches real-time and historical market data, financial news, and fundamental data for trading decisions

Review advisedVerified hub539 installs

Savant verdict: Review advised

Security analysis or source-hub review identified patterns requiring attention.

Live evaluation

Not evaluated yet. Workspaces can request a live evaluation.

Security assessment

Scan pending.

Structure

  • 1 referenced file isn't in the packagescripts/fetch_data.py. They may be binary, too large to catalog, or missing upstream.
  • No license declaredConfirm you may reuse this skill before importing it into your repository.
  • The source hub's security checks flagged this skillGen Agent Trust Hub: fail (This skill is rated HIGH risk primarily due to its Indirect Prompt Injection surface. It fetches untrusted financial news content that could contain malicious instructions to manipulate trading decisions. Additionally, the skill's metadata is misleadingly categorized, and it relies on an untrusted repository.); Snyk: warn (Risk: MEDIUM · No issues); Runlayer: warn (1/2 files flagged)

SKILL.md

---
skill_id: financial_data_fetcher
name: Financial Data Fetcher
version: 1.0.0
description: Fetches real-time and historical market data, financial news, and fundamental data for trading decisions
author: Trading System CTO
tags: [market-data, trading, finance, real-time]
tools:
  - get_price_data
  - get_latest_news
  - get_fundamentals
  - get_market_snapshot
dependencies:
  - alpaca-trade-api
  - yfinance
  - requests
  - python-dotenv
---

# Financial Data Fetcher Skill

Provides comprehensive market data access for AI trading agents.

## Overview

This skill fetches:
- Real-time and historical OHLCV price data
- Financial news from multiple sources
- Fundamental data (P/E ratios, earnings, market cap)
- Market snapshots and quotes

## Tools

### 1. get_price_data

Fetches historical or real-time price data for symbols.

**Parameters:**
- `symbols` (required): List of ticker symbols (e.g., ["AAPL", "MSFT"])
- `timeframe` (optional): "1Min", "5Min", "1Hour", "1Day" (default: "1Day")
- `start_date` (optional): Start date in YYYY-MM-DD format
- `end_date` (optional): End date in YYYY-MM-DD format
- `limit` (optional): Number of bars to fetch (default: 100)

**Returns:**
```json
{
  "success": true,
  "data": {
    "AAPL": [
      {
        "timestamp": "2025-10-30T09:30:00Z",
        "open": 150.25,
        "high": 151.50,
        "low": 149.80,
        "close": 151.00,
        "volume": 5000000
      }
    ]
  }
}
```

**Usage:**
```bash
python scripts/fetch_data.py get_price_data --symbols AAPL MSFT --timeframe 1Day --limit 30
```

### 2. get_latest_news

Fetches recent financial news for symbols.

**Parameters:**
- `symbols` (required): List of ticker symbols
- `limit` (optional): Number of news items (default: 10)
- `sources` (optional): News sources to query (default: all)

**Returns:**
```json
{
  "success": true,
  "data": [
    {
      "symbol": "AAPL",
      "headline": "Apple announces new product line",
      "summary": "...",
      "source": "Bloomberg",
      "url": "https://...",
      "published_at": "2025-10-30T08:00:00Z",
      "sentiment": "positive"
    }
  ]
}
```

### 3. get_fundamentals

Fetches fundamental data for symbols.

**Parameters:**
- `symbols` (required): List of ticker symbols
- `metrics` (optional): Specific metrics to fetch (default: all)

**Returns:**
```json
{
  "success": true,
  "data": {
    "AAPL": {
      "market_cap": 3000000000000,
      "pe_ratio": 28.5,
      "eps": 6.42,
      "dividend_yield": 0.52,
      "beta": 1.2,
      "52_week_high": 200.00,
      "52_week_low": 120.00
    }
  }
}
```

### 4. get_market_snapshot

Gets current market snapshot with real-time quotes.

**Parameters:**
- `symbols` (required): List of ticker symbols

**Returns:**
```json
{
  "success": true,
  "data": {
    "AAPL": {
      "price": 151.00,
      "bid": 150.98,
      "ask": 151.02,
      "bid_size": 100,
      "ask_size": 200,
      "last_trade_time": "2025-10-30T15:59:59Z",
      "volume": 50000000,
      "vwap": 150.75
    }
  }
}
```

## Implementation

See `scripts/fetch_data.py` for full implementation using Alpaca API and yfinance.

## Rate Limiting

- Alpaca API: 200 requests/minute
- News API: 25 requests/day (free tier)
- Caching: 5-minute cache for real-time data

## Error Handling

All tools return consistent error format:
```json
{
  "success": false,
  "error": "Error message",
  "error_code": "INVALID_SYMBOL"
}
```

## Integration Example

```python
from claude_skills import load_skill

skill = load_skill("financial_data_fetcher")

# Get price data
result = skill.get_price_data(
    symbols=["AAPL", "MSFT"],
    timeframe="1Day",
    limit=30
)

if result["success"]:
    prices = result["data"]
    # Use in trading strategy
```