🚀 AI 一键生成 joinquant 策略代码

JoinQuant平台获取high_limit涨停价返回1073741824.0是怎么回事?

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

问题描述

high_limit数据异常?

股票不是ST,也不是paused,获取high_limit的值是1073741824.0???
样例:
600815.XSHG 2013-01-08

解决方案

您好!在 JoinQuant 平台中,当您获取 high_limit(涨停价)或 low_limit(跌停价)时,如果返回了类似 1073741824.0 这样极大的数值,这并不是数据错误或系统 Bug,而是代表该股票在当天【无涨跌幅限制】

为什么会出现无涨跌幅限制?

根据 A 股交易所的交易规则,股票在以下几种特殊情况下,当天是不设涨跌幅限制的:

  1. 新股上市首日(在某些历史时期的规则下,新股首日无涨跌幅限制,或有特殊的临时停牌机制但无绝对的 10% 限制)。
  2. 重大资产重组复牌首日:股票因重大资产重组等事项长期停牌,复牌首日通常不设涨跌幅限制。
  3. 股改复牌首日:股权分置改革实施后复牌的首个交易日。
  4. 退市整理期首日或恢复上市首日等其他交易所认定的特殊情形。

对于您提到的样例 600815.XSHG(厦工股份)在 2013-01-08,该股当时很可能是经历了某种重大事项(如增发、重组等)停牌后的复牌首日,触发了交易所“复牌首日无涨跌幅限制”的规则。为了在程序中表示“无穷大”或“无限制”,底层数据系统通常会赋予一个极大的数值(如 $2^{30} = 1073741824$)。

在策略中如何处理?

在编写量化策略时,如果您需要使用 high_limit 来判断是否涨停,建议加入对这种“极大值”的过滤,以避免计算错误或逻辑异常。

代码示例:

def handle_data(context, data):
    security = '600815.XSHG'
    current_data = get_current_data()
    
    # 获取涨停价
    high_limit = current_data[security].high_limit
    current_price = data[security].close
    
    # 判断是否无涨跌幅限制(设定一个合理的阈值,如 10000)
    if high_limit > 10000:
        log.info(f"{security} 今日无涨跌幅限制")
        # 执行无涨跌幅限制时的交易逻辑
    else:
        # 正常的涨停判断逻辑
        if current_price >= high_limit:
            log.info(f"{security} 已涨停")

总结:
遇到 1073741824.0 请放心,这代表当天该股不受 10% 或 5% 的涨跌幅限制。在代码中加一个简单的阈值判断(如 > 10000)即可完美兼容此类特殊日期。