Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共18 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:循环语句问题

1楼
rockyan 发表于:2017/7/6 12:38:03

循环语句,逐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

  

谢谢

 

2楼
rockyan 发表于:2017/7/6 12:38:47
应该是ref barslast 等引起的问题吧
3楼
wenarm 发表于:2017/7/6 13:42:31

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

[此贴子已经被作者于2017/7/6 13:42:58编辑过]
4楼
rockyan 发表于:2017/7/6 13:45:49
逻辑已经写的很清楚了啊
5楼
rockyan 发表于:2017/7/6 13:59:06

逻辑或者可以这样描述:

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

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

6楼
rockyan 发表于:2017/7/6 14:04:36

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

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

谢谢

7楼
wenarm 发表于:2017/7/6 14:38:10

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

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

[此贴子已经被作者于2017/7/6 14:43:53编辑过]
8楼
rockyan 发表于:2017/7/6 14:39:31
 先能告诉我一下,ifelse可以正常的用在FOR里吗
9楼
wenarm 发表于:2017/7/6 14:45:16

不可以

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

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

 

10楼
rockyan 发表于:2017/7/6 14:46:34
 是
共18 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 3 queries.