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

financial-instruments.mddocs/

Financial Instruments

AKShare provides comprehensive coverage of financial instruments with 224 functions across four major categories: FUND (79 functions), BOND (41 functions), FUTURES (62 functions), and OPTION (42 functions). This includes mutual funds, ETFs, government and corporate bonds, commodity and financial futures, and stock and commodity options.

Fund Data (79 functions)

Exchange Traded Funds (ETFs)

Real-time ETF Data

import akshare as ak

def fund_etf_spot_em() -> pd.DataFrame:
    """
    Real-time ETF market data from East Money
    
    Returns:
        pd.DataFrame: ETF real-time quotes with columns:
            - 代码 (Code): ETF code
            - 名称 (Name): ETF name
            - 最新价 (Latest): Current price
            - 涨跌额 (Change): Price change amount
            - 涨跌幅 (Pct_change): Percentage change
            - 成交量 (Volume): Trading volume
            - 成交额 (Amount): Trading amount
            - 开盘价 (Open): Opening price
            - 最高价 (High): Highest price
            - 最低价 (Low): Lowest price
            - 昨收价 (Prev_close): Previous close
            - 换手率 (Turnover): Turnover rate
    """

# Get real-time ETF data
etf_df = ak.fund_etf_spot_em()
print(etf_df.head())
#     代码      名称    最新价  涨跌额  涨跌幅     成交量        成交额
# 0  510050  50ETF    2.885   0.01   0.35   45678901  131770234567
# 1  510300  沪深300   4.123  -0.02  -0.48   23456789   96789012345

Historical ETF Data

import akshare as ak

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

# Get 50ETF historical data
etf_hist = ak.fund_etf_fund_daily_em(
    symbol="510050", 
    start_date="20240101", 
    end_date="20241201"
)

Open-end Mutual Funds

Fund Daily Data

import akshare as ak

def fund_open_fund_daily_em(symbol: str, start_date: str = "19700101",
                           end_date: str = "20500101") -> pd.DataFrame:
    """
    Open-end fund daily net asset value data
    
    Parameters:
        symbol: Fund code (e.g., "000001")
        start_date: Start date in YYYYMMDD format  
        end_date: End date in YYYYMMDD format
        
    Returns:
        pd.DataFrame: Fund NAV data with columns:
            - 净值日期 (Date): NAV date
            - 单位净值 (NAV): Net Asset Value per share
            - 累计净值 (Cum_NAV): Cumulative NAV
            - 日增长率 (Daily_return): Daily return rate
            - 申购状态 (Purchase_status): Purchase status
            - 赎回状态 (Redeem_status): Redemption status
    """

# Get fund daily data
fund_daily = ak.fund_open_fund_daily_em(symbol="000001")
print(fund_daily.head())
#      净值日期   单位净值   累计净值  日增长率 申购状态 赎回状态
# 0  2024-12-01   1.2345   2.5678   0.12   开放    开放
# 1  2024-11-29   1.2330   2.5663  -0.08   开放    开放

Fund Information and Rankings

import akshare as ak

def fund_em_fund_name() -> pd.DataFrame:
    """
    All fund codes and names from East Money
    
    Returns:
        pd.DataFrame: Fund directory with codes and names
    """

def fund_em_open_fund_info(fund: str, indicator: str = "单位净值走势") -> pd.DataFrame:
    """
    Detailed fund information and performance
    
    Parameters:
        fund: Fund code
        indicator: Information type
        
    Returns:
        pd.DataFrame: Fund detailed information
    """

# Get fund directory
fund_list = ak.fund_em_fund_name()

# Get specific fund information
fund_info = ak.fund_em_open_fund_info(fund="000001")

Fund Performance and Ratings

Fund Rankings

import akshare as ak

def fund_em_open_fund_rank() -> pd.DataFrame:
    """
    Open-end fund performance rankings
    
    Returns:
        pd.DataFrame: Fund rankings by various metrics
    """

def fund_rating_all() -> pd.DataFrame:
    """
    Fund ratings from multiple rating agencies
    
    Returns:
        pd.DataFrame: Comprehensive fund ratings
    """

# Get fund rankings
fund_ranks = ak.fund_em_open_fund_rank()

# Get fund ratings
fund_ratings = ak.fund_rating_all()

Fund Manager Information

import akshare as ak

def fund_manager() -> pd.DataFrame:
    """
    Fund manager information and track records
    
    Returns:
        pd.DataFrame: Fund manager details and performance
    """

