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

ptrade 调用 get_trade_days 报错“日期格式错误”怎么办?

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

问题描述

传入日期'2024/01/01'格式时报错“日期格式错误”,get_trade_days支持的日期格式有哪些?

/

解决方案

在 ptrade 量化平台中,调用 get_trade_days 接口获取交易日历时,如果传入类似 '2024/01/01' 这种带有斜杠 / 的日期格式,系统会抛出“日期格式错误”的异常。

支持的日期格式

根据 ptrade API 文档,get_trade_days 函数的 start_dateend_date 参数仅支持以下两种字符串格式

  1. YYYY-MM-DD (例如:'2024-01-01'
  2. YYYYMMDD (例如:'20240101'

错误原因分析

您传入的 '2024/01/01' 包含了平台无法解析的斜杠字符,因此导致了格式错误。在编写策略时,必须严格按照 API 规定的格式传入日期字符串。

正确的代码示例

以下是正确调用 get_trade_days 的示例代码:

def initialize(context):
    # 方式一:使用 YYYY-MM-DD 格式
    trade_days_1 = get_trade_days('2024-01-01', '2024-01-31')
    log.info("1月份交易日 (格式1): %s" % trade_days_1)
    
    # 方式二:使用 YYYYMMDD 格式
    trade_days_2 = get_trade_days('20240101', '20240131')
    log.info("1月份交易日 (格式2): %s" % trade_days_2)
    
    # 方式三:结合 count 参数使用 (注意 start_date 和 count 不能同时使用)
    trade_days_3 = get_trade_days(end_date='2024-01-31', count=10)
    log.info("1月底前10个交易日: %s" % trade_days_3)

def handle_data(context, data):
    pass

补充说明

  • 时间范围限制start_date 最早不能超过 1990 年。如果 end_date 大于今年,则至多返回截止到今年的数据。
  • 参数互斥start_datecount 参数是互斥的,不可同时使用。只能选择 (start_date, end_date)(end_date, count) 的组合。