金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 675|回复: 7

context.now

[复制链接]

6

主题

36

帖子

36

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
发表于 2024-4-26 10:44 | 显示全部楼层 |阅读模式
之前测试结果是回测起始日当天之before_trading()中context.now为前一日,handle_bar()当中context.now为当日,这个和实盘逻辑符合。

今天按这个逻辑写代码发现又是回测起始日当天之before_trading()和handle_bar()当中context.now都为当日,如下图
截图202404261033437389.png

另外,再如下图,增加几日的回测,结果出现如下变化

请教一下,金字塔对context.now以及get_previous_trading_date()的定义规则,现在感觉用起来有点混乱。
主要应对程序异常退出或重启后,要对之前数据重取,需要对数据末尾时间和重启时间比对校验。



回复

使用道具 举报

6

主题

36

帖子

36

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-4-26 10:49 | 显示全部楼层
补充图
截图202404261046473745.png
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-4-26 11:15 | 显示全部楼层
因为无法取到开始日期之前的数据,自然是第一个位置无法取到之前的日期了。你限定的日期摆在那,默认最早日期就是开始日期。
除了第一个位置,后续打印结果来看 都是正常的。
截图202404261111238363.png



我们的建议是如果要在某个时段回测,同时要获取这个时间段之前的数据,最好是回测区间设置大点 大于实际要回测的时间段,然后实际在代码逻辑里限制有效的回测区间。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

36

帖子

36

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-4-26 11:55 | 显示全部楼层
也想过是第一个位置无法取到之前的日期的问题,但是之前的测试结果却是起始日当天之before_trading()中context.now为前一日,handle_bar()当中context.now为当日,

回测起始日为8.22,终止日8.22
红圈是before_trading()中'print(context.now)'
绿圈是exit()中'print(context.now)'
以为在本地历史数据齐全的前提下,这一点并不受设置的起始日影响。
但今天相同代码,测试的结果却是 对应红圈里before_trading()中'print(context.now)' 为 2024-04-26 11:48:59,208 > 2023-08-22 00:00:00

感觉有点混乱。
截图202404261140444245.png
回复

使用道具 举报

6

主题

36

帖子

36

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-4-26 12:19 | 显示全部楼层
在实盘中,是不是可以理解为看的就是本机保存历史数据了,只要历史数据齐全,就能正确取到?

另外请问在长假前一天没有夜盘,假后第一天集合竞价在上午开盘前的情况,before_trading()是否会在当天08:30触发?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-4-26 13:03 | 显示全部楼层
“在实盘中,是不是可以理解为看的就是本机保存历史数据了,只要历史数据齐全,就能正确取到?”是这样的。

“另外请问在长假前一天没有夜盘,假后第一天集合竞价在上午开盘前的情况,before_trading()是否会在当天08:30触发?” 这个倒是没留意过,需要测试核实下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

36

帖子

36

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-4-27 11:45 | 显示全部楼层
如下图,在没升级7.0之前的6.34版本,context.now在before_trading()就是前一交易日

难怪之前运行都没出错,今天升级7.0就报错。

是7.0版本对这个conext.now机制做了改变?按理不应该

对context.now,如我另一贴 https://www.weistock.com/bbs/for ... id=15701&extra= 所述,一直还有不解,不知和本贴所问是否也有关联?
截图202404270108288059.png
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-4-28 09:23 | 显示全部楼层
这边咨询了下,目前确认下来 在回测中 before_trading  中的context.now  在回测第一个K位置,就是返回当前的日期,不再往前追溯.   
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 05:43 , Processed in 0.162302 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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