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

ptrade 平台 get_trading_day 报错“参数类型错误”怎么办?

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

问题描述

传入浮点数作为day参数时报错“参数类型错误”,get_trading_day函数的day参数类型要求是什么?

/

解决方案

在 ptrade 量化交易平台中,调用 get_trading_day(day) 函数时,如果传入浮点数(如 1.0-2.5)会导致“参数类型错误”。

day 参数类型要求

根据 ptrade API 文档规定,day 参数的类型必须是 整数(int

  • 正整数:表示获取当前时间数天的交易日期(例如 1 表示后一个交易日)。
  • 负整数:表示获取当前时间数天的交易日期(例如 -1 表示前一个交易日)。
  • 0:表示获取当前交易日。如果当前日期为非交易日,则返回下一交易日的日期。默认取值为 0

解决方法与正确示例

请确保传入的参数是标准的 Python 整数。如果您在计算过程中得到了浮点数,请使用 int() 函数将其转换为整数。

正确示例:

def initialize(context):
    g.security = ['600670.SS', '000001.SZ']
    set_universe(g.security)

def handle_data(context, data):
    # 正确:传入整数 1,获取后一天的交易日期
    previous_trading_date = get_trading_day(1)
    log.info(f"后一天的交易日期: {previous_trading_date}")
    
    # 正确:传入整数 -1,获取前一天的交易日期
    next_trading_date = get_trading_day(-1)
    log.info(f"前一天的交易日期: {next_trading_date}")
    
    # 如果有浮点数变量,需先转换为整数
    float_day = -2.0
    valid_day = int(float_day)
    target_date = get_trading_day(valid_day)
    log.info(f"前两天的交易日期: {target_date}")

注意:不建议获取交易所还未公布的交易日期,以免返回结果不准确。