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。