Python量化炒股的数据信息获取— 获取上市公司股东和股本信息
获取上市公司股东和股本信息,即获取上市公司的十大股东信息、十大流通股东信息、股东股份质押信息、股东股份冻结信息、股东户数信息、大股东减持信息和上市公司股本变动信息。
获取上市公司的十大股东信息
上市公司的十大股东数据,都存放在STK_SHAREHOLDER_TOP10表中,该表保存在finance包中。要查看表中的数据信息,需要使用query()函数。
单击聚宽JoinQuant量化炒股平台中的”策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,接着输入如下代码:
from jqdata import finance
q=query(finance.STK_SHAREHOLDER_TOP10).filter(finance.STK_SHAREHOLDER_TOP10.code=='002465.XSHE')
df=finance.run_query(q)
df
在这里查看了海格通信的十大股东信息。
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下图:
STK_SHAREHOLDER_TOP10表的常用字段意义如下:
code:证券代码
company_name:公司名称
shareholder_name:股东名称
shareholder_rank:股东名次
share_number:持股数量
share_ratio:持股比例
share_snature:股份性质
显示海格通信的第一大股东的名称、持股数量和持股比例,具体代码如下:
from jqdata import finance
q=query(finance.STK_SHAREHOLDER_TOP10.shareholder_name, finance.STK_SHAREHOLDER_TOP10.share_number,
finance.STK_SHAREHOLDER_TOP10.share_ratio).filter(finance.STK_SHAREHOLDER_TOP10.code=='002465.XSHE', finance.STK_SHAREHOLDER_TOP10.shareholder_rank==1)
df1 = finance.run_query(q)
print('海格通信的第一大股东的名称、持股数量和持股比例:\n', df1)
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下图:
显示海格通信股份有限公司的十大股东的股票代码,具体代码如下:
from jqdata import finance
q=query(finance.STK_SHAREHOLDER_TOP10).filter(finance.STK_SHAREHOLDER_TOP10.shareholder_name=='招商局轮船股份有限公司')
df2 = finance.run_query(q)
b = set(df2['code'])
print('招商局轮船有限公司是十大股东的股票代码:', b)
显示招商局轮船股份有限公司十大股东的股票代码,具体代码如下:
from jqdata import finance
q=query(finance.STK_SHAREHOLDER_TOP10).filter(finance.STK_SHAREHOLDER_TOP10.shareholder_name=='招商局轮船股份有限公司')
df2 = finance.run_query(q)
b = set(df2['code'])
print('招商局轮船有限公司是十大股东的股票代码:', b)
这里需要注意:利用df2[‘code’]获取满足条件的股票代码后,还要转化集合变量,这样可以保证股票代码不重复出现 。
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下:
再来显示招商局轮船股份有限公司是十大股东的股票,近10个交易日的收盘价信息,具体代码如下:
import pandas as pd
df1 = history(10, unit='1d', field='close', security_list=b, df=True, skip_paused=False, fq='pre')
print('招商局轮船股份有限公司十大股东的股票,近10个交易日的收盘价信息:\n', df1)
获取上市公司的十大流通股东信息
上市公司的十大流通股东数据,都存放在STK_SHAREHOLDER_FLOATING_TOP10表中,该表保存在finance包中。要查看表中的数据信息,需要使用query()函数。
单击聚宽JoinQuant量化炒股平台中的”策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,接着输入如下代码:
from jqdata import finance
q=query(finance.STK_SHAREHOLDER_FLOATING_TOP10).filter(finance.STK_SHAREHOLDER_FLOATING_TOP10.code=='002465.XSHE',
finance.STK_SHAREHOLDER_FLOATING_TOP10.pub_date>'2020-04-26')
df=finance.run_query(q)
df
下面显示的是公告日期2020年4月26日之后的海格通信的十大流通股东信息。
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下:
STK_SHAREHOLDER_FLOATING_TOP10表的常用字段,与STK_SHAREHOLDER_TOP10表相同。
获取股东股份质押信息
上市公司的股东股份质押数据,都存放在SKT_SHARES_PLEDGE表中,该表保存在finance包中。要查看表中的数据信息,需要使用query()函数。
单击聚宽JoinQuant量化炒股平台中的”策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,接着输入如下代码:
from jqdata import finance
q=query(finance.STK_SHARES_PLEDGE).filter(finance.STK_SHARES_PLEDGE.code=='002540.XSHE')
df=finance.run_query(q)
df
下面显示的是亚太科技的股东股份质押信息。
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下:
STK_SHARES_PLEDGE表的常用字段意义如下:
code:证券代码
company_name:公司名称
pledgor:质权人
pledge_item:质押事项
pledge_number:质押数量
pledge_total_ratio:占总股本比例
start_date:质押起始日
end_date:质押终止日
unpledged_date:质押解除日
unpledged_number:质押解除数量
unpledged_detail:解除质押说明
获取股东股份冻结信息
上市公司的股东股份冻结数据,都存放在STK_SHARES_FROZEN表中,该表保存在finance包中,要查看表中的数据信息,需要使用query()函数。
单击聚宽JoinQuant量化炒股平台中的”策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,接着输入如下代码:
from jqdata import finance
q=query(finance.STK_SHARES_FROZEN).filter(finance.STK_SHARES_FROZEN.code=='600108.XSHG')
df=finance.run_query(q)
df
下面显示的是亚盛集团的股东股份冻结信息。
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下:
STK_SHARES_FROZEN表的常用字段意义如下:
code:证券代码
company_name:公司名称
frozen_number:冻结数量
frozen_total_ratio:占总比股份比例
start_date:冻结起始日
end_date:冻结终止日
unfrozen_date:解冻日期
unfrozen_number:累计解冻数量
unfrozen_detail:解冻处理说明
股东户数信息
上市公司的股东户数数据,都存放在STK_HOLDER_NUM表中,该表保存在finance包中。要查看表中的数据信息,需要使用query()函数。
单击聚宽JoinQuant量化炒股平台中的”策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,接着输入如下代码:
from jqdata import finance
q=query(finance.STK_HOLDER_NUM).filter(finance.STK_HOLDER_NUM.code=='002465.XSHE', finance.STK_HOLDER_NUM.pub_date > '2018-01-01')
df=finance.run_query(q)
df
下面显示的是2018年1月1日之后的海格通信的股东户数信息。
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下:
STK_HOLDER_NUM表的常用字段意义如下。
code:证券代码
pub_date:公告日期
end_date:截止日期
share_holders:股东总户数
a_share_holders:A股股东总户数
b_share_holders:B股股东总户数
h_share_holders:H股股东总户数
大股东减持信息
上市公司大股东减持数据,都存放在STK_SHAREHOLDERS_SHARE_CHANGE表中,该表保存在finance包中。要查看表中的数据信息,需要使用query()函数。
单击聚宽JoinQuant量化炒股平台中的”策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,接着输入如下代码:
from jqdata import finance
q=query(finance.STK_SHAREHOLDERS_SHARE_CHANGE).filter(finance.STK_SHAREHOLDERS_SHARE_CHANGE.code=='002465.XSHE')
df=finance.run_query(q)
df
下面显示的是海格通信的大股东减持信息。
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下:
STK_SHAREHOLDERS_SHARE_CHANGE表的常用字段意义如下。
code:证券代码
pub_date:公告日期
change_number:变动数量
change_ratio:变动数量占总股本比例
price_ceiling:增(减)持价格上限,公告中一般会给一个增持或者减持的价格区间,上限就是增持价格或减持价格低最高价。
after_change_ratio:变动后占比
end_date:增(减)持截止日
type:增(减)持类型,0表示增持,1表示减持。
上市公司股本变动信息
上市公司的股本变动数据,都存放在STK_CAPITAL_CHANGE表中,该表保存在finance包中。要查看表中的数据信息,需要使用query()函数。
单击聚宽JoinQuant量化炒股平台中的”策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,接着输入如下代码:
from jqdata import finance
q=query(finance.STK_CAPITAL_CHANGE).filter(finance.STK_CAPITAL_CHANGE.code=='002465.XSHE')
df=finance.run_query(q)
df
下面显示的海格通信的股本变动信息。单击工具栏运行按钮,快捷键(shift+enter),运行结果如下:
STK_CAPITAL_CHANGE表的常用字段意义如下。
code:证券代码
company_name:公司名称
change_date:变动日期
pub_date:公告日期
change_reason:变动原因
share_total:总股本。总股本=为流通股份+已流通股份, 单位:万股。
share_non_trade:为流通股份。为流通股份=发起人股份+募集法人股份+内部职工+优先股+转配股+其他为流通股+配售法人股+已发行未上市股份。
share+start:发起人股份。发起人股份=国家持股+国有法人持股+境内法人持股+境外法人持股+自然人持股。
share_management:高管股
share_management_limited:限售高管股
control_shareholder_limited:控股股东、实际控制人(受限)
core_employee_limited:核心员工(受限)