| name | akshare |
| category | data-source |
| description | AKShare financial data aggregator (18k+ stars). Free, no API key. Covers A-shares, US, HK, futures, macro, forex. Primary fallback for tushare and yfinance. |
Overview
AKShare is a completely free, open-source Python financial data library. No registration or API key required. It aggregates data from public sources (Sina, East Money, etc.) covering Chinese and global markets.
Quick Start
import akshare as ak
df = ak.stock_zh_a_hist(symbol="000001", period="daily",
start_date="20240101", end_date="20260101", adjust="qfq")
df = ak.stock_us_hist(symbol="105.AAPL", period="daily",
start_date="20240101", end_date="20260101", adjust="qfq")
df = ak.stock_hk_hist(symbol="00700", period="daily",
start_date="20240101", end_date="20260101", adjust="qfq")
Top 10 High-Frequency Interfaces
A-shares
| Function | Description | Key Params |
|---|
stock_zh_a_hist() | A-share OHLCV | symbol, period, start_date, end_date, adjust |
stock_zh_a_spot_em() | Real-time A-share quotes | (none) |
stock_individual_info_em() | Stock basic info | symbol |
stock_zh_a_hist_min_em() | Intraday bars | symbol, period(1/5/15/30/60) |
US / HK
| Function | Description | Key Params |
|---|
stock_us_hist() | US stock OHLCV | symbol (e.g. "105.AAPL"), period, start_date, end_date |
stock_hk_hist() | HK stock OHLCV | symbol (e.g. "00700"), period, start_date, end_date |
Macro / Forex / Futures
| Function | Description |
|---|
macro_china_gdp() | China GDP data |
macro_china_cpi() | China CPI data |
futures_main_sina() | Futures main contract quotes |
currency_boc_sina() | BOC forex rates |
Column Names
AKShare returns Chinese column names by default:
| Chinese | English | Description |
|---|
| 日期 | date | Trade date |
| 开盘 | open | Open price |
| 最高 | high | High price |
| 最低 | low | Low price |
| 收盘 | close | Close price |
| 成交量 | volume | Volume |
| 成交额 | amount | Turnover |
| 涨跌幅 | pct_change | % change |
| 换手率 | turnover_rate | Turnover rate |
Date Format
- Input:
YYYYMMDD string (e.g. "20240101")
- Output:
日期 column as string, convert with pd.to_datetime()
Symbol Format
- A-shares: pure digits
"000001" (no .SZ suffix)
- US stocks:
"105.AAPL" (NASDAQ prefix 105), "106.BABA" (NYSE prefix 106)
- HK stocks:
"00700" (5-digit zero-padded)
Built-in Loader
The project has a built-in AKShare DataLoader at backtest/loaders/akshare_loader.py. When backtesting, the runner automatically falls back to AKShare when tushare/yfinance are unavailable.
Reference Docs
For less common interfaces, see the references/ subdirectory or the official docs at https://akshare.akfamily.xyz/