HSQL程式教學--範例說明(自訂指標編1)
以下範例示範如何利用HSQL程式語言畫出KD與RSI指標。
(請注意!!HSP系統已內建KD、RSI指標,不需自行編寫程式,此處只是為了舉例)
範例1.
本範例在第1個技術指標區畫出KD(9)指標。
10 自訂技術指標[ #1 , KD ]
20 Va = ( 5分_收盤價 - 5分_區間最低價( 9 ) ) / ( 5分_區間最高價( 9 ) - 5分_區間最低價( 9 )
) * 100
30 Vb = ( 2 * Vd + Va ) / 3
40 Vc = ( 2 * Ve + Vb ) / 3
50 直線[ ( 0 , Vb ) - (-1 , Vd ) , 技術1 , #1 , K值 , 寬度: 1 , 樣式: 0 , 顏色: 255 ]
60 直線[ ( 0 , Vc ) - (-1 , Ve ) , 技術1 , #2 , D值 , 寬度: 1 , 樣式: 0 , 顏色: 32768 ]
70 Vd = Vb
80 Ve = Vc
下載式檔1005.rda (請下載至Huntap資料匣內)
說明:
KD(9)指標之計算公式:
( C - L9 ) C = K線收盤價
RSV = --------------- * 100% L9 = 9根K線內最低價
( H9 - L9 ) H9 = 9根K線內最高價
2 RSV 2K ( 前K ) + RSV
K值 = ----- (前一K值 ) + --------- = ---------------------------
3 3 3
2 K 2D ( 前D ) + K
D 值 = ----- (前一D值 ) + ------- = -----------------------
3 3 3
行號10 設定第1個技術指標區為自訂指標且指標名稱為KD。
行號20 計算RSV值存於於變數Va中。
行號30 計算K值存於於變數Vb中。
行號40 計算D值存於於變數Vc中。
行號50 畫出直線連接前一K值與目前K值。
行號60 畫出直線連接前一D值與目前D值。
行號70 將目前K值存成前一K值,即為變數Vd。
行號80 將目前D值存成前一D值,即為變數Ve。
範例2.
本範例在第1個技術指標區畫出RSI(9)指標。
10 自訂技術指標[ #1 , RSI ]
20 If Vl = 0 Then
30 For Va = 0 To 8 Step 1
40 Vb = 前Va_5分_漲跌
50 If Vb >= 0 Then
60 Vc = Vc + Vb
70 Else
80 Vd = Vd + Abs( Vb )
90 End If
100 Next
110 Ve = Vc / 9
120 Vf = Vd / 9
130 Vl = 1
140 Else
150 Vb = 5分_漲跌
160 If Vb >= 0 Then
170 Ve = ( Ve * 8 + Vb ) / 9
180 Vf = ( Vf * 8 ) / 9
190 Else
200 Ve = ( Ve * 8 ) / 9
210 Vf = ( Vf * 8 + Abs( Vb ) ) / 9
220 End If
230 End If
240 Vg = Ve / ( Ve + Vf ) * 100
250 直線[ ( -1 , Vh ) - (0 , Vg ) , 技術1 , #1 , RSI , 寬度: 1 , 樣式: 0 , 顏色: 16777215
]
260 Vh = Vg
下載式檔1006.rda (請下載至Huntap資料匣內)
說明:
RSI(9)指標之計算公式:
第1根K線之RSI值:
9根K線內收盤價上漲總和
UA ( 漲數平均 ) = ---------------------------------------
9
9根K線內收盤價下跌總和
DA ( 跌數平均 ) = ---------------------------------------
9
UA
RSI = ---------------- x 100%
UA + DA
後續K線之RSI值:
前根K線UA x 8 + 當根K線之上漲
UA ( 漲數平均 ) = ------------------------------------------------
9
前根K線DA x 8 + 當根K線之下跌
DA ( 跌數平均 ) = ------------------------------------------------
9
UA
RSI = ---------------- x 100%
UA + DA
行號10 設定第1個技術指標區為自訂指標且指標名稱為RSI。
行號20 以變數Vl來辨別是否為第1根K線,若為第1根K線,則執行行號30,否則執行行號150。
行號30 ~ 100 統計前9根K線之上漲總和,存入變數Vc;統計前9根K線之下跌總和,存入變數Vd。
行號110 UA( 漲數平均 ) = Vc 除以9,並且以變數Ve代表。
行號120 DA( 跌數平均 ) = Vd 除以9,並且以變數Vf代表。
行號130 設定變數Vl為1,使得下一根K線開始執行另一種計算方式(即行號150開始之方法)。
行號150 ~ 220 即運算RSI公式,請參照上述公式(後續公式部份)。
行號240 算出RSI值,存入變數Vg。
行號250 畫出直線連接前一RSI值Vh與目前RSI值Vg。
行號260 將目前RSI值Vg存成前一RSI值,即為變數Vh。