CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-akshare

Comprehensive Python library for financial data acquisition providing access to Chinese and global market data.

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

stock-data.mddocs/

Stock Market Data

AKShare provides comprehensive stock market data coverage with 325+ functions across two main categories: core STOCK data (120 functions) and advanced STOCK_FEATURE data (205 functions). This covers Chinese A-shares, Hong Kong stocks, US stocks, and various technical indicators and analysis tools.

Core Stock Data (STOCK Category)

Real-time Stock Quotes

Chinese A-shares (Sina Finance)

import akshare as ak

# Real-time A-share market data
def stock_zh_a_spot() -> pd.DataFrame:
    """
    Returns real-time A-share quotes from Sina Finance
    
    Returns:
        pd.DataFrame: Real-time market data with columns:
            - 代码 (Code): Stock symbol
            - 名称 (Name): Stock name  
            - 最新价 (Latest): Current price
            - 涨跌额 (Change): Price change amount
            - 涨跌幅 (Pct_change): Percentage change
            - 买入 (Bid): Bid price
            - 卖出 (Ask): Ask price
            - 成交量 (Volume): Trading volume
            - 成交额 (Amount): Trading amount
    """

# Usage example
df = ak.stock_zh_a_spot()
print(df.head())
#     代码    名称    最新价  涨跌额  涨跌幅   买入   卖出      成交量        成交额
# 0  000001  平安银行  10.50   0.15   1.45  10.49  10.50   1234567  12950123456
# 1  000002   万科A    8.92  -0.08  -0.89   8.91   8.92    987654   8800765432

Historical A-share Data

import akshare as ak

def stock_zh_a_hist(symbol: str = "000001", period: str = "daily",
                    start_date: str = "19700101", end_date: str = "20500101",
                    adjust: str = "") -> pd.DataFrame:
    """
    Returns historical daily A-share data
    
    Parameters:
        symbol: Stock code (e.g., "000001")
        period: Data frequency ("daily", "weekly", "monthly")
        start_date: Start date in YYYYMMDD format
        end_date: End date in YYYYMMDD format
        adjust: Adjustment type ("qfq": 前复权, "hfq": 后复权, "": 不复权)
        
    Returns:
        pd.DataFrame: Historical data with OHLCV columns
    """

# Get historical data for Ping An Bank
hist_df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20240101", end_date="20241201")
print(hist_df.head())
#         日期    开盘    收盘    最高    最低      成交量        成交额
# 0  2024-01-02  10.20  10.35  10.40  10.15   5678901  58590123456
# 1  2024-01-03  10.35  10.28  10.42  10.25   4567890  46789012345

Minute-level Data

import akshare as ak

def stock_zh_a_hist_min_em(symbol: str = "000001", period: str = "5",
                           start_date: str = "1979-09-01 09:32:00", 
                           end_date: str = "2222-01-01 09:32:00",
                           adjust: str = "") -> pd.DataFrame:
    """
    Returns minute-level A-share data
    
    Parameters:
        symbol: Stock code (e.g., "000001")
        period: Time period ("1", "5", "15", "30", "60") 
        start_date: Start datetime in "YYYY-MM-DD HH:MM:SS" format
        end_date: End datetime in "YYYY-MM-DD HH:MM:SS" format
        adjust: Adjustment type ("", "qfq", "hfq")
        
    Returns:
        pd.DataFrame: Minute-level OHLCV data
    """

# Get 5-minute data for recent trading
minute_df = ak.stock_zh_a_hist_min_em(symbol="000001", period="5")

US Stock Market Data

Real-time US Stocks

import akshare as ak

def stock_us_spot() -> pd.DataFrame:
    """
    Returns real-time US stock quotes
    
    Returns:
        pd.DataFrame: US stock market data with columns:
            - 代码 (Symbol): Stock symbol
            - 名称 (Name): Company name
            - 最新价 (Price): Current price
            - 涨跌额 (Change): Price change
            - 涨跌幅 (Pct_change): Percentage change
            - 成交量 (Volume): Trading volume
    """