# Get fund manager data
managers = ak.fund_manager()

Bond Data (41 functions)

Government Bonds

Chinese Government Bonds

import akshare as ak

def bond_zh_hs_daily() -> pd.DataFrame:
    """
    Chinese government bond daily trading data
    
    Returns:
        pd.DataFrame: Government bond market data with columns:
            - 代码 (Code): Bond code
            - 名称 (Name): Bond name
            - 最新价 (Price): Current price  
            - 涨跌额 (Change): Price change
            - 涨跌幅 (Pct_change): Percentage change
            - 成交量 (Volume): Trading volume
            - 成交额 (Amount): Trading amount
            - 收益率 (Yield): Current yield
    """

# Get government bond data
gov_bonds = ak.bond_zh_hs_daily()

Treasury Bond Yield Curves

import akshare as ak

def bond_zh_yield() -> pd.DataFrame:
    """
    Chinese treasury bond yield curve
    
    Returns:
        pd.DataFrame: Yield curve data across maturities
    """

# Get yield curve data
yield_curve = ak.bond_zh_yield()

Corporate Bonds

Corporate Bond Trading

import akshare as ak

def bond_cb_ths() -> pd.DataFrame:
    """
    Corporate bond data from Tonghuashun
    
    Returns:
        pd.DataFrame: Corporate bond market information
    """

def bond_cbond() -> pd.DataFrame:
    """
    Corporate bond comprehensive data
    
    Returns:
        pd.DataFrame: Corporate bond details and pricing
    """

# Get corporate bond data
corp_bonds_ths = ak.bond_cb_ths()
corp_bonds = ak.bond_cbond()

Convertible Bonds

Convertible Bond Market

import akshare as ak

def bond_convert_list() -> pd.DataFrame:
    """
    Convertible bond list and basic information
    
    Returns:
        pd.DataFrame: Convertible bond directory with columns:
            - 转债代码 (Code): Convertible bond code
            - 转债名称 (Name): Bond name
            - 现价 (Price): Current price
            - 涨跌幅 (Change): Percentage change
            - 转股价 (Conversion_price): Conversion price
            - 转股价值 (Conversion_value): Conversion value
            - 溢价率 (Premium): Premium rate
    """

def bond_convert_detail(symbol: str) -> pd.DataFrame:
    """
    Detailed convertible bond information
    
    Parameters:
        symbol: Convertible bond code
        
    Returns:
        pd.DataFrame: Detailed bond information
    """

# Get convertible bond list
convert_list = ak.bond_convert_list()

# Get specific convertible bond details
convert_detail = ak.bond_convert_detail(symbol="113001")

Bond Market Analysis

Bond Issue Information

import akshare as ak

def bond_issue_cninfo() -> pd.DataFrame:
    """
    Bond issuance information from CNInfo
    
    Returns:
        pd.DataFrame: New bond issuance data
    """

def bond_summary() -> pd.DataFrame:
    """
    Bond market summary statistics
    
    Returns:
        pd.DataFrame: Overall bond market indicators
    """

# Get bond issuance data
bond_issues = ak.bond_issue_cninfo()

# Get market summary
bond_summary_data = ak.bond_summary()

Futures Data (62 functions)

Chinese Commodity Futures

Daily Futures Data

import akshare as ak

def futures_zh_daily_sina(symbol: str = "RB0000") -> pd.DataFrame:
    """
    Chinese futures daily data from Sina Finance
    
    Parameters:
        symbol: Futures contract code (e.g., "RB0000" for rebar)
        
    Returns:
        pd.DataFrame: Daily OHLCV data with columns:
            - date: Trading date
            - open: Opening price
            - high: Highest price  
            - low: Lowest price
            - close: Closing price
            - volume: Trading volume
            - hold: Open interest
    """

# Get rebar futures daily data
rebar_daily = ak.futures_zh_daily_sina(symbol="RB0000")
print(rebar_daily.head())
#         date   open   high    low  close    volume     hold
# 0  2024-12-01  3456   3478   3445   3467   1234567  2345678
# 1  2024-11-29  3445   3465   3432   3456   1098765  2334567

Minute-level Futures Data

import akshare as ak

def futures_zh_minute_sina(symbol: str, period: str = "1") -> pd.DataFrame:
    """
    Chinese futures minute-level data
    
    Parameters:
        symbol: Futures contract code
        period: Time period ("1", "5", "15", "30", "60")
        
    Returns:
        pd.DataFrame: Minute-level OHLCV data
    """

