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 5分_均線趨勢( 10 ) = 1 Then
20 If 5分_KD交叉( 9 ) = 是 Then
30 If 交叉類型 = 1 Then
40 Show [ K線下方 , ↑ ]
50 End If
60 End If
70 End If
上例判斷「5分_均線MA10呈現上升趨勢」、「5分_KD9交叉)」且「為黃金交叉」則在K線下方出現↑符號。
三、二分法判斷
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 5分_MACD交叉狀態( 10 , 10 , 20 ) = 1 And 15分_MACD交叉狀態( 10 , 10 , 20 ) Then
20 Show [ K線上方 , ◎ ]
30 End If
上例是判斷5分及15分之MACD皆呈現正向走勢。
例2
10 If KD_k( 9 ) < 10 Or wRSI( 9 ) < 20 Then
20 Show [ K線上方 , ◎ ]
30 End If
上例是判斷K值小於10或者wRSI小於20。
例3
10 If Not ( 5分_高檔量價背離 = 是 ) Then
20 Show [ K線上方 , ◎ ]
30 End If
上例是判斷非5分_高檔量價背離。
Xor的運算邏輯如下:
是 Xor 是 → 否
是 Xor 否 → 是
否 Xor 是 → 是
否 Xor 否 → 否
歸納言之,當「兩個條件其中一個成立」即成立;但若是「兩個條件皆不成立」或者「兩個條件皆成立」則結果為不成立。