以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  版主 请帮助改变量循环  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=2234)

--  作者:beensu
--  发布时间:2010/7/24 13:29:53
--  版主 请帮助改变量循环

请问版主 可否用变量在一个循环实现 请帮助改一下 谢谢

 

//1次循环
for i=barpos downto 4 do begin


 if cross(aa,lj) then do  begin
 nt:=i-1;
 //tmp1:=aa;
 
 end;
 
 if cross(hj,aa)  then do  begin
//tmp:=ref(aa,i-1);;
ntt:=i-1;
end
 end;
 cfb:=ref(aa,barpos-nt),linethick0;
  cfb1:=ref(aa,barpos-ntt),linethick0;
  gg:cfb-cfb1,linethick0;;
   barpos1:=min(nt,ntt),linethick0;;;
  //if barpos1>10 then goto tyu;
//2次循环

for ii=barpos1 downto 4 do begin


 if cross(aa,lj) then do  begin
 nta:=ii-1;
 //tmp1:=aa;
 
 end;
 
 if cross(hj,aa)  then do  begin
//tmp:=ref(aa,i-1);;
ntta:=ii-1;
end
 end;
 cfba:=ref(aa,barpos-nta+1),linethick0;
  cfba1:=ref(aa,barpos-ntta-1),linethick0;
  gga:cfba-cfba1,linethick0;;
    //ggav:ntta,linethick0;;

 

//、、n次循环

 

 

。。

。。

 

。。

。。。。。

//求和

ggll:gg+gg+........................,linethick0;;


--  作者:admin
--  发布时间:2010/7/24 18:24:44
--  

没看清你的代码思路,你可以将你要描述的目的,这里写一下,如果有代表性我们帮你做个DEMO


--  作者:beensu
--  发布时间:2010/7/24 19:59:06
--  

主要是计算n次循环的累计值gg 但是我只能分别写n次循环分别计算 这样效率太低 我想改成在一个循环里利用变量计算累计值gg


--  作者:fly
--  发布时间:2010/7/26 10:18:23
--  

大体思路如下

 

s:=0;         //此变量用于记每次循环后gg的总和
i:=barpos;    //初设循环初始值


loop @ for i downto 4 do begin

         if 条件1满足 then 计算nt...等值;
         if 条件2满足 then 计算ntt...等值;

      end

计算gg等值;
s:= s+gg;

i:= min(nt,ntt); //根据上次计算结果再设循环初始值

if i满足某条件 goto loop; //当I满足条件时,无条件跳转到loop语句

 

注:最后计算所得s就是gg的累计和值