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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 循环语句问题

   

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


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

主题:循环语句问题

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


加好友 发短信
等级:黑侠 帖子:611 积分:0 威望:0 精华:0 注册:2015/9/11 9:51:55
循环语句问题  发帖心情 Post By:2017/7/6 12:38:03    Post IP:116.231.159.55[只看该作者]

循环语句,逐K,好像有问题,请教如何改写

 

s:=count(某条件1,barslast(某条件2));

for i=1 to s do begin

    b1:=barslast(count(某条件1),barslast(某条件2))=i;

    li0:=ref(l,b1);

    li:=ifelse(li0<2500,0,li0);

    lz:=max(li,0);

end

  

谢谢

 


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


加好友 发短信
等级:黑侠 帖子:611 积分:0 威望:0 精华:0 注册:2015/9/11 9:51:55
  发帖心情 Post By:2017/7/6 12:38:47    Post IP:116.231.159.55[只看该作者]

应该是ref barslast 等引起的问题吧

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


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

你想实现什么样的逻辑处理

[此贴子已经被作者于2017/7/6 13:42:58编辑过]


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


加好友 发短信
等级:黑侠 帖子:611 积分:0 威望:0 精华:0 注册:2015/9/11 9:51:55
  发帖心情 Post By:2017/7/6 13:45:49    Post IP:116.231.159.55[只看该作者]

逻辑已经写的很清楚了啊

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


加好友 发短信
等级:黑侠 帖子:611 积分:0 威望:0 精华:0 注册:2015/9/11 9:51:55
  发帖心情 Post By:2017/7/6 13:59:06    Post IP:116.231.159.55[只看该作者]

逻辑或者可以这样描述:

在最近的条件2成立的K线到现在,一共发生了条件1,S次

然后,找出这S次每一次的Low,如果low比2500小,直接赋值为0,再对这S个L进行比较,最后,取出最大的L


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


加好友 发短信
等级:黑侠 帖子:611 积分:0 威望:0 精华:0 注册:2015/9/11 9:51:55
  发帖心情 Post By:2017/7/6 14:04:36    Post IP:116.231.159.55[只看该作者]

实际问题比这个要复杂一些,所以逻辑实际不是重点,重点是这种问题,count barslast ifelse 怎么把他们放到循环外面去,包括ref,虽然ref可以用数组,但是因为本例ref必须在循环里得出b1的情况才可求出来,故,不知怎么解决。

如果不把他们放到循环外面,结果是能够编译,但实际出错

谢谢


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


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

找出这S次每一次的Low,如果low比2500小,直接赋值为0,再对这S个L进行比较。

上述内容,你要排除小于2500的、是不想低于这个2500的参与计算最大值?

[此贴子已经被作者于2017/7/6 14:43:53编辑过]


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


加好友 发短信
等级:黑侠 帖子:611 积分:0 威望:0 精华:0 注册:2015/9/11 9:51:55
  发帖心情 Post By:2017/7/6 14:39:31    Post IP:116.231.159.55[只看该作者]

 先能告诉我一下,ifelse可以正常的用在FOR里吗

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


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

不可以

你的需求等价于下面的处理方式

CC:VALUEWHEN(条件1,low);
hhv(low,barslast(条件2));

 



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


加好友 发短信
等级:黑侠 帖子:611 积分:0 威望:0 精华:0 注册:2015/9/11 9:51:55
  发帖心情 Post By:2017/7/6 14:46:34    Post IP:116.231.159.55[只看该作者]

 是

 回到顶部
总数 18 1 2 下一页