# Get 5-minute rebar data
rebar_5min = ak.futures_zh_minute_sina(symbol="RB2405", period="5")

Futures Market Information

Futures Contract Specifications

import akshare as ak

def futures_contract_info() -> pd.DataFrame:
    """
    Futures contract specifications and details
    
    Returns:
        pd.DataFrame: Contract information including:
            - 品种代码 (Product): Product code
            - 品种名称 (Name): Product name  
            - 交易所 (Exchange): Trading exchange
            - 合约乘数 (Multiplier): Contract multiplier
            - 最小变动价位 (Tick_size): Minimum tick size
    """

# Get contract specifications
contract_info = ak.futures_contract_info()

Futures Main Contract Data

import akshare as ak

def futures_main_sina(symbol: str) -> pd.DataFrame:
    """
    Main contract data for specific futures product
    
    Parameters:
        symbol: Futures product code
        
    Returns:
        pd.DataFrame: Main contract historical data
    """

# Get main contract data
main_contract = ak.futures_main_sina(symbol="RB")

International Futures

Foreign Futures Markets

import akshare as ak

def futures_foreign_detail(symbol: str) -> pd.DataFrame:
    """
    International futures market data
    
    Parameters:
        symbol: International futures symbol
        
    Returns:
        pd.DataFrame: Foreign futures data
    """

def futures_foreign_commodity() -> pd.DataFrame:
    """
    International commodity futures overview
    
    Returns:
        pd.DataFrame: Global commodity futures prices
    """

# Get international futures data
foreign_futures = ak.futures_foreign_detail(symbol="CL")
commodity_overview = ak.futures_foreign_commodity()

Futures Inventory and Warehouse Data

Warehouse Receipts

import akshare as ak

def futures_inventory_99() -> pd.DataFrame:
    """
    Futures warehouse inventory data
    
    Returns:
        pd.DataFrame: Inventory levels by product and warehouse
    """

def futures_inventory_shfe() -> pd.DataFrame:
    """
    Shanghai Futures Exchange inventory data
    
    Returns:
        pd.DataFrame: SHFE warehouse receipts
    """

# Get inventory data
inventory_data = ak.futures_inventory_99()
shfe_inventory = ak.futures_inventory_shfe()

Commitment of Traders (COT) Reports

COT Data Analysis

import akshare as ak

def cot_report() -> pd.DataFrame:
    """
    CFTC Commitment of Traders report
    
    Returns:
        pd.DataFrame: COT position data for US futures
    """

def cot_report_legacy() -> pd.DataFrame:
    """
    Legacy COT report format
    
    Returns:
        pd.DataFrame: Historical COT data format
    """

# Get COT reports
cot_data = ak.cot_report()
cot_legacy = ak.cot_report_legacy()

Options Data (42 functions)

Stock Options

Options Market Overview

import akshare as ak

def option_finance_board() -> pd.DataFrame:
    """
    Options market overview and statistics
    
    Returns:
        pd.DataFrame: Options market summary with columns:
            - 合约代码 (Contract): Option contract code
            - 合约名称 (Name): Contract name
            - 最新价 (Price): Current price
            - 涨跌额 (Change): Price change
            - 涨跌幅 (Pct_change): Percentage change  
            - 成交量 (Volume): Trading volume
            - 持仓量 (Open_interest): Open interest
            - 隐含波动率 (IV): Implied volatility
    """

# Get options market data
options_board = ak.option_finance_board()

Individual Option Contracts

import akshare as ak

def option_finance_sina(symbol: str) -> pd.DataFrame:
    """
    Individual option contract data from Sina Finance
    
    Parameters:
        symbol: Option contract code
        
    Returns:
        pd.DataFrame: Option contract details and pricing
    """

def option_sina_sse_list(symbol: str, trade_date: str) -> pd.DataFrame:
    """
    Shanghai Stock Exchange option contracts list
    
    Parameters:
        symbol: Underlying asset symbol
        trade_date: Trading date (YYYY-MM-DD)
        
    Returns:
        pd.DataFrame: SSE option contracts for underlying
    """

# Get individual option data
option_contract = ak.option_finance_sina(symbol="10004373")

# Get SSE option list for 50ETF
sse_options = ak.option_sina_sse_list(symbol="510050", trade_date="2024-12-01")

Commodity Options

Commodity Option Markets

import akshare as ak

