Rss & SiteMap

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

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

标题:[求助]悬赏1个金币~求20个不等于0的数值求和..

1楼
bbking 发表于:2011/3/14 14:04:34

一个类似于close一样的序列变量flag=[...1 2 0 -1 0 0 3 0 -1 -2]

我要找前面不等于0的20个数字~求个和值sum~怎么弄?

逐周期模式的...

f:=0;

addsum:=0;
for i=datacount downto 1 do
if not(flag[i]=0) then begin
addsum:=addsum+flag[i];
f:=f+1;//记录不为0的个数
end

if f=20 then break;

s_flag:addsum,linethick0;
=========================

这样好像不行

 

有些是序列模式的写法...需要转换回序列模式..

 

也可以把问题转换一下~

逐周期模式下

求满足前面最近20个不等于0的flag到当前的周期数...

 

 

哪位有好点的算法...??

[此贴子已经被作者于2011-3-14 14:04:58编辑过]
2楼
阿火 发表于:2011/3/14 15:13:38

首先算出第一次出现20个不为0的开始日期

然后用while语句

 

比如用收盘价,那么从第21根K线开始算起

 

if barpos>20 then begin
 num:=0;
 zongshu:0;
 i:=1;
 while num<20 do begin
  if c[barpos-i]<>0 then begin
   zongshu:=zongshu+c[barpos-i];
   num:=num+1;
  end
  i:=i+1;
 end
end

 

3楼
guotx2010 发表于:2011/3/23 11:37:56

//将f,addsum两个变量设置为全局变量

variable:f=0,addsum=0;

for i=datacount downto 1 do
if not(flag[i]=0) then begin
addsum:=addsum+flag[i];
f:=f+1;//记录不为0的个数
end

if f=20 then break;

s_flag:addsum,linethick0;
=========================

[此贴子已经被作者于2011-3-23 11:38:14编辑过]
共3 条记录, 每页显示 10 条, 页签: [1]


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