以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]关于FOR循环语句函数引用的编写  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=141987)

--  作者:plsman
--  发布时间:2016/10/31 10:52:50
--  [求助]关于FOR循环语句函数引用的编写
FOR循环语句函数引用,是需要用数组的方式来编写。在这个链接http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=130 中写的范例看得不是很明白。

搜索论坛中看见FOR循环中引用的案例也不多。所以我这里有个简单的例子,看能否帮忙改下?

Input:A(5,1,10,1);
i=0;
UP=0;
DN=0;

CC := C - REF(C,1);

For i = 0 To A DO BEGAN
If( REF(CC,1)> 0) THEN     
UP = UP + REF(CC,1);
END
If( REF(CC,1)< 0) THEN    
DN = DN + REF(CC,1);
END
END
-----------------------------------
上面的REF是过不了编译的,请问怎么样修改?

上面循环的意思,就是计算前面几根K线的上涨和下跌的值。



--  作者:jinzhe
--  发布时间:2016/10/31 10:54:50
--  
这段代码要实现什么目的?
--  作者:PLSMAN
--  发布时间:2016/10/31 10:58:21
--  
其实主要还是想了解FOR引用函数的写法。

通过这个例子来学习,这个代码的意思是 当 REF(CC,N)> 0,我就计算前面N根K线的涨幅。 当REF(CC,N)< 0,计算前面N根K线的跌幅。

--  作者:jinzhe
--  发布时间:2016/10/31 11:12:15
--  

这个n是1?


--  作者:PLSMAN
--  发布时间:2016/10/31 11:14:36
--  
这个N比如是5?或者之后可以定义为一个参数来进行优化。
--  作者:jinzhe
--  发布时间:2016/10/31 11:17:40
--  
 当 REF(CC,N)> 0,我就计算前面N根K线的涨幅。
什么叫做“n根k线“的涨幅,和ref(cc,n)有什么区别

--  作者:PLSMAN
--  发布时间:2016/10/31 11:26:56
--  
抱歉,没表达清楚,意思是当 REF(CC,N)> 0,我就计算前面N根K线中上涨K线的值。比如其中1,3,5是上涨的,2,4下跌,我需要1,3,5的涨幅值统计为UP。

--  作者:jinzhe
--  发布时间:2016/10/31 13:22:11
--  
Input:A(5,1,10,1);
n:=5;
UP:=0;
DN:=0;

CC := C - REF(C,1);
n1:=if(cc>=0,cc,0);
n2:=if(cc<0,cc,0);
sum1:=sum(n1,n);
sum2:=sum(n2,n);
if ref(cc,n)>=0 then up:=sum1;
if ref(cc,n)<0 then dn:=sum2;
[此贴子已经被作者于2016-10-31 13:22:18编辑过]

--  作者:PLSMAN
--  发布时间:2016/10/31 13:29:53
--  
谢谢 Jinzhe.
其实我本意是想学习下FOR循环的语句,顺便实现下上面统计的功能。
--  作者:jinzhe
--  发布时间:2016/10/31 13:54:17
--  
你那思路用循环是画蛇添足,没必要的