技术文章 返回帮助中心

帮助中心 > 教程文章 > 聚宽常见报错

聚宽策略常见报错与排查:数据不足、无成交、下单失败怎么处理

灵灵犀Quant 技术团队 原创 于 2026-10-03 发布·阅读约 6 分钟·分类:聚宽实战
摘要:聚宽写策略时最常见的几类报错与“看起来没报错但就是不对”的情况,按类型给出定位思路与改法。

前置条件

在聚宽写过至少一个能跑回测的策略,遇到过报错或结果明显不对的情况。

手把手操作

1

先把报错分成三类

环境/语法类(缺库、缩进、变量未定义):报错信息里通常带文件与行号,直接定位。

数据类(取不到数据、数据为空):回测日志里会出现空值或异常,常见于停牌、次新股、指数权重成分外标的。

逻辑类(不报错但没交易):条件永远不成立、下单函数用错、资金不足被拒。

小贴士:遇到报错先看“第一个”报错,后面的多半是连带错误。
2

“数据不足/取不到数据”怎么办

核对标的代码格式与后缀,确认历史区间足够长(策略预热期要留够)。

停牌、退市、次新股在部分时间段没有行情,取不到属正常,需要做空值保护。

用到财务或因子数据时,注意财报披露延迟,避免用到未来数据。

小贴士:做防御性写法:取不到数据就跳过当天,而不是让整个策略崩掉。
3

为什么回测没有任何成交

检查交易条件是否真的会触发(把条件打印出来看几次)。

检查资金:账户资金不足、单笔金额过大、手续费扣完后不足都会导致下单失败。

检查下单函数:数量单位(股/手)、是否用了目标持仓类函数、是否下成了“不可交易”的标的。

小贴士:回测里看到“已下单但未成交”,通常是没有对手盘或价格越界(涨跌停)。
4

下单失败与成交假设

回测的成交是模拟的,遇到涨跌停、停牌、成交量不足,模拟成交可能比现实乐观。

把滑点与手续费设成接近真实的值,回测结果才有参考意义。

小贴士:实盘前一定用模拟盘或小额资金验证一遍,别直接拿回测结果上大资金。

新手容易踩的坑

  • 使用未来函数:回测里用了当时拿不到的数据,结果虚高。
  • 混用不同运行频率:同时用按天与按分钟的处理函数,容易重复触发。
  • 忽略复权:用不复权价格算信号,除权日会凭空出现“暴跌”。
  • 条件里写死日期:换时间段回测就失效。

相关问答

报“数据不足”优先检查什么?

先看标的在该区间是否有行情(停牌、次新股)、代码后缀是否正确、策略预热期是否够长。

为什么回测显示下单了却没成交?

多半是价格越界(涨/跌停)、标的停牌,或模拟成交量不足;回测的成交假设比实盘乐观是常态。

聚宽能用第三方库吗?

支持常用的 Python 库,但环境有限制;不确定的库先在策略里试探性导入,别等回测跑到一半才发现。

本文用到的链接

相关文章

友情链接:聚宽 · QMT · 隐私政策 · 灵犀Quant V6.0版 · 京ICP备2026136003号