金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1110|回复: 17

金字塔python回测时,发现get_trading_dates存在问题。

[复制链接]

4472

主题

4550

帖子

4575

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-10 15:37 | 显示全部楼层 |阅读模式
请教:金字塔python回测时,发现get_trading_dates存在问题:  我调用get_trading_dates去获取交易日历,但是获取不到想要的起始(或附近)的日历.
返回的日历结果说明,起始日期被限制了. 补充说明:我传的日期是符合要求的日期,并非不合理日期
以下是打印日志:


截图202503101537273017.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9824

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-10 15:43 | 显示全部楼层
劳烦提供下你的测试代码。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

139

帖子

139

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-3-10 16:03 | 显示全部楼层
# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
import datetime
from PythonApi import *

#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    # 在context中保存全局变量  
    tmp_beg_dt = context.run_info.start_date  - datetime.timedelta(days=365*5) #PS:向前推5年
    tmp_end_dt = context.run_info.end_date + datetime.timedelta(days=365*1) #PS:向后推1年
    ret_list = get_trading_dates(tmp_beg_dt, tmp_end_dt)
    print(f"get_trading_dates({tmp_beg_dt}, {tmp_end_dt}) ret ret_list[0]:{ret_list[0]} ret_list[-1]:{ret_list[-1]} ")
    # print("策略启动") #调试打印输出
   

# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):
    pass
# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
    pass
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次。 --(选择实现)
def after_trading(context):
    pass
   
回复

使用道具 举报

17

主题

139

帖子

139

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-3-10 16:04 | 显示全部楼层
配置截图
截图202503101603498632.png
回复

使用道具 举报

37

主题

9824

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-10 17:04 | 显示全部楼层
你本地日线数据不足。get_trading_dates是基于日线统计的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

139

帖子

139

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-3-11 12:58 | 显示全部楼层
技术006 发表于 2025-3-10 17:04
你本地日线数据不足。get_trading_dates是基于日线统计的。

谢谢!
回复

使用道具 举报

17

主题

139

帖子

139

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-3-11 15:08 | 显示全部楼层
技术006 发表于 2025-3-10 17:04
你本地日线数据不足。get_trading_dates是基于日线统计的。

补充了日线还是不行.

代码及日志

代码及日志

版本号

版本号
回复

使用道具 举报

17

主题

139

帖子

139

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-3-11 15:13 | 显示全部楼层
数据补充之截图
截图202503111513046533.png
回复

使用道具 举报

1

主题

1026

帖子

1036

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-11 15:13 | 显示全部楼层
你确定你补充的是SC0000的日线数据?
回复

使用道具 举报

17

主题

139

帖子

139

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-3-11 15:14 | 显示全部楼层
技术015 发表于 2025-3-11 15:13
你确定你补充的是SC0000的日线数据?

你好!  
我补充了全部期货市场的数据

补充内容 (2025-3-11 15:19):
我更新了版本到V7.10

补充内容 (2025-3-11 15:26):
这个get_trading_dates跟回测的级别有没有关系,比如10m级别的回测,也是用日K来判断本地最早日期?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-4-18 11:25 , Processed in 0.249625 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表