以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=162837)

--  作者:hj007s
--  发布时间:2018/4/17 14:13:59
--  求助个循环找数值的问题

我的逻辑是,从1到100遍历(步长10),先求100个周期的最低值,然后我循环找出最低值所在的N,然后再继续遍历,如果当90个周期的最低值等于100个周期的最低值时,继续找,直到找到第二个至少间隔为10的最低值,
同理,继续找,总共找3个最低值和对应的N;然后代码我写一半了之后发现,有个错误就是FOR循环中不能用IF或者HHV这样的统计函数,
请问,有啥解决方案能解决我的需求?

VARIABLE:N:=0;
{
FOR i=100 downto 10 step 10 DO
  BEGIN
    N:=i;
    A:HHV(L,100);  //求100个周期的最低价
    //当100个周期的最低价等于N个周期的最低价时,取得N,否则继续
      IF A=HHV(L,N) THEN
        A1:=HHV(L,N);
      ELSE
    N:=N+1;
   END
   A1;
   N;

--  作者:hj007s
--  发布时间:2018/4/17 14:41:48
--  
循环写疯了,求助……
--  作者:wenarm
--  发布时间:2018/4/17 15:05:45
--  

1.在金字塔中处理逻辑过程中,尽量不要使用for循环的方式处理自己的策略。在金字塔的策略机制上它已经被弱化了很多,非但不能帮助你完成相关需求,还会影响你的策略运行效率、

2.你上面的需求求取10个间隔的方式实现不了。

而求取最低的3个值可以通过。

ll:llv(L,100);  //求100个周期的最低价

aa:LARGE( ll,100 , 1);
bb:LARGE( ll,100 , 2);
cc:LARGE( ll,100 , 3);

 


--  作者:hj007s
--  发布时间:2018/4/17 15:54:17
--  
老师,你用LARGE取那么会取得临近值,非常接近,不太符合我想要的思想。
那我再研究研究