金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3433|回复: 7

求助:收盘后到开盘前之间的时间设置成收盘时间,如何写代码?

[复制链接]

8

主题

147

帖子

147

积分

等级: 免费版

注册:
2021-6-6
曾用名:
发表于 2022-6-28 17:08 | 显示全部楼层 |阅读模式
求助:有啥代码 可以判断当下时间不是开盘-收盘之间的时间吗?
需要把收盘后到开盘之间的时间设置成收盘时间,代码里需要!商品期货 有早晚9点开盘的,15点 15.15分钟 收盘的,自己写起来有难度,我初步写了一个如下,请大神修改。

T0:=CURRENTTIME;
T1:=IIF(T0>CLOSETIME(0)  AND T0<OPENTIME(1) ,CLOSETIME(0),T0);
不过这里的T1 我觉得有问题的,如何修改啊?


回复

使用道具 举报

8

主题

147

帖子

147

积分

等级: 免费版

注册:
2021-6-6
曾用名:
 楼主| 发表于 2022-6-28 17:13 | 显示全部楼层
T0:=CURRENTTIME;
T1:=IIF(OPENTIME(1)=210000 AND T0>CLOSETIME(0)  AND T0<OPENTIME(1) ,CLOSETIME(0),IIF(OPENTIME(1)=9000 AND NOT(T0>=OPENTIME(1) AND T0<=CLOSETIME(0),CLOSETIME(0),T0);

这样写 可以吗?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-6-29 09:06 | 显示全部楼层
或许你可以判断 CURRENTTIME 和DYNAINFO(207)   后者是行情驱动的。没有行情时候 是一个定值了就。

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

使用道具 举报

8

主题

147

帖子

147

积分

等级: 免费版

注册:
2021-6-6
曾用名:
 楼主| 发表于 2022-6-29 17:32 | 显示全部楼层
技术009 发表于 2022-6-29 09:06
或许你可以判断 CURRENTTIME 和DYNAINFO(207)   后者是行情驱动的。没有行情时候 是一个定值了就。

DYNAINFO(207)  我试验过,交易不活跃的话,时间是跳跃的,不精准。
currenttime 可以做到精准时间控制。。。

现在就是想 收盘后到开盘前 之间的时间 赋值为固定的收盘时间,好用于代码控制。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-6-30 08:19 | 显示全部楼层
T0:=TIMEZONECONVER(CURRENTTIME);
T1:if(t0>CLOSETIME(0) or t0<OPENTIME(1),CLOSETIME(0),1);//在开盘-收盘 区间内返回1,否则返回收盘时间

就直接当前时间转成金字塔时间,然后判断是否在第一个开盘时间 和最后一个收盘时间之间。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

8

主题

147

帖子

147

积分

等级: 免费版

注册:
2021-6-6
曾用名:
 楼主| 发表于 2022-6-30 09:45 | 显示全部楼层
技术009 发表于 2022-6-30 08:19
T0:=TIMEZONECONVER(CURRENTTIME);
T1:if(t0>CLOSETIME(0) or t0

谢谢,我曾试过这个转换,但是不是很熟悉金字塔时间,最后没搞好!
我再试试你这个转换方法。
回复

使用道具 举报

8

主题

147

帖子

147

积分

等级: 免费版

注册:
2021-6-6
曾用名:
 楼主| 发表于 2022-6-30 10:07 | 显示全部楼层
技术009 发表于 2022-6-30 08:19
T0:=TIMEZONECONVER(CURRENTTIME);
T1:if(t0>CLOSETIME(0) or t0

我试验了下,北京时间+4小时 =  金字塔时间
有夜盘的开盘时间 收盘时间  01 19
那么 有夜盘的 非交易时段K线外-北京时间15-21  ---金字塔时间 19-23.59    0-1
北京时间转换成金字塔时间。。。。大于收盘 小于开盘 OK

没夜盘的开盘时间 收盘时间  13 19
那么 没夜盘的 非交易时段K外北京时间15-9  ---金字塔时间 19-23.59    0-13
北京时间转换成金字塔时间。。。。大于收盘 小于开盘 OK



补充内容 (2022-6-30 10:09):
要转换三个时间 当下 开盘 收盘 再去比较,转换成金字塔时间,开盘收盘 就一天 连续的,之外的就好处理

补充内容 (2022-6-30 10:37):
T_O:=TIMEZONECONVER(OPENTIME(1));
T_C:=TIMEZONECONVER(CLOSETIME(0));

T0:=CURRENTTIME;
T1:=TIMEZONECONVER(T0);
T2:IIF(T1>T_C OR T1<T_O,CLOSETIME(0),T0),nodraw;
T3:=timetot0(CLOSETIME(0))-timetot0(T2);

//T3:=timetot0(CLOSETIME(0))-timetot0(DYNAINFO(207));
abb:=(T3<=5 AND T3>=0) OR NOT(ISLASTBAR);
IF ABB THEN BEGIN
回复

使用道具 举报

8

主题

147

帖子

147

积分

等级: 免费版

注册:
2021-6-6
曾用名:
 楼主| 发表于 2022-6-30 10:27 | 显示全部楼层
技术009 发表于 2022-6-30 08:19
T0:=TIMEZONECONVER(CURRENTTIME);
T1:if(t0>CLOSETIME(0) or t0

T_O:=TIMEZONECONVER(OPENTIME(1));
T_C:=TIMEZONECONVER(CLOSETIME(0));

T1:=TIMEZONECONVER(CURRENTTIME);
T2:=IIF(T1>T_C OR T1<T_O,CLOSETIME(0),CURRENTTIME);
T3:=timetot0(CLOSETIME(0))-timetot0(T2));

abb:=(T3<=5 AND T3>=0) OR NOT(ISLASTBAR);
if abb then begin

...
end

这个T3就是我要的时间,K结束收盘前 几秒 精确时间执行代码,同时图表上也显示正常。
比下方这个时间控制要精确多了。。。
//T3:=timetot0(CLOSETIME(0))-timetot0(DYNAINFO(207));
abb:=(T3<=5 AND T3>=0) OR NOT(ISLASTBAR);

补充内容 (2022-6-30 10:32):
云服务器时间精确,如果是家里 办公室本地电脑,时间就不大精确,还是建议使用
T3:=timetot0(CLOSETIME(0))-timetot0(DYNAINFO(207));
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-3 10:05 , Processed in 0.113601 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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