上一講,介紹了序列變量、數(shù)組等概念,這一講介紹循環(huán)語句。
1、FOR遞增循環(huán):
先從一個的實(shí)例開始,求當(dāng)前股票收盤價(jià)的2日算術(shù)平均價(jià),為了方便起見,以剛上市不久的600340國祥股價(jià)來說明,首先定義序列變量fc為收盤價(jià),根據(jù)上一講我們知道,fc可以看成是一個數(shù)組,因此,數(shù)組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日平均收盤價(jià)必須是從第2根K線即上市后第2日開始,到最后一天結(jié)束,設(shè)2日平均股價(jià)用序列變量ma2來表示,由于2日平均收盤價(jià)等于當(dāng)日收盤價(jià)加昨收盤除以2,如果手工一行一行來寫代碼計(jì)算,則:
ma2[2]:=(fc[1]+fc[2])/2; //今收盤與昨收盤之和除以2,等于今2日平均收盤價(jià)
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日平均價(jià)的計(jì)算特點(diǎn)是:
①從第2根K線開始計(jì)算的
?、诿刻斓木鶅r(jià)都等于(今收盤+昨收盤)/2
?、壑钡阶詈?根K線結(jié)束
容易知道,如果有1000根K線,則要寫999行代碼,顯然效率太低了。
我們來找找規(guī)律,如果是中間的某天即第i天,則上面的表達(dá)式可以寫為ma2[i]:=(fc[i-1]+fc[i])/2,這個i是從第2根K線開始直到最后1根K線。這些計(jì)算都是重復(fù)同樣的計(jì)算,只不過i不同罷了。如果有一種方法,可以自動重復(fù)計(jì)算這些表達(dá)式,并且每重復(fù)一次,i自動增加1,就可以達(dá)到目的了。由此我們定義一種循環(huán)語句,可以自動循環(huán)重復(fù)運(yùn)行某一行代碼。在飛狐中,循環(huán)語句有2種,下面先介紹FOR循環(huán)語句
語法:FOR var=n1 TO n2 DO expr;
從 var=n1 開始到 var=n2 開始循環(huán)執(zhí)行 expr 語句,每執(zhí)行一次var加1。這里,var稱之為循環(huán)變量。
用循環(huán)語句表達(dá)上面計(jì)算2日平均收盤價(jià),公式代碼如下:
fc:=close; //定義序列變量為收盤價(jià)
for i=2 to datacount do ma2[i] : (fc[i-1]+fc[i])/2;
//從i=2到i=datacount循環(huán)執(zhí)行ma2[i] : (fc[i-1]+fc[i])/2
在飛狐中新建一個主圖疊加公式,如下圖所示,正是我們所需要的結(jié)果:
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。