以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 运行周期判断 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=164153) |
-- 作者:yoyoma_2008 -- 发布时间:2018/6/25 19:50:53 -- 运行周期判断 我想在大于10s以上的周期中执行如下代码, 这个怎么表达?有没有查询返回周期的函数,如果没有能不能加一下 目的就是希望在很小的周期下不用执行下面很复杂的代码了,只要在大周期运行即可
|
-- 作者:yoyoma_2008 -- 发布时间:2018/6/25 19:59:30 -- 公式里面有个使用周期,这个我觉得不能满足我的要求,我想要的是大于10s的所有周期,这个有没有解决办法 |
-- 作者:wenarm -- 发布时间:2018/6/26 8:42:39 -- 没有这类函数, 你可以通过下下面方式处理 aa:VALUEWHEN(TODAYBAR=1,time);
[此贴子已经被作者于2018/6/26 8:44:54编辑过]
|
-- 作者:FireScript -- 发布时间:2018/6/26 13:38:24 -- aa和bb取的是第一个K和第二个K的时间。 然后做一个差值,如差值大于10s,说明大于10s。其他的以此类推。 [此贴子已经被作者于2018/6/26 14:00:49编辑过]
|
-- 作者: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 这样写可以只执行一次吗? |
-- 作者:yoyoma_2008 -- 发布时间:2018/6/26 15:17:35 -- 你发的代码还有点问题,就是不能用于日线以上的周期,我希望日线以上的周期也要执行后续代码 使用你这个代码后,我发现日线以上周期都没有执行后续代码了
|
-- 作者:yoyoma_2008 -- 发布时间:2018/6/26 15:19:02 -- 但是编译不通过,说VALUEWHEN不能用在if控制中,这该怎么办 |
-- 作者:admin -- 发布时间:2018/6/26 15:41:34 -- 分笔周期和日线周期以上的,都不行。你自己通过DATATYPE组合使用。
VALUEWHEN这个是必须放在if外头,
|
-- 作者:FireScript -- 发布时间:2018/6/26 15:45:24 -- 一般不能放在if条件下的函数等,都需要放到if外部先计算好,然后在if语句下面引用计算好的结果。 |
-- 作者:wenarm -- 发布时间:2018/6/26 15:50:37 -- 以下是引用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;
|