上一讲,介绍了序列变量、数组等概念,这一讲介绍循环语句。
1、FOR递增循环:
先从一个的实例开始,求当前股票收盘价的2日算术平均价,为了方便起见,以刚上市不久的600340国祥股价来说明,首先定义序列变量fc为收盘价,根据上一讲我们知道,fc可以看成是一个数组,因此,数组fc的每一个元素如下表所示:
600340 国祥股份
时间 收盘
fc[1] 2003/12/30 8.92
fc[2] 2003/12/31 8.96
fc[3] 2004/01/02 9.25
fc[4] 2004/01/05 9.64
fc[5] 2004/01/06 9.92
fc[6] 2004/01/07 9.74
fc[7] 2004/01/08 10.44
fc[8] 2004/01/09 9.99
显然, 2日平均收盘价必须是从第2根K线即上市后第2日开始,到最后一天结束,设2日平均股价用序列变量ma2来表示,由于2日平均收盘价等于当日收盘价加昨收盘除以2,如果手工一行一行来写代码计算,则:
ma2[2]:=(fc[1]+fc[2])/2; //今收盘与昨收盘之和除以2,等于今2日平均收盘价
ma2[3]:=(fc[2]+fc[3])/2;
ma2[4]:=(fc[3]+fc[4])/2;
ma2[5]:=(fc[4]+fc[5])/2;
ma2[6]:=(fc[5]+fc[6])/2;
ma2[7]:=(fc[6]+fc[7])/2;
ma2[8]:=(fc[7]+fc[8])/2;
分析上面代码,2日平均价的计算特点是:
①从第2根K线开始计算的
②每天的均价都等于(今收盘+昨收盘)/2
③直到最后1根K线结束
容易知道,如果有1000根K线,则要写999行代码,显然效率太低了。
我们来找找规律,如果是中间的某天即第i天,则上面的表达式可以写为ma2[i]:=(fc[i-1]+fc[i])/2,这个i是从第2根K线开始直到最后1根K线。这些计算都是重复同样的计算,只不过i不同罢了。如果有一种方法,可以自动重复计算这些表达式,并且每重复一次,i自动增加1,就可以达到目的了。由此我们定义一种循环语句,可以自动循环重复运行某一行代码。在飞狐中,循环语句有2种,下面先介绍FOR循环语句
语法:FOR var=n1 TO n2 DO expr;
从 var=n1 开始到 var=n2 开始循环执行 expr 语句,每执行一次var加1。这里,var称之为循环变量。
用循环语句表达上面计算2日平均收盘价,公式代码如下:
fc:=close; //定义序列变量为收盘价
for i=2 to datacount do ma2[i] : (fc[i-1]+fc[i])/2;
//从i=2到i=datacount循环执行ma2[i] : (fc[i-1]+fc[i])/2
在飞狐中新建一个主图叠加公式,如下图所示,正是我们所需要的结果:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。