欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 运行周期判断

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3532人关注过本帖树形打印复制链接

主题:运行周期判断

帅哥哟,离线,有人找我吗?
yoyoma_2008
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:753 积分:201 威望:0 精华:0 注册:2012/10/29 8:53:25
运行周期判断  发帖心情 Post By:2018/6/25 19:50:53    Post IP:180.169.30.6[只看该作者]

我想在大于10s以上的周期中执行如下代码,

这个怎么表达?有没有查询返回周期的函数,如果没有能不能加一下

目的就是希望在很小的周期下不用执行下面很复杂的代码了,只要在大周期运行即可

 回到顶部
帅哥哟,离线,有人找我吗?
yoyoma_2008
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:753 积分:201 威望:0 精华:0 注册:2012/10/29 8:53:25
  发帖心情 Post By:2018/6/25 19:59:30    Post IP:180.110.124.213[只看该作者]

公式里面有个使用周期,这个我觉得不能满足我的要求,我想要的是大于10s的所有周期,这个有没有解决办法

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2018/6/26 8:42:39    Post IP:180.169.30.6[只看该作者]

没有这类函数,

你可以通过下下面方式处理

aa:VALUEWHEN(TODAYBAR=1,time);
bb:VALUEWHEN(TODAYBAR=2,time);
M1:TIMETOT0(BB)- TIMETOT0(aa);

 

[此贴子已经被作者于2018/6/26 8:44:54编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/6/26 13:38:24    Post IP:180.169.30.6[只看该作者]



aa和bb取的是第一个K和第二个K的时间。
然后做一个差值,如差值大于10s,说明大于10s。其他的以此类推。


[此贴子已经被作者于2018/6/26 14:00:49编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
yoyoma_2008
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:753 积分:201 威望:0 精华:0 注册:2012/10/29 8:53:25
  发帖心情 Post By:2018/6/26 15:15:49    Post IP:117.89.226.9[只看该作者]

怎么让这段代码在逐K计算仅刷最后一根的模式中,执行一次
variable:yyy=0;
if yyy=0 then 
begin
aa:=VALUEWHEN(TODAYBAR=1,time);
bb:=VALUEWHEN(TODAYBAR=2,time);
M1:=TIMETOT0(BB)- TIMETOT0(aa);
yyy:=1;
end

这样写可以只执行一次吗?

 回到顶部
帅哥哟,离线,有人找我吗?
yoyoma_2008
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:753 积分:201 威望:0 精华:0 注册:2012/10/29 8:53:25
  发帖心情 Post By:2018/6/26 15:17:35    Post IP:117.89.226.9[只看该作者]

你发的代码还有点问题,就是不能用于日线以上的周期,我希望日线以上的周期也要执行后续代码


使用你这个代码后,我发现日线以上周期都没有执行后续代码了

 回到顶部
帅哥哟,离线,有人找我吗?
yoyoma_2008
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:753 积分:201 威望:0 精华:0 注册:2012/10/29 8:53:25
  发帖心情 Post By:2018/6/26 15:19:02    Post IP:117.89.226.9[只看该作者]

但是编译不通过,说VALUEWHEN不能用在if控制中,这该怎么办

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2018/6/26 15:41:34    Post IP:180.169.30.6[只看该作者]

分笔周期和日线周期以上的,都不行。你自己通过DATATYPE组合使用。

 

VALUEWHEN这个是必须放在if外头,

 


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/6/26 15:45:24    Post IP:180.169.30.6[只看该作者]

一般不能放在if条件下的函数等,都需要放到if外部先计算好,然后在if语句下面引用计算好的结果。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2018/6/26 15:50:37    Post IP:180.169.30.6[只看该作者]

以下是引用yoyoma_2008在2018/6/26 15:15:49的发言:
怎么让这段代码在逐K计算仅刷最后一根的模式中,执行一次
variable:yyy=0;
if yyy=0 then 
begin
aa:=VALUEWHEN(TODAYBAR=1,time);
bb:=VALUEWHEN(TODAYBAR=2,time);
M1:=TIMETOT0(BB)- TIMETOT0(aa);
yyy:=1;
end

这样写可以只执行一次吗?

你不要想着脱离公式执行的刷新机制。你前面说的是想控制策略只在10秒周期以上运行,直接把我给你的代码这个放在策略最前面,不满足直接结束运行

aa:=VALUEWHEN(TODAYBAR=1,time);
bb:=VALUEWHEN(TODAYBAR=2,time);
M1:=TIMETOT0(BB)- TIMETOT0(aa);
if M1<10 then  exit;
 
 

 



编程无捷径,技巧靠积累。
 回到顶部
总数 11 1 2 下一页