🚀 AI 一键生成 qmt 策略代码
立即体验

QMT 筹码挖掘:利用 get_top10_share_holder 分析十大流通股东变化

qmt | 发布时间: 2026/7/27
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: QMT 筹码挖掘:利用 `get_top10_share_holder` 分析十大流通股东变化

Question: 如何在 QMT 中查询股票的十大股东和流通股东变动数据?

解决方案

在量化投资中,上市公司的筹码分布与股东结构是评估主力资金动向的重要指标。通过 QMT(迅投量化平台)提供的 Python API,开发者可以方便地提取股票的历史十大股东及十大流通股东数据。本文将详细介绍 get_top10_share_holder 接口的使用方法及实战代码。 ### 1. 接口概述 get_top10_share_holder 接口用于获取指定股票列表在特定时间段内的十大股东或十大流通股东明细数据。 #### 语法结构 python ContextInfo.get_top10_share_holder(stock_list, data_name, start_time, end_time) #### 参数说明 - stock_list: list,股票代码列表,格式如 ['600000.SH', '000002.SZ']。 - data_name: string,查询数据类型: - 'holder': 十大股东 - 'flow_holder': 十大流通股东 - start_time: string,起始时间(格式 'YYYYMMDD',如 '20200101')。 - end_time: string,结束时间(格式 'YYYYMMDD',如 '20230101')。 #### 返回值说明 接口根据查询的股票数量及季度时间跨度,返回 pandas.Seriespandas.DataFramepandas.Panel 数据结构。 返回的字段包含: - holdName: 股东名称 - holderType: 持股类型 - holdNum: 持股数量 - changReason: 变动原因 - holdRatio: 持股比例 - stockType: 股份性质 - rank: 持股排名 - status: 持股状态 - changNum: 增减数量 - changeRatio: 增减比例 --- ### 2. 策略示例:在 QMT 中提取并打印十大流通股东变动 以下代码展示了如何在 QMT 模型策略的 handlebar 函数中调用接口并提取万科A(000002.SZ)的十大流通股东信息: python #encoding:gbk def init(ContextInfo): # 设置基准和股票池 ContextInfo.set_universe(['000002.SZ']) def handlebar(ContextInfo): # 仅在最后一根 K 线上运行,避免重复提取 if not ContextInfo.is_last_bar(): return stock_code = '000002.SZ' start_date = '20210101' end_date = '20230101' # 获取十大流通股东数据 holders_df = ContextInfo.get_top10_share_holder([stock_code], 'flow_holder', start_date, end_date) print(f"=== {stock_code} 十大流通股东数据 ===") print(holders_df) --- ### 3. 应用场景与注意事项 1. 主力筹码追踪:通过分析机构投资者(如公募基金、社保基金、外资 QFII)的持股比例变动(changeRatio),判断主力资金的建仓与减持节奏。 2. 数据补充:调用财务及股东类静态数据前,请确保已在 QMT 客户端的【数据管理】界面中下载补充了最新的财务数据与历史股东数据,否则接口可能返回空值。 3. 计算效率:由于股东数据按季度更新,频繁在 handlebar 的每根 Bar 上调用会降低回测速度。建议结合 ContextInfo.is_last_bar() 或在 init 阶段进行一次性数据加载与预处理。