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
# A-share daily OHLCV (前复权)
df = ak.stock_zh_a_hist(symbol="000001", period="daily",
start_date="20240101", end_date="20260101", adjust="qfq")
# US stock daily
df = ak.stock_us_hist(symbol="105.AAPL", period="daily",
start_date="20240101", end_date="20260101", adjust="qfq")
# HK stock daily
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/
1---2name: akshare3description: AKShare financial data aggregator (18k+ stars). Free, no API key. Covers A-shares, US, HK, futures, macro, forex. Primary fallback for tushare and yfinance.4---5
6## Overview
7
8AKShare 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.
9
10- GitHub: https://github.com/akfamily/akshare (18k+ stars)
11- Install: `pip install akshare`
12
13## Quick Start
14
15```python
16import akshare as ak
17
18# A-share daily OHLCV (前复权)
19df = ak.stock_zh_a_hist(symbol="000001", period="daily",
20 start_date="20240101", end_date="20260101", adjust="qfq")
21
22# US stock daily
23df = ak.stock_us_hist(symbol="105.AAPL", period="daily",
24 start_date="20240101", end_date="20260101", adjust="qfq")
25
26# HK stock daily
27df = ak.stock_hk_hist(symbol="00700", period="daily",
28 start_date="20240101", end_date="20260101", adjust="qfq")
29```
30
31## Top 10 High-Frequency Interfaces
32
33### A-shares
34
35| Function | Description | Key Params |
36|----------|-------------|------------|
37| `stock_zh_a_hist()` | A-share OHLCV | symbol, period, start_date, end_date, adjust |
38| `stock_zh_a_spot_em()` | Real-time A-share quotes | (none) |
39| `stock_individual_info_em()` | Stock basic info | symbol |
40| `stock_zh_a_hist_min_em()` | Intraday bars | symbol, period(1/5/15/30/60) |
41
42### US / HK
43
44| Function | Description | Key Params |
45|----------|-------------|------------|
46| `stock_us_hist()` | US stock OHLCV | symbol (e.g. "105.AAPL"), period, start_date, end_date |
47| `stock_hk_hist()` | HK stock OHLCV | symbol (e.g. "00700"), period, start_date, end_date |
48
49### Macro / Forex / Futures
50
51| Function | Description |
52|----------|-------------|
53| `macro_china_gdp()` | China GDP data |
54| `macro_china_cpi()` | China CPI data |
55| `futures_main_sina()` | Futures main contract quotes |
56| `currency_boc_sina()` | BOC forex rates |
57
58## Column Names
59
60AKShare returns Chinese column names by default:
61
62| Chinese | English | Description |
63|---------|---------|-------------|
64| 日期 | date | Trade date |
65| 开盘 | open | Open price |
66| 最高 | high | High price |
67| 最低 | low | Low price |
68| 收盘 | close | Close price |
69| 成交量 | volume | Volume |
70| 成交额 | amount | Turnover |
71| 涨跌幅 | pct_change | % change |
72| 换手率 | turnover_rate | Turnover rate |
73
74## Date Format
75
76- Input: `YYYYMMDD` string (e.g. `"20240101"`)
77- Output: `日期` column as string, convert with `pd.to_datetime()`
78
79## Symbol Format
80
81- A-shares: pure digits `"000001"` (no .SZ suffix)
82- US stocks: `"105.AAPL"` (NASDAQ prefix 105), `"106.BABA"` (NYSE prefix 106)
83- HK stocks: `"00700"` (5-digit zero-padded)
84
85## Built-in Loader
86
87The 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.
88
89## Reference Docs
90
91For less common interfaces, see the `references/` subdirectory or the official docs at https://akshare.akfamily.xyz/