# Get US stock real-time data
us_df = ak.stock_us_spot()
print(us_df.head())
#    代码      名称     最新价  涨跌额  涨跌幅      成交量
# 0  AAPL    Apple    150.25   2.15   1.45   12345678
# 1  MSFT  Microsoft  310.80  -1.20  -0.38    8765432

Historical US Stock Data

import akshare as ak

def stock_us_daily(symbol: str, start_date: str = "19700101",
                   end_date: str = "20500101") -> pd.DataFrame:
    """
    Returns historical daily US stock data
    
    Parameters:
        symbol: US stock symbol (e.g., "AAPL")
        start_date: Start date in YYYYMMDD format
        end_date: End date in YYYYMMDD format
        
    Returns:
        pd.DataFrame: Historical OHLCV data
    """

# Get Apple historical data
aapl_df = ak.stock_us_daily(symbol="AAPL", start_date="20240101")

Hong Kong Stock Market

Real-time HK Stocks

import akshare as ak

def stock_hk_spot() -> pd.DataFrame:
    """
    Returns real-time Hong Kong stock quotes
    
    Returns:
        pd.DataFrame: HK stock market data
    """

# Get Hong Kong stock data
hk_df = ak.stock_hk_spot()

Historical HK Stock Data

import akshare as ak

def stock_hk_daily(symbol: str, start_date: str = "19700101",
                   end_date: str = "20500101") -> pd.DataFrame:
    """
    Returns historical Hong Kong stock data
    
    Parameters:
        symbol: HK stock code (e.g., "00700")
        
    Returns:
        pd.DataFrame: Historical data
    """

# Get Tencent historical data
tencent_df = ak.stock_hk_daily(symbol="00700", start_date="20240101")

Advanced Stock Features (STOCK_FEATURE Category)

East Money Enhanced Data

Real-time Enhanced A-shares

import akshare as ak

def stock_zh_a_spot_em() -> pd.DataFrame:
    """
    East Money enhanced real-time A-share data
    
    Returns:
        pd.DataFrame: Enhanced market data with columns:
            - 序号 (Index): Row number
            - 代码 (Code): Stock code
            - 名称 (Name): Stock name
            - 最新价 (Latest): Current price
            - 涨跌幅 (Pct_change): Percentage change  
            - 涨跌额 (Change): Price change amount
            - 成交量 (Volume): Trading volume
            - 成交额 (Amount): Trading amount
            - 振幅 (Amplitude): Price amplitude
            - 最高 (High): Highest price
            - 最低 (Low): Lowest price
            - 今开 (Open): Opening price
            - 昨收 (Prev_close): Previous close
            - 量比 (Volume_ratio): Volume ratio
            - 换手率 (Turnover): Turnover rate
            - 市盈率-动态 (PE_dynamic): Dynamic P/E ratio
            - 市净率 (PB): Price-to-book ratio
            - 总市值 (Total_mv): Total market value
            - 流通市值 (Float_mv): Floating market value
            - 涨速 (Rise_speed): Rising speed
            - 5分钟涨跌 (Change_5min): 5-minute change
            - 60日涨跌幅 (Change_60d): 60-day change
            - 年初至今涨跌幅 (Change_ytd): Year-to-date change
    """

# Get enhanced real-time data
enhanced_df = ak.stock_zh_a_spot_em()
print(enhanced_df.columns.tolist())

Historical Data with Adjustments

import akshare as ak

