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

joinquant 实时数据查询:使用 get_current_data 判断股票 ST 状态与行业归属

joinquant | 发布时间: 2026/8/3
以下内容由 EasyQuant 生成。

问题描述

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

Title: joinquant 实时数据查询:使用 get_current_data 判断股票 ST 状态与行业归属

Question: 如何使用 get_current_data 快速判断某只股票当天是否是 ST 以及所属行业?

解决方案

在 JoinQuant 中使用 get_current_data 判断股票 ST 状态与行业归属

在聚宽(JoinQuant)量化回测与模拟交易中,get_current_data() 是一个非常实用的专用 API,用于获取当前单位时间(当天或当前分钟)的实时数据,如涨跌停价、是否停牌、ST 状态以及所属行业等信息。


一、get_current_data API 核心属性

通过调用 get_current_data() 返回的是一个字典(dict),Key 为股票代码,Value 为包含以下属性的对象:

  • is_st: 布尔值(True/False),判断股票当天是否是 ST 或 *ST 股票。
  • industry_code: 字符串,返回股票当前所属的行业代码。
  • paused: 布尔值(True/False),判断股票当天是否停牌。
  • name: 股票当天的名称。
  • day_open: 当天开盘价(09:27 之后可获取)。
  • high_limit / low_limit: 当天涨停价与跌停价。

注意get_current_data() 仅限在标的处于交易时段或策略运行函数(如 handle_datarun_daily 指定的函数等)中调用,且返回结果仅在当天有效,切勿跨日缓存使用。


二、代码实现示例

以下示例演示如何在每日开盘时筛选股票池,过滤掉 ST 股票并打印其行业归属:

import jqdata

def initialize(context):
    # 开启动态复权(真实价格模式)
    set_option('use_real_price', True)
    # 设置基准
    set_benchmark('000300.XSHG')
    # 每天 09:30 运行选股逻辑
    run_daily(check_stocks, time='09:30')

def check_stocks(context):
    # 定义要检查的股票池
    security_list = ['000001.XSHE', '000002.XSHE', '600000.XSHG']
    
    # 获取当前时间实时数据字典
    current_data = get_current_data()
    
    normal_stocks = []
    for stock in security_list:
        # 判断是否为 ST 或 *ST 股票
        if current_data[stock].is_st:
            log.info("股票 %s (%s) 当前处于 ST 状态,已过滤。" % (stock, current_data[stock].name))
            continue
        
        # 判断是否停牌
        if current_data[stock].paused:
            log.info("股票 %s 当前处于停牌状态,已过滤。" % stock)
            continue
            
        # 获取所属行业代码
        industry = current_data[stock].industry_code
        log.info("股票 %s 正常交易,所属行业代码: %s" % (stock, industry))
        normal_stocks.append(stock)
        
    log.info("今日可选正常股票列表: %s" % normal_stocks)

三、注意事项

  1. 按需获取机制get_current_data() 返回的 dict 初始为空,只有在访问 current_data[security] 时才会实时加载该标的的数据,这种设计大大提升了运行效率。
  2. 未来函数防范:在回测中,直接通过历史接口拿到的当天数据可能带有未来信息,而 get_current_data() 能模拟真实交易时段获取当前已知状态(如涨跌停、ST 标记、开盘价),有效规避未来函数。