🚀 AI 一键生成 ptrade 策略代码
立即体验
👉 AI 生成代码 👈

ptrade 策略中 get_trade_days 报错“参数不可同时使用”怎么解决?

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

问题描述

策略中使用get_trade_days时,同时传入start_date和count参数后报错“参数不可同时使用”,如何正确选择日期范围参数?

/

解决方案

在 ptrade 量化平台中,调用 get_trade_days 接口时,如果同时传入 start_datecount 参数,系统会抛出“参数不可同时使用”的错误。这是因为该接口的设计逻辑中,这两种方式代表了不同的查询维度,属于互斥参数

报错原因解析

根据 ptrade API 文档,get_trade_days(start_date=None, end_date=None, count=None) 的参数规则如下:

  • start_date:指定查询的起始日期。
  • count:指定查询的交易日数量(往前推算)。

这两个参数只能二选一。你不能既告诉系统“从哪天开始”,又告诉系统“往前取多少天”,这在逻辑上会产生冲突。

正确的参数组合方式

为了正确获取指定范围的交易日期,你可以根据实际需求选择以下三种组合方式之一:

方式一:按明确的起止日期查询 (start_date + end_date)

如果你知道确切的开始和结束日期,使用这种方式。

# 获取 2016-01-01 到 2016-02-01 之间的所有交易日
trade_days = get_trade_days(start_date='2016-01-01', end_date='2016-02-01')
log.info(trade_days)

方式二:按截止日期往前推算 N 天 (end_date + count)

如果你想获取某个特定日期往前推算的 N 个交易日(包含该特定日期),使用这种方式。

# 获取 2016-02-01 往前推的 10 个交易日
trade_days = get_trade_days(end_date='2016-02-01', count=10)
log.info(trade_days)

方式三:按当前日期往前推算 N 天 (仅使用 count)

如果你想获取当前日期(回测中为当前回测日,实盘中为当天)往前推算的 N 个交易日,只需传入 count

# 获取当前日期往前推的 10 个交易日
trading_days = get_trade_days(count=10)
log.info(trading_days)

总结建议

在编写 ptrade 策略时,明确你的时间获取需求:

  • 如果是区间截取,用 start_dateend_date
  • 如果是固定长度的历史窗口,用 count(配合或不配合 end_date)。
    牢记 start_datecount 永远不要出现在同一个 get_trade_days 调用中即可避免此报错。