SkillHub

yfinance-client

v1.0.0

简化美股和港股数据获取,涵盖行情、历史走势、公司信息、财务数据、分析师观点、筛选器及期权。

Sourced from ClawHub, Authored by xdl2003

Installation

Please help me install the skill `yfinance-client` from SkillHub official store. npx skills add xdl2003/yfinance-client

yfinance Skill

Overview

The yfinance skill provides a convenient client for querying US and Hong Kong stock data using Yahoo Finance. It wraps the yfinance library to offer a simplified interface for retrieving financial data, market information, and analyst insights.

Features

Supported Markets

  • US Stocks: Symbols like AAPL, MSFT, GOOGL, etc.
  • Hong Kong Stocks: Symbols like 0700.HK (Tencent), 9988.HK (Alibaba), etc. Can use either 4-digit (0700) or full format (0700.HK)

Data Types

Category Methods
Price & History get_price, get_history, get_fast_info
Company Info get_company_info, get_company_summary, get_major_holders
Financials get_financials, get_balance_sheet, get_cashflow, get_earnings
Analyst Data get_recommendations, get_analyst_price_targets, get_earnings_estimate
Insider & News get_insider_transactions, get_news
Dividends & Splits get_dividends, get_splits, get_actions
Sector & Industry get_sector, get_industry
Screener get_screener (predefined queries like day_gainers, most_actives)
Options get_options, get_option_chain
Search search

Usage

Installation

pip install yfinance pandas

Basic Usage

from yfinance_skill import YFinanceClient

# Create client
client = YFinanceClient()

# Get stock price
price = client.get_price("AAPL")
print(f"AAPL price: ${price}")

# Get historical data
history = client.get_history("AAPL", period="1mo")
print(history.tail())

# Get company info
info = client.get_company_info("AAPL")
print(f"Industry: {info.get('industry')}")
print(f"Sector: {info.get('sector')}")

# Get recommendations
recs = client.get_recommendations("MSFT")
print(recs)

# Get day gainers
gainers = client.get_screener("day_gainers")
print(gainers.head())

# Hong Kong stocks
hk_price = client.get_price("0700.HK")  # Tencent
hk_info = client.get_company_info("0700")

Key Methods

get_price(symbol)

Returns the current stock price as a float.

get_history(symbol, period="1mo", interval="1d", start=None, end=None)

Returns historical OHLCV data.

  • period: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max
  • interval: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 1wk, 1mo

get_company_info(symbol)

Returns a dictionary with comprehensive company information including: - Company name, industry, sector - Market cap, PE ratio, dividend yield - 52-week high/low, 50-day average - Analyst ratings, target price - And many more fields

get_screener(query_name)

Returns screener results. Available queries: - day_gainers - Top gaining stocks today - day_losers - Top losing stocks today - most_actives - Most actively traded stocks - most_shorted_stocks - Most shorted stocks - growth_technology_stocks - Technology growth stocks - undervalued_large_caps - Undervalued large caps - And more...

get_sector(sector_name) / get_industry(industry_key)

Returns sector/industry information with top companies.

Error Handling

The client may raise exceptions for invalid symbols or network errors. Always handle exceptions appropriately in production code.

from yfinance_skill import YFinanceClient

client = YFinanceClient()

try:
    price = client.get_price("INVALID_SYMBOL")
except Exception as e:
    print(f"Error: {e}")

Notes

  • Some data may not be available for all stocks, especially HK stocks
  • Rate limiting may apply for frequent requests
  • Delayed quotes may be returned for some data types
  • Options data is only available for US stocks