def stock_zh_a_hist(symbol: str, period: str = "daily",
                    start_date: str = "19700101", 
                    end_date: str = "20500101",
                    adjust: str = "") -> pd.DataFrame:
    """
    Enhanced historical A-share data with adjustment options
    
    Parameters:
        symbol: Stock code
        period: Data frequency ("daily", "weekly", "monthly")
        start_date: Start date (YYYYMMDD)
        end_date: End date (YYYYMMDD)
        adjust: Price adjustment ("qfq"=forward, "hfq"=backward, ""=none)
        
    Returns:
        pd.DataFrame: OHLCV data with volume and amount
    """

# Get adjusted historical data
adj_df = ak.stock_zh_a_hist(
    symbol="000001", 
    period="daily", 
    start_date="20240101",
    adjust="qfq"  # Forward adjusted prices
)

Special Market Segments

STAR Market (科创板)

import akshare as ak

def stock_kc_a_spot_em() -> pd.DataFrame:
    """
    Real-time STAR Market (Science and Technology Innovation Board) data
    
    Returns:
        pd.DataFrame: STAR Market real-time quotes
    """

# Get STAR Market data
star_df = ak.stock_kc_a_spot_em()

ChiNext Market (创业板)

import akshare as ak

def stock_cy_a_spot_em() -> pd.DataFrame:
    """
    Real-time ChiNext Market data
    
    Returns:
        pd.DataFrame: ChiNext real-time quotes
    """

# Get ChiNext data  
chinext_df = ak.stock_cy_a_spot_em()

Stock Connect Data

Hong Kong-Shanghai/Shenzhen Stock Connect

import akshare as ak

def stock_hsgt_fund_flow_summary_em() -> pd.DataFrame:
    """
    Stock Connect capital flow summary
    
    Returns:
        pd.DataFrame: Capital flow data between mainland and HK
    """

def stock_hsgt_individual_em(symbol: str) -> pd.DataFrame:
    """
    Individual stock data in Stock Connect
    
    Parameters:
        symbol: Stock code
        
    Returns:
        pd.DataFrame: Individual stock connect data
    """

# Get Stock Connect flow summary
flow_summary = ak.stock_hsgt_fund_flow_summary_em()

# Get individual stock connect data
individual_data = ak.stock_hsgt_individual_em(symbol="000001")

Capital Flow Analysis

Sector Capital Flows

import akshare as ak

def stock_fund_flow_concept() -> pd.DataFrame:
    """
    Concept sector capital flow data
    
    Returns:
        pd.DataFrame: Capital flows by concept sectors
    """

def stock_fund_flow_industry() -> pd.DataFrame:
    """
    Industry sector capital flow data
    
    Returns:
        pd.DataFrame: Capital flows by industry sectors  
    """

# Get concept sector flows
concept_flows = ak.stock_fund_flow_concept()

# Get industry sector flows  
industry_flows = ak.stock_fund_flow_industry()

Margin Trading Data

Margin Trading Statistics

import akshare as ak

def stock_margin_detail_em() -> pd.DataFrame:
    """
    Detailed margin trading data
    
    Returns:
        pd.DataFrame: Margin trading statistics by stock
    """

def stock_margin_summary_em() -> pd.DataFrame:
    """
    Margin trading summary data
    
    Returns:
        pd.DataFrame: Overall margin trading summary
    """

# Get margin trading details
margin_detail = ak.stock_margin_detail_em()

# Get margin trading summary
margin_summary = ak.stock_margin_summary_em()

Dragon-Tiger Board Data

Large Transaction Tracking

import akshare as ak

def stock_lhb_detail_em(start_date: str, end_date: str) -> pd.DataFrame:
    """
    Dragon-Tiger Board detailed transaction data
    
    Parameters:
        start_date: Start date (YYYY-MM-DD)
        end_date: End date (YYYY-MM-DD)
        
    Returns:
        pd.DataFrame: Large transaction details
    """

# Get Dragon-Tiger Board data
lhb_data = ak.stock_lhb_detail_em(
    start_date="2024-01-01", 
    end_date="2024-12-01"
)

Technical Analysis Indicators

Technical Indicators from Tonghuashun

import akshare as ak

