---
id: sm-stock-analysis
name: "stock-analysis"
url: https://skills.yangsir.net/skill/sm-stock-analysis
author: gracefullight
domain: investment
tags: ["stock-market", "financial-analysis", "investment-research", "data-analysis", "quantitative-finance"]
install_count: 9600
rating: 4.50 (274 reviews)
github: https://github.com/gracefullight/stock-checker
---

# stock-analysis

> 专注于股票分析，能够获取多个股票代码的数据，并计算关键指标，为金融决策提供数据支持。

**Stats**: 9,600 installs · 4.5/5 (274 reviews)

## Before / After 对比

### 股票数据分析自动化，关键指标洞察

## Readme

# stock-analysis

# Stock Analysis (v5.0)

Analyze US stocks and cryptocurrencies using Yahoo Finance data. Includes portfolio management, crypto support, and periodic analysis.

## Quick Start

**IMPORTANT:** Pass ONLY the stock ticker symbol(s) as arguments. Do NOT add extra text, headers, or formatting in the command.

Analyze a single ticker:

```
uv run {baseDir}/scripts/analyze_stock.py AAPL
uv run {baseDir}/scripts/analyze_stock.py MSFT --output json

```

Compare multiple tickers:

```
uv run {baseDir}/scripts/analyze_stock.py AAPL MSFT GOOGL

```

## Cryptocurrency Analysis (v5.0)

Analyze top 20 cryptocurrencies by market cap:

```
uv run {baseDir}/scripts/analyze_stock.py BTC-USD
uv run {baseDir}/scripts/analyze_stock.py ETH-USD SOL-USD

```

**Supported Cryptos:**
BTC-USD, ETH-USD, BNB-USD, SOL-USD, XRP-USD, ADA-USD, DOGE-USD, AVAX-USD, DOT-USD, MATIC-USD, LINK-USD, ATOM-USD, UNI-USD, LTC-USD, BCH-USD, XLM-USD, ALGO-USD, VET-USD, FIL-USD, NEAR-USD

**Crypto Analysis Dimensions:**

- Market cap (large/mid/small classification)

- Category (Smart Contract L1, DeFi, Payment, etc.)

- BTC correlation (30-day)

- Momentum (RSI, price range)

- Market context (VIX, general market regime)

## Portfolio Management (v5.0)

Create and manage portfolios with mixed assets (stocks + crypto):

```
# Create portfolio
uv run {baseDir}/scripts/portfolio.py create "My Portfolio"

# Add assets
uv run {baseDir}/scripts/portfolio.py add AAPL --quantity 100 --cost 150.00
uv run {baseDir}/scripts/portfolio.py add BTC-USD --quantity 0.5 --cost 40000 --portfolio "My Portfolio"

# View holdings with current P&L
uv run {baseDir}/scripts/portfolio.py show

# Update/remove assets
uv run {baseDir}/scripts/portfolio.py update AAPL --quantity 150
uv run {baseDir}/scripts/portfolio.py remove BTC-USD

# List/delete portfolios
uv run {baseDir}/scripts/portfolio.py list
uv run {baseDir}/scripts/portfolio.py delete "My Portfolio"

```

**Portfolio Storage:** `~/.clawdbot/skills/stock-analysis/portfolios.json`

## Portfolio Analysis (v5.0)

Analyze all assets in a portfolio with optional period returns:

```
# Analyze portfolio
uv run {baseDir}/scripts/analyze_stock.py --portfolio "My Portfolio"

# With period returns (daily/weekly/monthly/quarterly/yearly)
uv run {baseDir}/scripts/analyze_stock.py --portfolio "My Portfolio" --period weekly
uv run {baseDir}/scripts/analyze_stock.py -p "My Portfolio" --period monthly

```

**Portfolio Summary includes:**

- Total cost, current value, P&L

- Period return (if specified)

- Concentration warnings (>30% in single asset)

- Recommendation summary (BUY/HOLD/SELL counts)

**Examples:**

- ✅ CORRECT: `uv run {baseDir}/scripts/analyze_stock.py BAC`

- ✅ CORRECT: `uv run {baseDir}/scripts/analyze_stock.py BTC-USD`

- ❌ WRONG: `uv run {baseDir}/scripts/analyze_stock.py === BANK OF AMERICA (BAC) - Q4 2025 EARNINGS ===`

- ❌ WRONG: `uv run {baseDir}/scripts/analyze_stock.py "Bank of America"`

Use the ticker symbol only (e.g., BAC, not "Bank of America"). For crypto, use the -USD suffix (e.g., BTC-USD).

## Analysis Components

The script evaluates eight key dimensions:

- **Earnings Surprise (30% weight)**: Actual vs expected EPS, revenue beats/misses

- **Fundamentals (20% weight)**: P/E ratio, profit margins, revenue growth, debt levels

- **Analyst Sentiment (20% weight)**: Consensus ratings, price target vs current price

- **Historical Patterns (10% weight)**: Past earnings reactions, volatility

- **Market Context (10% weight)**: VIX, SPY/QQQ trends, market regime

- **Sector Performance (15% weight)**: Stock vs sector comparison, sector trends

