Skip to content

常见问题

回测

回测支持品种

  • 沪深 A 股、场内基金(ETF、LOF)、可转债
  • 暂不支持:期货、北交所、期权

回测业务规则

股票

合法挂单时间
  • 9:15-9:20:开盘集合竞价(可申报,可撤单)
  • 9:20-9:25:开盘集合竟价(可申报,不可撤单)
  • 9:30-11:30:连续竞价(早市)
  • 13:00-14:57:连续竞价(午市)
  • 14:57-15:00:收盘集合竟价(可申报,不可撤单)
  • 其他时间下单都会报错
委托逻辑
  • 委托价格确定
    • 限价单:委托价格
  • 委托数量确定
    • 市价单:min(按照涨停价计算的最大可买,单笔委托上限)
    • 限价单:
      • 买入:min(按照委托价计算的最大可买量,单笔委托上限)
      • 卖出:min(持仓量,单笔委托上限)
撮合逻辑
  • 以真实(不复权)价格撮合

  • 撮合条件:

    • 涨跌停范围内撮合:
      • 买入、开多或平空操作时,当 “最新价 + 滑点” 处于涨跌停区间内,将进行交易撮合,委托价需大于等于 “最新价 + 滑点”。
      • 卖出、开空或平多操作时,当 “最新价 - 滑点” 处于涨跌停区间内,将进行交易撮合,委托价需小于等于 “最新价 - 滑点”。
    • 涨跌停特殊情况:若标的的 “最新价 + 滑点” 达到或超过涨停价,或“最新价 - 滑点” 达到或低于跌停价时:
      • 跌停时,市价卖单将被撤销;涨停时,市价买单将被撤销。
      • 限价单则会挂单等待后续撮合。
  • 成交价格确定

    • 市价单
      • 成交价格为 “最新价 + 滑点”。
      • 在开盘时刻运行时,最新价取开盘价。
      • 其他情况下,最新价为上一分钟的最后一个价格或上一个 tick 的最新价。
    • 限价单:成交价格就是委托价格
  • 成交数量确定

    • 满足撮合条件时,成交量不得超过当日总成交量乘以 order_volume_ratio。
    • 市价单:超出当前撮合频率的最大成交量(如日频就是当日成交量,分钟频率就是当前这一分钟的成交量)的剩余部分将撤单。
    • 限价单:超出当前撮合频率的最大成交量的部分将按委托价挂单,日频收盘清算,分钟频率会继续挂单。
清算规则
  • 收盘清算:清理未成交订单,返还冻结的金额和冻结的持仓
  • 盘后清算:盘后会校验账户全天交易数据
手续费规则
  • 印花税根据历史规则计算,按双边收取
  • 支持自定义佣金比例
分红配送

支持分红、送转股,不支持配股

委托校验

支持验资、验券、验量、验价格

资金调整

暂不支持对账户资金的转入转出

挂单冻结
  • 买入冻结资金(包含手续费)
  • 卖出冻结持仓
  • 市价买单是以涨停价冻结资金

从聚宽转移问题

关于财务函数

  • 我们的财务函数用法和聚宽不一致
  • 我们的单位和聚宽不一致,我们统一是元/股

关于复权

  • 我们采用精确复权,聚宽采用模糊复权。计算复权的时候(以分红为例)
    • 模糊复权:先计算复权因子 再乘以/除以
    • 精确复权:直接 加/减

关于回测撮合:我们的回测撮合更贴近实盘

  • 我们使用真实价格成交的,聚宽需要开启动态复权模式(真实价格)
  • 我们的市价单只做一次撮合,不持续挂单;会对比那一分钟的成交量,超过可成交量、多的部分撤单。聚宽会全部成交,不做成交量检验
  • 我们在计算市价时,会按照涨停价计算最大可买。而按照聚宽的算法算出的成交额会超过金额。导致交易数据和聚宽不一样,回测结果也就有区别

关于行情数据

  • 日线上,聚宽采用history/attribute_history函数时会截止到前一天,我们的使用get_price设置end_date需要设置前一天context.previous_date
  • get_price我们默认返回的是numpy格式,计算效率更高。为方便转移,需要设置df=True返回dataframe

文档版本: 1.0.0 | 发布于 2025-01-29