Skip to content

China A-Share Stocks

Complete guide for accessing China A-share stock data.

Daily Historical Data

Basic Usage

import finvista as fv

# Get daily data
df = fv.get_cn_stock_daily("000001", start_date="2024-01-01")

Parameters

Parameter Type Required Description
symbol str Yes Stock code (e.g., "000001")
start_date str No Start date (YYYY-MM-DD)
end_date str No End date (YYYY-MM-DD)
source str No Force specific source

Return Columns

Column Description
date Trading date
open Opening price
high Highest price
low Lowest price
close Closing price
volume Trading volume
amount Trading amount

Real-time Quotes

# Single stock
df = fv.get_cn_stock_quote("000001")

# Multiple stocks
df = fv.get_cn_stock_quote(["000001", "600519", "000858"])

Return Columns

Column Description
symbol Stock code
name Stock name
price Current price
change Price change
change_pct Change percentage
open Opening price
high Highest price
low Lowest price
volume Trading volume

Stock List

# Main board stocks
df = fv.list_cn_stock_symbols(market="main")

# ChiNext (创业板)
df = fv.list_cn_stock_symbols(market="chinext")

# STAR Market (科创板)
df = fv.list_cn_stock_symbols(market="star")

# All stocks
df = fv.list_cn_stock_symbols()

Search Stocks

# Search by keyword
df = fv.search_cn_stock("银行")

# Search by code prefix
df = fv.search_cn_stock("600")

Data Sources

Priority Source Speed Reliability
1 East Money Fast High
2 Sina Medium High
3 Tencent Medium Medium

Examples

Download and Save to CSV

df = fv.get_cn_stock_daily("000001", start_date="2020-01-01")
df.to_csv("000001_daily.csv", index=False)

Calculate Moving Average

import pandas as pd

df = fv.get_cn_stock_daily("000001", start_date="2024-01-01")
df['MA5'] = df['close'].rolling(5).mean()
df['MA20'] = df['close'].rolling(20).mean()

Get Multiple Stocks

symbols = ["000001", "600519", "000858"]
data = {}

for symbol in symbols:
    data[symbol] = fv.get_cn_stock_daily(symbol, start_date="2024-01-01")