- **Momentum (15% weight)**: RSI, 52-week range, volume, relative strength

- **Sentiment Analysis (10% weight)**: Fear/Greed Index, short interest, VIX term structure, insider trading, put/call ratio

**Sentiment Sub-Indicators:**

- **Fear & Greed Index (CNN)**: Contrarian signal (extreme fear = buy opportunity, extreme greed = caution)

- **Short Interest**: High shorts + squeeze potential = bullish; justified shorts = bearish

- **VIX Term Structure**: Contango = complacency/bullish; backwardation = stress/bearish

- **Insider Activity**: Net buying/selling from SEC Form 4 filings (90-day window)

- **Put/Call Ratio**: High ratio = excessive fear/bullish; low ratio = complacency/bearish

Weights auto-normalize if some components unavailable.

**Special Timing Checks:**

- Pre-earnings warning (< 14 days): Recommends HOLD instead of BUY

- Post-earnings spike detection (> 15% in 5 days): Flags "gains priced in"

- Overbought conditions (RSI > 70 + near 52w high): Reduces confidence

## Timing Warnings & Risk Flags

The script detects high-risk scenarios:

### Earnings Timing

- **Pre-Earnings Period**: If earnings < 14 days away, BUY signals become HOLD

- **Post-Earnings Spike**: If stock up > 15% in 5 days after earnings, warns "gains may be priced in"

### Technical Risk

- **Overbought Conditions**: RSI > 70 + near 52-week high = high-risk entry

### Market Risk

- **High VIX**: Market fear (VIX > 30) reduces confidence in BUY signals

- **Risk-Off Mode (v4.0.0)**: When safe-havens (GLD, TLT, UUP) rise together, reduces BUY confidence by 30%

Detects flight to safety across gold, treasuries, and USD

- Triggers when GLD ≥ +2%, TLT ≥ +1%, UUP ≥ +1% (5-day change)

### Sector Risk

- **Sector Weakness**: Stock may look good but sector is rotating out

### Geopolitical Risk (v4.0.0)

The script now scans breaking news (last 24h) for crisis keywords and automatically flags affected stocks:

- **Taiwan Conflict**: Semiconductors (NVDA, AMD, TSM, INTC, etc.) → 30% confidence penalty

- **China Tensions**: Tech/Consumer (AAPL, QCOM, NKE, SBUX, etc.) → 30% confidence penalty

- **Russia-Ukraine**: Energy/Materials (XOM, CVX, MOS, CF, etc.) → 30% confidence penalty

- **Middle East**: Oil/Defense (XOM, LMT, RTX, etc.) → 30% confidence penalty

- **Banking Crisis**: Financials (JPM, BAC, WFC, C, etc.) → 30% confidence penalty

If a ticker is not in the affected list but its sector is exposed, applies a 15% confidence penalty.

**Example Alert:**

```
⚠️ SECTOR RISK: Tech supply chain and consumer market exposure (detected: china, tariff)

```

### Breaking News Alerts (v4.0.0)

- Scans Google News RSS for crisis keywords (war, recession, sanctions, disasters, etc.)

- Displays up to 2 breaking news alerts in caveats (last 24 hours)

- Uses 1-hour cache to avoid excessive API calls

## Output Format

**Default (text)**: Concise buy/hold/sell signal with 3-5 bullet points and caveats

**JSON**: Structured data with scores, metrics, and raw data for further analysis

## Limitations

- **Data freshness**: Yahoo Finance may lag 15-20 minutes

- **Sentiment data staleness**:

Short interest data lags ~2 weeks (FINRA reporting schedule)

- Insider trades may lag filing by 2-3 days

- VIX term structure only updates during futures trading hours

- **Breaking news limitations (v4.0.0)**:

Google News RSS may lag by 15-60 minutes

- Keyword matching may have false positives/negatives

- Does not analyze sentiment, only detects keywords

- 1-hour cache means alerts may be slightly stale

- **Missing data**: Not all stocks have analyst coverage, options chains, or complete fundamentals

- **Execution time**: 3-5s per stock with async parallel fetching and caching (shared indicators cached for 1h)

- **Disclaimer**: All outputs include prominent "not financial advice" warning

- **US markets only**: Non-US tickers may have incomplete data

## Error Handling

The script gracefully handles:

- Invalid tickers → Clear error message

- Missing analyst data → Signal based on available metrics only

- API failures → Retry with exponential backoff, fail after 3 attempts

Weekly Installs6.2KRepository[gracefullight/s…-checker](https://github.com/gracefullight/stock-checker)GitHub Stars10First SeenJan 27, 2026Security Audits[Gen Agent Trust HubPass](/gracefullight/stock-checker/stock-analysis/security/agent-trust-hub)[SocketPass](/gracefullight/stock-checker/stock-analysis/security/socket)[SnykWarn](/gracefullight/stock-checker/stock-analysis/security/snyk)Installed onopencode5.7Kgemini-cli5.7Kcodex5.7Kgithub-copilot5.7Kkimi-cli5.6Kamp5.6K

---
*Source: https://skills.yangsir.net/skill/sm-stock-analysis*
*Markdown mirror: https://skills.yangsir.net/api/skill/sm-stock-analysis/markdown*