HSQL程式教學(七)迴圈FOR...NEXT
※迴圈函數
迴圈在程式中一般用於循序處理特定之程序。
一、單一迴圈
語法:
For 變數V = 起始值 To 終止值 Step 步進值
.....
.....
Next
此時變數V會由起始值開始,以每次累加步進值的方式,跳動至終止值為止。
例:
10 Va = -10
20 For Vb = 0 To 9 Step 1
30 Vc = 前Vb_5分_MACD差柱( 10 , 10 , 20 )
40 If Vc > Va Then
50 Va = Vc
60 End If
70 Next
本例用於找出最近10根5分鐘線之MACD差柱之最大值,並且存於變數Va。
二、巢狀迴圈
語法:
For 變數V = 起始值 To 終止值 Step 步進值
For 變數V = 起始值 To 終止值 Step 步進值
.....
.....
Nex
Next
例:
10 載入陣列[ 5分_成交量 , 成交量 -> 陣列1 ]
20 For Va = 241 To 249 Step 1
30 Vb = Va + 1
40 For Vc = Vb To 250 Step 1
50 If 陣列1值( Va ) < 陣列1值( Vc ) Then
60 Vd = 陣列1值( Va )
70 陣列單格填值( 陣列1 , #Va , 填入 Vc )
80 陣列單格填值( 陣列1 , #Vc , 填入 Vd )
90 End If
100 Next
110 Next
120 Ve = 陣列1值( 242 )
範例說明:
本範例用於找出最近10根K線之第2大量,並且存於變數Ve。
行號10 將最近250根K線之成交量載入陣列1(每個陣列內定有250個儲存空間)。
行號60 ~ 80 將陣列1之第Va及第Vc位置之內容對調。
PS.此例僅為練習之用,HSQL有更簡捷的語法。
三、Exit For (跳出迴圈)
語法:
For 變數V = 起始值 To 終止值 Step 步進值
.....
Exit For
.....
Next
在迴圈執行當中,若遇到Exit For指令,程式會立即執行跳出迴圈的動作,並且從Next指令後面接續執行。
例:
1 0 For Vb = 1 To 20 Step 1
2 0 If 前Vb_5分_MACD交叉( 6 , 6 , 9 ) = 是 Then
3 0 Exit For
4 0 End If
5 0 Next
6 0 Vc = 前Vb_5分_成交量
本範例用於找出前一次MACD交叉(參數為6,6,9)當時之成交量,並且存於變數Vc。
※補充說明:若為巢狀迴圈,則Exit For只會跳出當一迴圈。