2014年7月7日

計數(Counter)的運用

計數是PowerLanguage/EasyLanguage常運用到的技巧, 主要是用來計算符合欲設條件的次數。直接舉例說明,例如我們想累計長短均線交叉次數:

Vars:Counter(0),Sma(0),Lma(0);

Sma=average(close,5);
Lma=average(close,10);

If Sma cross over Lma or Sma cross below Lma then Counter=Counter+1;

程式會開始從第一個交叉開始累計Counter,當第一個交叉成立時,Counter=Counter+1會變成Counter=0+1(Counter起始值為0),也就是等於1,第2個交叉時,Counter=Counter+1會變成Counter=1+1(Counter前值為1),也就是等於2,以此類推。

另再舉一個例子,我們想計算過去50根K棒成交量大於1000口的次數:

Vars:Counter(0),NN(0);

For NN=0 to 49 begin
If Volume[NN] >1000 then Counter=Counter+1;
End;

此範例是同時運用CounterLoop(迴圈)的技巧,程式會去運算從Volume[0]Volume[49](也就是過去50K棒的成交量)符合大於1000者,並以Counter的方式累加。