# 导入必要库
from gm.api import *  # 掘金量化API库
import datetime       # 时间处理库

# 设置掘金量化平台的访问令牌(需替换为实际Token)
set_token("xxxx")

# 获取当前日期和时间,分割成日期和时间两部分
current_date, current_time = str(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')).split(" ")

# --------------------- 核心参数定义 ---------------------
# 指数代码(此处为上证50指数,格式:交易所.指数代码)
index = 'SHSE.000016'
# --------------------- 数据获取逻辑 ---------------------
# 获取指数成分股数据
# 参数说明:
# - index: 指数代码(字符串类型,如"SHSE.000016")
# - trade_date: 查询日期(字符串类型,需为有效交易日)
history_data = stk_get_index_constituents(index=index, trade_date=current_date)

# --------------------- 成分股代码提取 ---------------------
try:
    # 从返回的DataFrame中提取成分股代码列表
    # 函数返回的DataFrame结构示例:
    # | index        | symbol       | weight | trade_date  | ...(其他列)|
    # |--------------|--------------|--------|-------------|--------------|
    # | SHSE.000016  | SHSE.600519  | 0.05   | 2025-02-13  | ...          |
    symbol_list = history_data["symbol"].tolist()  # 提取"symbol"列转为列表
except KeyError:
    # 捕获列名错误(若API返回结构变化)
    raise ValueError("DataFrame结构异常:缺少'symbol'列,请检查API文档")

# 检查成分股列表是否为空(避免后续接口报错)
if not symbol_list:
    raise ValueError("成分股代码列表为空,可能原因:无数据/日期无效/指数代码错误")

# --------------------- 财务数据获取 ---------------------
# 获取成分股的财务衍生指标
# 参数说明:
# - symbols: 股票代码列表(格式:["SHSE.600519", "SZSE.000001", ...])
# - fields: 查询字段(此处为"oper_prof_yoy",表示营业利润同比增长率)
# - date: 财务数据截止日期(通常与成分股日期一致)
# - df: 返回DataFrame格式(True)而非dict格式
df = stk_get_finance_deriv_pt(
    symbols=symbol_list,
    fields='oper_prof_yoy',
    date=current_date,
    df=True
)

# 打印前5行数据(示例输出):
# | symbol       | oper_prof_yoy | date       |
# |--------------|---------------|------------|
# | SHSE.600519  | 15.23         | 2025-02-13 |
print(df.head(5))

截止2025/2/16日,在原程序上修改的内容如下:

  1. get_history_constituents函数已经弃用,替换为stk_get_index_constituents
  2. start_date已经替换为trade_date
  3. stk_get_index_constituents返回的DataFrame结构为
    | index | symbol | weight | trade_date | …(其他列)|
    | SHSE.000016 | SHSE.600519 | 0.05 | 2025-02-13 | … |
  4. get_fundamentals _n替换为stk_get_finance_deriv_pt
  5. 增长率NPGRT替换为oper_prof_yoy营业利润同比增长率

程序输出结果为:
在这里插入图片描述
在这里插入图片描述

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