金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3268|回复: 13

时间

[复制链接]

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
发表于 2024-3-10 14:03 来自手机 | 显示全部楼层 |阅读模式
请教老师,调用时间那个函数,在收盘时间,调用下一个时间段的时间怎么处理?比如尿素,收盘的时候,往后偏移一个k,就没有返回值了,但是我要对下一个时间点做写盘,这样就写不了
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2024-3-10 18:42 | 显示全部楼层
另外请教一下系统指标比如MACD,系统指标运行是序列模式下的。那么我如果把MACD的相关计算放到系统指标里面运行,在策略模型里面对这个结果进行调用。  对比直接把MACD的所以东西放进策略模型逐K模式下直接计算,两者之间我感觉系统指标运行的效率会更高,不知道对不对。(差异性可能并不是很大,但是如果遇到多品种,加上多种这样的方式,是不是可以考虑优化,反正都要用,那个好就用那个老师指导下)
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2024-3-11 08:13 来自手机 | 显示全部楼层
另外请教下,for i to 板块 do begin 调用1;调用2;调用3;end这种写法,和单独三次调用都单独进行板块循环相比,前者是不是更好?前者是不是三次调用只需要一次循环就完成,后者是不是三次调用需要三次循环?
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2024-3-11 08:24 来自手机 | 显示全部楼层
还有上次调用任意周期k线走完的时间那个函数,我如果在1分钟周期要取大于一分钟周期的全部k线走完的时间,那这个代码执行起来肯定比较费力。那么我如果能通过读写盘的方式代替前面的调用方式取得对应k线的时间,会不会比调用的方式好?写盘数据怎么生成不用考虑。上诉麻烦老师一一解答,谢谢
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-11 09:04 | 显示全部楼层
“比如尿素,收盘的时候,往后偏移一个k,就没有返回值了,但是我要对下一个时间点做写盘,这样就写不了” 调用未来的时间?refx就行了,序列模式下可以用未来。前提是有未来,如果在最新K上,你还是无法获取这个时间,因为根本没有那个K存在。而写盘通常都是在最新K的吧,所以你这个做法没有意义。
我的建议是你把时间转成秒数,再加上当前周期秒数,然后再转换回来。但是这种写法,在中间有休息的时候直接也是无效的。   




另外请教下,for i to 板块 do begin 调用1;调用2;调用3;end这种写法,和单独三次调用都单独进行板块循环相比,前者是不是更好?前者是不是三次调用只需要一次循环就完成,后者是不是三次调用需要三次循环?” 这个我不知道,你这个涉及到非常底层的实现原理了。我这边是没法回答你的。而且我觉得使用pel的场景下 根本不需要关注到这个层面的。  
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-11 09:10 | 显示全部楼层
“那么我如果能通过读写盘的方式代替前面的调用方式取得对应k线的时间,会不会比调用的方式好”我可能明确告诉你你读写文件的方式根本不见得比你直接跨周期调用快。 本质上这个2 做法都是从一份数据里调用,那你觉得我们从内存中调用快,还是再读下本地盘快?  
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2024-3-11 09:24 | 显示全部楼层
技术009 发表于 2024-3-11 09:10
“那么我如果能通过读写盘的方式代替前面的调用方式取得对应k线的时间,会不会比调用的方式好”我可能明确 ...

只读并不写,提前写好的东西,我是觉得读盘是真正最新K下完成的,调用函数就不一样了
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-11 09:30 | 显示全部楼层

从我的角度来看,就算有区别,也根本不会大到影响到你指标执行。  你真觉得有区别,你可以自行测试下运行效率。如果效率差别不大,就没必要这样折腾。代码搞复杂,你维护起来都很麻烦。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2024-3-11 09:36 | 显示全部楼层
技术009 发表于 2024-3-11 09:30
从我的角度来看,就算有区别,也根本不会大到影响到你指标执行。  你真觉得有区别,你可以自行测试下运行 ...

其实不复杂,CALLSTOCK('',vttime,24,4);换成GETINIFILE();读取的内容是固定的,就区分节假日开盘第一天,其他都是固定的,我只要完成一次写盘 保存好,后续每个K都能读到对应的节点的,如果单个周期下来可能确实影响不大,但是多品种。全周期时间,这个差距就很大了,这个问题我等写盘内容完成了测试下看看运行时间,。
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2024-3-11 09:46 | 显示全部楼层
技术009 发表于 2024-3-11 09:30
从我的角度来看,就算有区别,也根本不会大到影响到你指标执行。  你真觉得有区别,你可以自行测试下运行 ...

像这样的,我在1分钟周期,每个K只执行一次47个品种的轮询并用msgout输出。测试是只轮询和输出了一次。
1:
for J=1 TO STKCOUNT('连续合约') do
              BEGIN
                     连续合约:=STKINDI('‘,全周期背离调用.背离区间',0,1);

msgout
END
按测试输出的结果看上述轮询是一次循环
2:
for J=1 TO STKCOUNT('连续合约') do
              BEGIN
                     连续合约1:=STKINDI('‘,全周期背离调用.背离区间1',0,1);

连续合约2:=STKINDI('‘,全周期背离调用.背离区间2',0,1);
连续合约3:=STKINDI('‘,全周期背离调用.背离区间3',0,1);
msgout
END

这样按从上到下的原则 按道理这个循环也是只执行一次就解释吧?如果把连续合约1,连续合约2,连续合约3单独学1那样循环,那就的循环47个品种执行次。···我的理解是这样 不知道对不对··

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 15:37 , Processed in 0.146865 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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