传入日期'2024/01/01'格式时报错“日期格式错误”,get_trade_days支持的日期格式有哪些?
/
问题描述
解决方案
在 ptrade 量化平台中,调用 get_trade_days 接口获取交易日历时,如果传入类似 '2024/01/01' 这种带有斜杠 / 的日期格式,系统会抛出“日期格式错误”的异常。
支持的日期格式
根据 ptrade API 文档,get_trade_days 函数的 start_date 和 end_date 参数仅支持以下两种字符串格式:
YYYY-MM-DD(例如:'2024-01-01')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_date与count参数是互斥的,不可同时使用。只能选择(start_date, end_date)或(end_date, count)的组合。