def option_commodity_em() -> pd.DataFrame:
    """
    Commodity options data from East Money
    
    Returns:
        pd.DataFrame: Commodity option market information
    """

def option_commodity_hist(symbol: str) -> pd.DataFrame:
    """
    Historical commodity option data
    
    Parameters:
        symbol: Commodity option symbol
        
    Returns:
        pd.DataFrame: Historical option data
    """

# Get commodity options data
commodity_options = ak.option_commodity_em()

# Get historical commodity option data
commodity_hist = ak.option_commodity_hist(symbol="C2405C2800")

Options Analytics

Implied Volatility and Greeks

import akshare as ak

def option_finance_sina_sse_greeks(trade_date: str) -> pd.DataFrame:
    """
    Options Greeks data for SSE options
    
    Parameters:
        trade_date: Trading date (YYYY-MM-DD)
        
    Returns:
        pd.DataFrame: Options Greeks including:
            - Delta: Price sensitivity to underlying
            - Gamma: Delta sensitivity to underlying  
            - Theta: Time decay
            - Vega: Volatility sensitivity
            - Rho: Interest rate sensitivity
    """

# Get options Greeks
greeks_data = ak.option_finance_sina_sse_greeks(trade_date="2024-12-01")

Financial Instrument Analysis Patterns

Cross-Asset Analysis

import akshare as ak
import pandas as pd

def create_multi_asset_dashboard() -> dict:
    """Create comprehensive financial instruments dashboard"""
    
    dashboard = {
        'etfs': ak.fund_etf_spot_em(),
        'bonds': ak.bond_zh_hs_daily(),
        'futures': ak.futures_zh_daily_sina(symbol="RB0000"),
        'options': ak.option_finance_board()
    }
    
    return dashboard

def analyze_yield_curve_impact() -> pd.DataFrame:
    """Analyze yield curve impact on different instruments"""
    
    # Get yield curve
    yield_curve = ak.bond_zh_yield()
    
    # Get bond prices
    bond_prices = ak.bond_zh_hs_daily()
    
    # Get interest rate sensitive ETFs
    rate_etfs = ak.fund_etf_spot_em()
    
    # Analysis would combine these datasets
    return combined_analysis

# Usage
multi_asset_data = create_multi_asset_dashboard()
yield_analysis = analyze_yield_curve_impact()

Risk Management Applications

import akshare as ak

def portfolio_risk_monitor(holdings: dict) -> dict:
    """Monitor risk across different financial instruments"""
    
    risk_data = {}
    
    # ETF volatility monitoring
    if 'etfs' in holdings:
        etf_data = ak.fund_etf_spot_em()
        risk_data['etf_volatility'] = etf_data
    
    # Bond duration risk
    if 'bonds' in holdings:
        bond_data = ak.bond_zh_hs_daily()
        risk_data['bond_duration'] = bond_data
        
    # Futures margin requirements
    if 'futures' in holdings:
        futures_data = ak.futures_contract_info()
        risk_data['futures_margin'] = futures_data
        
    # Options Greeks risk
    if 'options' in holdings:
        options_greeks = ak.option_finance_sina_sse_greeks(trade_date="2024-12-01")
        risk_data['options_greeks'] = options_greeks
    
    return risk_data

# Usage
portfolio_holdings = {
    'etfs': ['510050', '510300'],
    'bonds': ['019547', '019640'],
    'futures': ['RB2405', 'AU2405'],
    'options': ['10004373', '10004374']
}

risk_monitor = portfolio_risk_monitor(portfolio_holdings)

Data Characteristics

Update Frequencies

  • Real-time data: ETF and futures prices during trading hours
  • Daily data: End-of-day NAV for funds, settlement prices for futures
  • Weekly data: Fund performance rankings and ratings
  • Monthly data: Fund detailed reports and analytics

Market Coverage

  • Chinese Markets: Complete coverage of domestic funds, bonds, futures, options
  • International Markets: Major global futures and some international funds
  • Product Breadth: 224 functions covering all major financial instrument types
  • Historical Depth: Multi-year historical data for most instruments

Common Applications

  1. Asset Allocation: Multi-asset portfolio construction and analysis
  2. Risk Management: Cross-asset risk monitoring and hedging strategies
  3. Arbitrage: Basis trading between futures and underlying assets
  4. Income Generation: Bond yield analysis and options strategies
  5. Hedging: Using derivatives for portfolio protection

The financial instruments capabilities in AKShare provide comprehensive coverage for sophisticated investment strategies across multiple asset classes and derivatives markets.

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