Comprehensive Python library for financial data acquisition providing access to Chinese and global market data.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
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.
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 96789012345import 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"
)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 开放 开放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")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()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()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()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()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()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")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()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 2334567import 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")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()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")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()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()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()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()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")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")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")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()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)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