股票信息

股票信息 API

获取股票的基本信息,包括公司名称、所属行业、市场等。

端点

方法端点
GET/v1/stocks/info

在线试用

GET/v1/stocks/info

请求参数

参数类型必填说明
pageint-页码,从 1 开始
page_sizeint-每页条数 (1-1000)
keywordstring-按代码、名称或类型搜索
exchangestring-交易所过滤 (SSE/SZSE/BSE)
security_typestring-证券类型过滤

代码示例

Python

import requests

API_KEY = "your_api_key"

response = requests.get(
    "https://tickerlab.org/v1/stocks/info",
    params={"page": 1, "page_size": 10, "keyword": "平安"},
    headers={"X-API-Key": API_KEY}
)

data = response.json()
print(f"匹配总数: {data['total']}")
for stock in data['data'][:5]:
    print(f"{stock['symbol']}: {stock['short_name']}")

JavaScript

const response = await fetch(
  'https://tickerlab.org/v1/stocks/info?page=1&page_size=10&keyword=平安',
  { headers: { 'X-API-Key': 'your_api_key' } }
);

const data = await response.json();
console.log(`匹配总数: ${data.total}`);
data.data.forEach(stock => {
  console.log(`${stock.symbol}: ${stock.short_name}`);
});

cURL

curl "https://tickerlab.org/v1/stocks/info?page=1&page_size=10&keyword=平安" \
  -H "X-API-Key: your_api_key"

响应示例

{
  "status": "ok",
  "count": 10,
  "total": 138,
  "page": 1,
  "page_size": 10,
  "data": [
    {
      "symbol": "sh.600000",
      "short_name": "浦发银行",
      "list_date": "1999-11-10",
      "security_type": "stock"
    }
  ]
}

字段说明

字段说明
status响应状态
count当前页记录数
total匹配记录总数
page当前页码
page_size每页条数
data股票信息数组
symbol股票代码
short_name股票名称
list_date上市日期
security_type证券类型

完整示例:构建股票分析工具

以下是一个完整的 Python 示例,展示如何组合使用多个 API:

import requests
import pandas as pd
import matplotlib.pyplot as plt

class StockAnalyzer:
    def __init__(self, api_key, base_url="https://tickerlab.org"):
        self.api_key = api_key
        self.base_url = base_url
        self.headers = {"X-API-Key": api_key}
    
    def search_stocks(self, keyword):
        """搜索股票"""
        r = requests.get(
            f"{self.base_url}/v1/stocks/info",
            params={"keyword": keyword, "page_size": 10},
            headers=self.headers
        )
        return r.json()
    
    def get_kline(self, symbol, start_date=None, end_date=None):
        """获取 K 线数据"""
        r = requests.get(
            f"{self.base_url}/v1/markets/history",
            params={"symbol": symbol, "start_date": start_date, "end_date": end_date},
            headers=self.headers
        )
        data = r.json()
        df = pd.DataFrame(data["values"])
        df["datetime"] = pd.to_datetime(df["datetime"])
        for col in ["open", "high", "low", "close"]:
            df[col] = df[col].astype(float)
        return df
    
    def get_indicators(self, symbol):
        """获取技术指标"""
        indicators = {}
        
        # RSI
        r = requests.get(
            f"{self.base_url}/v1/indicators/rsi",
            params={"symbol": symbol},
            headers=self.headers
        )
        indicators["rsi"] = float(r.json()["values"][0]["rsi"])
        
        # MACD
        r = requests.get(
            f"{self.base_url}/v1/indicators/macd",
            params={"symbol": symbol},
            headers=self.headers
        )
        macd_data = r.json()["values"][0]
        indicators["macd"] = float(macd_data["macd"])
        indicators["macd_signal"] = float(macd_data["macd_signal"])
        
        return indicators
    
    def analyze(self, keyword, symbol, start_date=None, end_date=None):
        """综合分析"""
        # 搜索股票
        search_results = self.search_stocks(keyword)
        print(f"找到 {search_results['total']} 只匹配 '{keyword}' 的股票")
        
        kline = self.get_kline(symbol, start_date, end_date)
        indicators = self.get_indicators(symbol)
        
        print(f"=== {symbol} 分析 ===")
        print(f"最新价: {kline['close'].iloc[0]:.2f}")
        print(f"RSI: {indicators['rsi']:.2f}")
        print(f"MACD: {indicators['macd']:.4f}")
        
        # 简单信号判断
        if indicators["rsi"] > 70:
            print("⚠️ RSI 超买")
        elif indicators["rsi"] < 30:
            print("📈 RSI 超卖")
        
        return {"search_results": search_results, "kline": kline, "indicators": indicators}

# 使用示例
analyzer = StockAnalyzer("your_api_key")
result = analyzer.analyze("平安", "sz.000001", start_date="2024-01-01", end_date="2024-12-31")