0
# Stock Market Data
1
2
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.
3
4
## Core Stock Data (STOCK Category)
5
6
### Real-time Stock Quotes
7
8
#### Chinese A-shares (Sina Finance)
9
```python { .api }
10
import akshare as ak
11
12
# Real-time A-share market data
13
def stock_zh_a_spot() -> pd.DataFrame:
14
"""
15
Returns real-time A-share quotes from Sina Finance
16
17
Returns:
18
pd.DataFrame: Real-time market data with columns:
19
- 代码 (Code): Stock symbol
20
- 名称 (Name): Stock name
21
- 最新价 (Latest): Current price
22
- 涨跌额 (Change): Price change amount
23
- 涨跌幅 (Pct_change): Percentage change
24
- 买入 (Bid): Bid price
25
- 卖出 (Ask): Ask price
26
- 成交量 (Volume): Trading volume
27
- 成交额 (Amount): Trading amount
28
"""
29
30
# Usage example
31
df = ak.stock_zh_a_spot()
32
print(df.head())
33
# 代码 名称 最新价 涨跌额 涨跌幅 买入 卖出 成交量 成交额
34
# 0 000001 平安银行 10.50 0.15 1.45 10.49 10.50 1234567 12950123456
35
# 1 000002 万科A 8.92 -0.08 -0.89 8.91 8.92 987654 8800765432
36
```
37
38
#### Historical A-share Data
39
```python { .api }
40
import akshare as ak
41
42
def stock_zh_a_hist(symbol: str = "000001", period: str = "daily",
43
start_date: str = "19700101", end_date: str = "20500101",
44
adjust: str = "") -> pd.DataFrame:
45
"""
46
Returns historical daily A-share data
47
48
Parameters:
49
symbol: Stock code (e.g., "000001")
50
period: Data frequency ("daily", "weekly", "monthly")
51
start_date: Start date in YYYYMMDD format
52
end_date: End date in YYYYMMDD format
53
adjust: Adjustment type ("qfq": 前复权, "hfq": 后复权, "": 不复权)
54
55
Returns:
56
pd.DataFrame: Historical data with OHLCV columns
57
"""
58
59
# Get historical data for Ping An Bank
60
hist_df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20240101", end_date="20241201")
61
print(hist_df.head())
62
# 日期 开盘 收盘 最高 最低 成交量 成交额
63
# 0 2024-01-02 10.20 10.35 10.40 10.15 5678901 58590123456
64
# 1 2024-01-03 10.35 10.28 10.42 10.25 4567890 46789012345
65
```
66
67
#### Minute-level Data
68
```python { .api }
69
import akshare as ak
70
71
def stock_zh_a_hist_min_em(symbol: str = "000001", period: str = "5",
72
start_date: str = "1979-09-01 09:32:00",
73
end_date: str = "2222-01-01 09:32:00",
74
adjust: str = "") -> pd.DataFrame:
75
"""
76
Returns minute-level A-share data
77
78
Parameters:
79
symbol: Stock code (e.g., "000001")
80
period: Time period ("1", "5", "15", "30", "60")
81
start_date: Start datetime in "YYYY-MM-DD HH:MM:SS" format
82
end_date: End datetime in "YYYY-MM-DD HH:MM:SS" format
83
adjust: Adjustment type ("", "qfq", "hfq")
84
85
Returns:
86
pd.DataFrame: Minute-level OHLCV data
87
"""
88
89
# Get 5-minute data for recent trading
90
minute_df = ak.stock_zh_a_hist_min_em(symbol="000001", period="5")
91
```
92
93
### US Stock Market Data
94
95
#### Real-time US Stocks
96
```python { .api }
97
import akshare as ak
98
99
def stock_us_spot() -> pd.DataFrame:
100
"""
101
Returns real-time US stock quotes
102
103
Returns:
104
pd.DataFrame: US stock market data with columns:
105
- 代码 (Symbol): Stock symbol
106
- 名称 (Name): Company name
107
- 最新价 (Price): Current price
108
- 涨跌额 (Change): Price change
109
- 涨跌幅 (Pct_change): Percentage change
110
- 成交量 (Volume): Trading volume
111
"""
112
113
# Get US stock real-time data
114
us_df = ak.stock_us_spot()
115
print(us_df.head())
116
# 代码 名称 最新价 涨跌额 涨跌幅 成交量
117
# 0 AAPL Apple 150.25 2.15 1.45 12345678
118
# 1 MSFT Microsoft 310.80 -1.20 -0.38 8765432
119
```
120
121
#### Historical US Stock Data
122
```python { .api }
123
import akshare as ak
124
125
def stock_us_daily(symbol: str, start_date: str = "19700101",
126
end_date: str = "20500101") -> pd.DataFrame:
127
"""
128
Returns historical daily US stock data
129
130
Parameters:
131
symbol: US stock symbol (e.g., "AAPL")
132
start_date: Start date in YYYYMMDD format
133
end_date: End date in YYYYMMDD format
134
135
Returns:
136
pd.DataFrame: Historical OHLCV data
137
"""
138
139
# Get Apple historical data
140
aapl_df = ak.stock_us_daily(symbol="AAPL", start_date="20240101")
141
```
142
143
### Hong Kong Stock Market
144
145
#### Real-time HK Stocks
146
```python { .api }
147
import akshare as ak
148
149
def stock_hk_spot() -> pd.DataFrame:
150
"""
151
Returns real-time Hong Kong stock quotes
152
153
Returns:
154
pd.DataFrame: HK stock market data
155
"""
156
157
# Get Hong Kong stock data
158
hk_df = ak.stock_hk_spot()
159
```
160
161
#### Historical HK Stock Data
162
```python { .api }
163
import akshare as ak
164
165
def stock_hk_daily(symbol: str, start_date: str = "19700101",
166
end_date: str = "20500101") -> pd.DataFrame:
167
"""
168
Returns historical Hong Kong stock data
169
170
Parameters:
171
symbol: HK stock code (e.g., "00700")
172
173
Returns:
174
pd.DataFrame: Historical data
175
"""
176
177
# Get Tencent historical data
178
tencent_df = ak.stock_hk_daily(symbol="00700", start_date="20240101")
179
```
180
181
## Advanced Stock Features (STOCK_FEATURE Category)
182
183
### East Money Enhanced Data
184
185
#### Real-time Enhanced A-shares
186
```python { .api }
187
import akshare as ak
188
189
def stock_zh_a_spot_em() -> pd.DataFrame:
190
"""
191
East Money enhanced real-time A-share data
192
193
Returns:
194
pd.DataFrame: Enhanced market data with columns:
195
- 序号 (Index): Row number
196
- 代码 (Code): Stock code
197
- 名称 (Name): Stock name
198
- 最新价 (Latest): Current price
199
- 涨跌幅 (Pct_change): Percentage change
200
- 涨跌额 (Change): Price change amount
201
- 成交量 (Volume): Trading volume
202
- 成交额 (Amount): Trading amount
203
- 振幅 (Amplitude): Price amplitude
204
- 最高 (High): Highest price
205
- 最低 (Low): Lowest price
206
- 今开 (Open): Opening price
207
- 昨收 (Prev_close): Previous close
208
- 量比 (Volume_ratio): Volume ratio
209
- 换手率 (Turnover): Turnover rate
210
- 市盈率-动态 (PE_dynamic): Dynamic P/E ratio
211
- 市净率 (PB): Price-to-book ratio
212
- 总市值 (Total_mv): Total market value
213
- 流通市值 (Float_mv): Floating market value
214
- 涨速 (Rise_speed): Rising speed
215
- 5分钟涨跌 (Change_5min): 5-minute change
216
- 60日涨跌幅 (Change_60d): 60-day change
217
- 年初至今涨跌幅 (Change_ytd): Year-to-date change
218
"""
219
220
# Get enhanced real-time data
221
enhanced_df = ak.stock_zh_a_spot_em()
222
print(enhanced_df.columns.tolist())
223
```
224
225
#### Historical Data with Adjustments
226
```python { .api }
227
import akshare as ak
228
229
def stock_zh_a_hist(symbol: str, period: str = "daily",
230
start_date: str = "19700101",
231
end_date: str = "20500101",
232
adjust: str = "") -> pd.DataFrame:
233
"""
234
Enhanced historical A-share data with adjustment options
235
236
Parameters:
237
symbol: Stock code
238
period: Data frequency ("daily", "weekly", "monthly")
239
start_date: Start date (YYYYMMDD)
240
end_date: End date (YYYYMMDD)
241
adjust: Price adjustment ("qfq"=forward, "hfq"=backward, ""=none)
242
243
Returns:
244
pd.DataFrame: OHLCV data with volume and amount
245
"""
246
247
# Get adjusted historical data
248
adj_df = ak.stock_zh_a_hist(
249
symbol="000001",
250
period="daily",
251
start_date="20240101",
252
adjust="qfq" # Forward adjusted prices
253
)
254
```
255
256
### Special Market Segments
257
258
#### STAR Market (科创板)
259
```python { .api }
260
import akshare as ak
261
262
def stock_kc_a_spot_em() -> pd.DataFrame:
263
"""
264
Real-time STAR Market (Science and Technology Innovation Board) data
265
266
Returns:
267
pd.DataFrame: STAR Market real-time quotes
268
"""
269
270
# Get STAR Market data
271
star_df = ak.stock_kc_a_spot_em()
272
```
273
274
#### ChiNext Market (创业板)
275
```python { .api }
276
import akshare as ak
277
278
def stock_cy_a_spot_em() -> pd.DataFrame:
279
"""
280
Real-time ChiNext Market data
281
282
Returns:
283
pd.DataFrame: ChiNext real-time quotes
284
"""
285
286
# Get ChiNext data
287
chinext_df = ak.stock_cy_a_spot_em()
288
```
289
290
### Stock Connect Data
291
292
#### Hong Kong-Shanghai/Shenzhen Stock Connect
293
```python { .api }
294
import akshare as ak
295
296
def stock_hsgt_fund_flow_summary_em() -> pd.DataFrame:
297
"""
298
Stock Connect capital flow summary
299
300
Returns:
301
pd.DataFrame: Capital flow data between mainland and HK
302
"""
303
304
def stock_hsgt_individual_em(symbol: str) -> pd.DataFrame:
305
"""
306
Individual stock data in Stock Connect
307
308
Parameters:
309
symbol: Stock code
310
311
Returns:
312
pd.DataFrame: Individual stock connect data
313
"""
314
315
# Get Stock Connect flow summary
316
flow_summary = ak.stock_hsgt_fund_flow_summary_em()
317
318
# Get individual stock connect data
319
individual_data = ak.stock_hsgt_individual_em(symbol="000001")
320
```
321
322
### Capital Flow Analysis
323
324
#### Sector Capital Flows
325
```python { .api }
326
import akshare as ak
327
328
def stock_fund_flow_concept() -> pd.DataFrame:
329
"""
330
Concept sector capital flow data
331
332
Returns:
333
pd.DataFrame: Capital flows by concept sectors
334
"""
335
336
def stock_fund_flow_industry() -> pd.DataFrame:
337
"""
338
Industry sector capital flow data
339
340
Returns:
341
pd.DataFrame: Capital flows by industry sectors
342
"""
343
344
# Get concept sector flows
345
concept_flows = ak.stock_fund_flow_concept()
346
347
# Get industry sector flows
348
industry_flows = ak.stock_fund_flow_industry()
349
```
350
351
### Margin Trading Data
352
353
#### Margin Trading Statistics
354
```python { .api }
355
import akshare as ak
356
357
def stock_margin_detail_em() -> pd.DataFrame:
358
"""
359
Detailed margin trading data
360
361
Returns:
362
pd.DataFrame: Margin trading statistics by stock
363
"""
364
365
def stock_margin_summary_em() -> pd.DataFrame:
366
"""
367
Margin trading summary data
368
369
Returns:
370
pd.DataFrame: Overall margin trading summary
371
"""
372
373
# Get margin trading details
374
margin_detail = ak.stock_margin_detail_em()
375
376
# Get margin trading summary
377
margin_summary = ak.stock_margin_summary_em()
378
```
379
380
### Dragon-Tiger Board Data
381
382
#### Large Transaction Tracking
383
```python { .api }
384
import akshare as ak
385
386
def stock_lhb_detail_em(start_date: str, end_date: str) -> pd.DataFrame:
387
"""
388
Dragon-Tiger Board detailed transaction data
389
390
Parameters:
391
start_date: Start date (YYYY-MM-DD)
392
end_date: End date (YYYY-MM-DD)
393
394
Returns:
395
pd.DataFrame: Large transaction details
396
"""
397
398
# Get Dragon-Tiger Board data
399
lhb_data = ak.stock_lhb_detail_em(
400
start_date="2024-01-01",
401
end_date="2024-12-01"
402
)
403
```
404
405
### Technical Analysis Indicators
406
407
#### Technical Indicators from Tonghuashun
408
```python { .api }
409
import akshare as ak
410
411
def stock_zh_a_gdhs_detail_em(symbol: str) -> pd.DataFrame:
412
"""
413
Stock technical analysis details
414
415
Parameters:
416
symbol: Stock code
417
418
Returns:
419
pd.DataFrame: Technical analysis indicators
420
"""
421
422
def stock_technology_ths(symbol: str, indicator: str) -> pd.DataFrame:
423
"""
424
Technical indicators from Tonghuashun
425
426
Parameters:
427
symbol: Stock code
428
indicator: Technical indicator type
429
430
Returns:
431
pd.DataFrame: Technical indicator data
432
"""
433
434
# Get technical analysis details
435
tech_detail = ak.stock_zh_a_gdhs_detail_em(symbol="000001")
436
437
# Get specific technical indicators
438
rsi_data = ak.stock_technology_ths(symbol="000001", indicator="RSI")
439
```
440
441
## Market Information and Lists
442
443
### Stock Lists and Categories
444
445
#### Market Board Classification
446
```python { .api }
447
import akshare as ak
448
449
def stock_board_concept_name_em() -> pd.DataFrame:
450
"""
451
Concept board names and classifications
452
453
Returns:
454
pd.DataFrame: Concept board information
455
"""
456
457
def stock_board_industry_name_em() -> pd.DataFrame:
458
"""
459
Industry board names and classifications
460
461
Returns:
462
pd.DataFrame: Industry classification data
463
"""
464
465
# Get concept boards
466
concept_boards = ak.stock_board_concept_name_em()
467
468
# Get industry boards
469
industry_boards = ak.stock_board_industry_name_em()
470
```
471
472
#### Stock Information
473
```python { .api }
474
import akshare as ak
475
476
def stock_info_a_code_name() -> pd.DataFrame:
477
"""
478
A-share stock code and name mapping
479
480
Returns:
481
pd.DataFrame: Stock code to name mapping
482
"""
483
484
def stock_info_sz_name_code() -> pd.DataFrame:
485
"""
486
Shenzhen stock exchange code-name mapping
487
488
Returns:
489
pd.DataFrame: SZ stock information
490
"""
491
492
# Get A-share stock list
493
stock_list = ak.stock_info_a_code_name()
494
495
# Get Shenzhen stock list
496
sz_stocks = ak.stock_info_sz_name_code()
497
```
498
499
## Usage Patterns
500
501
### Common Data Retrieval Workflow
502
```python { .api }
503
import akshare as ak
504
import pandas as pd
505
506
# Step 1: Get stock list
507
stock_list = ak.stock_info_a_code_name()
508
509
# Step 2: Get real-time data for all stocks
510
realtime_data = ak.stock_zh_a_spot_em()
511
512
# Step 3: Get historical data for specific stock
513
symbol = "000001"
514
historical_data = ak.stock_zh_a_hist(
515
symbol=symbol,
516
start_date="20240101",
517
end_date="20241201",
518
adjust="qfq"
519
)
520
521
# Step 4: Analyze technical indicators
522
tech_indicators = ak.stock_zh_a_gdhs_detail_em(symbol=symbol)
523
524
# Step 5: Check capital flows
525
if symbol in realtime_data['代码'].values:
526
flow_data = ak.stock_hsgt_individual_em(symbol=symbol)
527
```
528
529
### Error Handling and Data Validation
530
```python { .api }
531
import akshare as ak
532
533
def get_stock_data_safely(symbol: str) -> pd.DataFrame:
534
"""Safe stock data retrieval with error handling"""
535
try:
536
df = ak.stock_zh_a_hist(symbol=symbol)
537
if df.empty:
538
print(f"No data available for symbol {symbol}")
539
return pd.DataFrame()
540
return df
541
except Exception as e:
542
print(f"Error retrieving data for {symbol}: {e}")
543
return pd.DataFrame()
544
545
# Usage
546
data = get_stock_data_safely("000001")
547
```
548
549
### Data Frequency and Updates
550
- **Real-time data**: Updated during trading hours (9:30-15:00 CST)
551
- **Daily data**: Available after market close
552
- **Historical data**: Covers multiple years of trading history
553
- **Minute data**: Available for recent trading periods
554
- **Adjusted prices**: Forward (qfq) and backward (hfq) adjustment options
555
556
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.