Skip to content

DataStruct adj 模块

复权因子获取和复权计算模块,提供股票除权数据获取、前复权、后复权计算以及市值计算功能。

模块结构

adj.py

工具函数

IF

条件函数,类似于 Excel 的 IF 函数。

python
from FQData.DataStruct.adj import IF

result = IF(condition, value_if_true, value_if_false)

数据获取

fetch_stock_adj

获取股票复权系数 ADJ。

python
from FQData.DataStruct.adj import fetch_stock_adj

adj_data = fetch_stock_adj(
    code='600000',
    start='2024-01-01',
    end='2024-12-31'
)

参数:

参数类型说明
codestr/List[str]股票代码或代码列表
startstr开始日期
endstr结束日期
formatstr返回格式,默认 'pd'

返回: pd.DataFrame - 包含 date, code, adj 列的 DataFrame


fetch_stock_xdxr

获取股票除权信息。

python
from FQData.DataStruct.adj import fetch_stock_xdxr

xdxr_data = fetch_stock_xdxr(code='600000')

参数:

参数类型说明
codestr股票代码
formatstr返回格式,默认 'pd'

返回: pd.DataFrame - 包含除权信息的 DataFrame

返回字段:

字段说明
category除权类型
category_meaning类型含义
code股票代码
date日期
fenhong分红
fenshu分股
liquidity_after流通后
liquidity_before流通前
name名称
peigu配股
peigujia配股价格
shares_after股份后
shares_before股份前
songzhuangu送转股
suogu缩股
xingquanjia行权价

_fetch_stock_xdxr_batch

批量获取股票除权信息。

python
from FQData.DataStruct.adj import _fetch_stock_xdxr_batch

xdxr_data = _fetch_stock_xdxr_batch(['600000', '000001'])

复权计算

data_stock_to_fq

股票日线/分钟线动态复权接口。

python
from FQData.DataStruct.adj import data_stock_to_fq

fq_data = data_stock_to_fq(bfq_data, type_='qfq')

参数:

参数类型说明
__datapd.DataFrame不复权数据
type_str复权类型 ('01'/'qfq' 前复权, '02'/'hfq' 后复权)

返回: pd.DataFrame - 复权后的数据


_data_stock_to_fq

使用数据库数据进行复权(内部函数)。

python
from FQData.DataStruct.adj import _data_stock_to_fq

fq_data = _data_stock_to_fq(bfq_data, xdxr_data, fqtype='qfq')

data_stock_fq_adj

复权价格计算。

python
from FQData.DataStruct.adj import data_stock_fq_adj

adj_ratio = data_stock_fq_adj(code='600000', date='2024-01-01', values=10.0)

参数:

参数类型说明
codestr股票代码
datestr日期
valuesfloat价格

返回: float - 复权因子


流通股本

_data_stock_liquidity

取流通盘、总股本变化。

python
from FQData.DataStruct.adj import _data_stock_liquidity

data = _data_stock_liquicity(stock_data)

返回: pd.DataFrame - 包含流通股本和总股本的数据

新增字段:

字段说明
liutongguben流通股本
zongguben总股本

市值计算

calc_marketvalue

使用除权数据计算市值。

python
from FQData.DataStruct.adj import calc_marketvalue

data_with_mv = calc_marketvalue(stock_data, xdxr_data)

参数:

参数类型说明
datapd.DataFrame股票行情数据
xdxrpd.DataFrame除权信息数据

返回: pd.DataFrame - 包含市值的行情数据

新增字段:

字段说明
mv总市值
liquidity_mv流通市值

data_marketvalue

计算股票市值。

python
from FQData.DataStruct.adj import data_marketvalue

data_with_mv = data_marketvalue(stock_data)

参数:

参数类型说明
datapd.DataFrame股票行情数据,需包含 MultiIndex (date, code)

返回: pd.DataFrame - 包含 mv 和 liquidity_mv 的数据


除权类型

类型值含义
1分红
2配股
3送转股
4送股
5增发
6上市
7退市
8扩股
9缩股
10股权激励
11股份回购
12可转债转股

使用示例

前复权

python
from FQData.DataStruct.adj import data_stock_to_fq, fetch_stock_xdxr

xdxr_data = fetch_stock_xdxr('600000')

fq_data = data_stock_to_fq(bfq_data, type_='qfq')

后复权

python
fq_data = data_stock_to_fq(bfq_data, type_='hfq')

计算市值

python
from FQData.DataStruct.adj import data_marketvalue

data_with_mv = data_marketvalue(stock_data)

print(f"总市值: {data_with_mv['mv'].iloc[-1]}")
print(f"流通市值: {data_with_mv['liquidity_mv'].iloc[-1]}")

相关文档