def stock_zh_a_gdhs_detail_em(symbol: str) -> pd.DataFrame:
    """
    Stock technical analysis details
    
    Parameters:
        symbol: Stock code
        
    Returns:
        pd.DataFrame: Technical analysis indicators
    """

def stock_technology_ths(symbol: str, indicator: str) -> pd.DataFrame:
    """
    Technical indicators from Tonghuashun
    
    Parameters:
        symbol: Stock code
        indicator: Technical indicator type
        
    Returns:
        pd.DataFrame: Technical indicator data
    """

# Get technical analysis details
tech_detail = ak.stock_zh_a_gdhs_detail_em(symbol="000001")

# Get specific technical indicators
rsi_data = ak.stock_technology_ths(symbol="000001", indicator="RSI")

Market Information and Lists

Stock Lists and Categories

Market Board Classification

import akshare as ak

def stock_board_concept_name_em() -> pd.DataFrame:
    """
    Concept board names and classifications
    
    Returns:
        pd.DataFrame: Concept board information
    """

def stock_board_industry_name_em() -> pd.DataFrame:
    """
    Industry board names and classifications
    
    Returns:
        pd.DataFrame: Industry classification data
    """

# Get concept boards
concept_boards = ak.stock_board_concept_name_em()

# Get industry boards
industry_boards = ak.stock_board_industry_name_em()

Stock Information

import akshare as ak

def stock_info_a_code_name() -> pd.DataFrame:
    """
    A-share stock code and name mapping
    
    Returns:
        pd.DataFrame: Stock code to name mapping
    """

def stock_info_sz_name_code() -> pd.DataFrame:
    """
    Shenzhen stock exchange code-name mapping
    
    Returns:
        pd.DataFrame: SZ stock information
    """

# Get A-share stock list
stock_list = ak.stock_info_a_code_name()

# Get Shenzhen stock list
sz_stocks = ak.stock_info_sz_name_code()

Usage Patterns

Common Data Retrieval Workflow

import akshare as ak
import pandas as pd

# Step 1: Get stock list
stock_list = ak.stock_info_a_code_name()

# Step 2: Get real-time data for all stocks
realtime_data = ak.stock_zh_a_spot_em()

# Step 3: Get historical data for specific stock
symbol = "000001"
historical_data = ak.stock_zh_a_hist(
    symbol=symbol,
    start_date="20240101", 
    end_date="20241201",
    adjust="qfq"
)

# Step 4: Analyze technical indicators
tech_indicators = ak.stock_zh_a_gdhs_detail_em(symbol=symbol)

# Step 5: Check capital flows
if symbol in realtime_data['代码'].values:
    flow_data = ak.stock_hsgt_individual_em(symbol=symbol)

Error Handling and Data Validation

import akshare as ak

def get_stock_data_safely(symbol: str) -> pd.DataFrame:
    """Safe stock data retrieval with error handling"""
    try:
        df = ak.stock_zh_a_hist(symbol=symbol)
        if df.empty:
            print(f"No data available for symbol {symbol}")
            return pd.DataFrame()
        return df
    except Exception as e:
        print(f"Error retrieving data for {symbol}: {e}")
        return pd.DataFrame()

# Usage
data = get_stock_data_safely("000001")

Data Frequency and Updates

  • Real-time data: Updated during trading hours (9:30-15:00 CST)
  • Daily data: Available after market close
  • Historical data: Covers multiple years of trading history
  • Minute data: Available for recent trading periods
  • Adjusted prices: Forward (qfq) and backward (hfq) adjustment options

The stock data capabilities in AKShare provide comprehensive coverage for equity market analysis, from basic price data to advanced technical indicators and market microstructure information.

Install with Tessl CLI

npx tessl i tessl/pypi-akshare

docs

economic-data.md

financial-instruments.md

fundamental-analysis.md

index.md

market-indices.md

stock-data.md

tile.json