HSQL程式教學(三)邏輯運算元與判斷式

※判斷式IF...Then

「判斷式」主要是用於設定篩選條件,其基本語法如下:

一、單一判斷

IF 條件 Then
 .....
 .....
End IF

可以口語解讀為:

IF ( 如果符合 ) 條件 Then ( 就執行 )
 .....
 .....
End IF ( 結束IF指令 )

請注意一個IF指令,必須搭配一個End IF表示結束


10 Va = 10 
20 If Va > 0 Then 
30 Va = Va + 1 
40 End If 
50 Vb = Va + 5 

上例最後Vb等於16。


二、巢狀判斷

IF 條件 Then
IF 條件 Then
IF 條件 Then
 .....
 .....
End IF
End IF
End IF

一般用於多重條件篩選,唯注意IF與End IF必須對稱且數量一樣


10 If 成交量 >= 1000 Then 
20 If 收盤價 >= 10 Then 
30 If 週_KD交叉( 9 ) = 是 Then 
40 Show 
50 End If 
60 End If 
70 End If 

上例可篩選出「成交量大於1000張」、「股價大於10元」且「週KD交叉」之股票。


三、二分法判斷

IF 條件 Then
 .....
 .....
Else
 .....
 .....
End IF

可以口語解讀為:

IF ( 如果符合 ) 條件 Then ( 就執行 )
 .....
 .....
Else ( 否則就執行 )
 .....
 .....
End IF ( 結束IF指令 )


10 If 收盤價 >= 開盤價 Then 
20 Va = 收盤價 
30 Else 
40 Va = 開盤價 
50 End If 
60 Vb = 最高價 - Va 

上例是用於計算上影線長度,並將結果存入變數Vb。


四、多重連續判斷

IF 條件 Then
 .....
 .....
ElseIF 條件 Then
 .....
 .....
ElseIF 條件 Then
 .....
 .....
Else
 .....
 .....

End IF

可以口語解讀為:

IF ( 如果符合 ) 條件 Then ( 就執行 )
 .....
 .....
ElseIF ( 否則如果符合 ) 條件 Then ( 就執行 )
 .....
 .....
ElseIF ( 否則如果符合 ) 條件 Then ( 就執行 )
 .....
 .....
Else ( 就執行 )
 .....
 .....
End IF ( 結束IF指令 )

多重連續判斷一般用於多種狀況條件之篩選,其中ElseIF並無限制數量,可以依條件數量多寡而定,但是Else只能有一個,並且通常擺在最後


10 Va = 收盤價 
20 If Va >= 1000 Then 
30 Vb = 5 
40 ElseIf Va >= 500 Then 
50 Vb = 1 
60 ElseIf Va >= 100 Then 
70 Vb = 0.5 
80 ElseIf Va >= 50 Then 
90 Vb = 0.1 
100 Else 
110 Vb = 0.05 
120 End If 
130 Vc = Va + Vb 

上例是用於計算個股收盤價往上一檔之價位,並將結果存入變數Vc。


※邏輯運算元

「邏輯運算元」是用於IF判斷式中描述條件與條件之間關係的符號,在「戰搜雷達」中提供了>、>=、<、<=、<>、And、Or、Not、Xor等。

>  大於
>= 大於等於
<  小於
<= 小於等於
<> 不等於
And  且
Or  或
Not  非
Xor  Exclude Or

例1
10 If 週_成交量 >= 10000 And 週_漲跌幅 >= 10 Then 
20 Show 
30 End If 

上例是用於找出週成交量大於等於10000並且週漲跌幅大於等於10的股票。


例2
10 If KD_k( 9 ) < 10 Or wRSI( 9 ) < 20 Then 
20 Show 
30 End If 

上例是用於找出K值小於10或者wRSI小於20的股票。

例3
10 If Not ( 漲停板 = 是 ) Then 
20 Show 
30 End If

上例是用於找出非漲停板的股票。


Xor的運算邏輯如下:

是 Xor 是 → 否
是 Xor 否 → 是
否 Xor 是 → 是
否 Xor 否 → 否

歸納言之,當「兩個條件其中一個成立」即成立;但若是「兩個條件皆不成立」或者「兩個條件皆成立」則結果為不成立。