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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教一个计时的程序

   

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


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

主题:请教一个计时的程序

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


加好友 发短信
等级:标准版用户 帖子:323 积分:0 威望:0 精华:0 注册:2015/11/3 9:41:16
请教一个计时的程序  发帖心情 Post By:2018/5/17 10:38:24    Post IP:1.180.233.89[只看该作者]

我想得到在某个条件触发后一直到目前为止的时间,类似BARSLAST、SUMBARS这两个函数的功能,但是这两个函数还是有些不太好用。
我想这样:某个条件达成后就开始打开计时开关,这期间即使再有同样的条件达成则忽略不计,一直到我某个条件终止后就完成此波计时。
请各位版主大人帮个忙儿。图片点击可在新窗口打开查看
[此贴子已经被作者于2018/5/17 10:38:52编辑过]

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


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

试了下效果还行。条件a,b  你重新定义下。为了方便肉眼观察,我把a,b全输出在K上了。

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

variable:markA:=0,markB:=0;
condA:c>o+10;
condB:c<o-10;

if CONDA then DRAWTEXT(1,c,'A');
if CONDB then DRAWTEXT(1,c,'B');
len:0;//记录a  b  条件跨度的值,b触发前为0
if condA  and markA=0 and not(condB) then markA:=1;
x:=BARSLAST(markA=0)-1;//这里需要减1,并且barslast不能在if下因此放在外面
if condB and markA=1 then
begin
markA:=0;//触发条件后重置markA值。
len:=x;
end

if condA and condB and markA=0 then len=0;//这是一种特殊情况,a b 同时触发在一个K上。


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


加好友 发短信
等级:标准版用户 帖子:323 积分:0 威望:0 精华:0 注册:2015/11/3 9:41:16
  发帖心情 Post By:2018/5/17 13:34:28    Post IP:110.16.79.74[只看该作者]

感谢。
不过,似乎不对哦。我需要得到的是在A和B之间的某点(设为C点吧)即A到C的时间。当B发生后,就全部恢复平常态。可您的这一程序,只有B发生了才计算这个时间吧?


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


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

 variable:markA:=0,markB:=0;
condA:c>o+10;
condB:c<o-10;

if CONDA then DRAWTEXT(1,c,'A');
if CONDB then DRAWTEXT(1,c,'B');
len:0;//记录a  b  条件跨度的值,b触发前为0
if condA  and markA=0 and not(condB) then markA:=1;
x:=BARSLAST(markA=0)-1;//这里需要减1,并且barslast不能在if下因此放在外面

if markA=1 then len:=x;

if condB and markA=1 then
begin
markA:=0;//触发条件后重置markA值。
//len:=x;
end

if condA and condB and markA=0 then len=0;//这是一种特殊情况,a b 同时触发在一个K上。


略做修改即可。主要是掌握这种处理方式。


命数如织,当如磐石。
 回到顶部