HSQL程式教學--範例說明(策略實作編2)

範例1.
本範例以威廉指標(參數9)配合MA20做為操作標的,操作定義如下:
•多單建倉:當MA20呈現上升走勢,且威廉指標呈現下跌後再上揚(幅度必須大於5),刖多單建倉。
•空單建倉:當MA20呈現下跌走勢,且威廉指標呈現上揚後再下跌(幅度必須大於5),刖空單建倉。
•多單平倉:若上一根K線之收盤價低於再前兩根K線之最低價,則多單平倉。
•空單平倉:若上一根K線之收盤價高於再前兩根K線之最高價,則空單平倉。

10 Va = 前1_5分_W%R( 9 ) 
20 Vb = 前2_5分_W%R( 9 ) 
30 Vc = 前3_5分_W%R( 9 ) 
40 Vd = 5分_開盤價 
50 
60 // 多單建倉 
70 If 目前部位( 倉位多空 ) <= 0 Then 
80  If 前1_5分_收盤價 >= 前1_5分_均價( 20 ) And 前1_5分_均線趨勢( 20 ) = 1 Then 
90   If Va - Vb >= 5 And Vc - Vb >= 5 Then 
100    Show [ K線下方 , ↑ ] 
110    操作訊號( 空單平倉 , 1口 , Vd ) 
120    操作訊號( 多單建倉 , 1口 , Vd ) 
130    If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
140     播放聲音( ALARM.WAV ) 
150     單K計數器( 目前K線 , 0 ) = 1 
160    End If 
170   End If 
180  End If 
190 End If 
200 
210 // 空單建倉 
220 If 目前部位( 倉位多空 ) >= 0 Then 
230  If 前1_5分_收盤價 <= 前1_5分_均價( 20 ) And 前1_5分_均線趨勢( 20 ) = -1 Then 
240   If Vb - Va >= 5 And Vb - Vc >= 5 Then 
250    Show [ K線上方 , ↓ ] 
260    操作訊號( 多單平倉 , 1口 , Vd ) 
270    操作訊號( 空單建倉 , 1口 , Vd ) 
280    If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
290     播放聲音( ALARM.WAV ) 
300     單K計數器( 目前K線 , 0 ) = 1 
310    End If 
320   End If 
330  End If 
340 End If 
350 
360 // 多單平倉 
370 If 目前部位( 倉位多空 ) = 1 Then 
380  If 前1_5分_收盤價 < 前2_5分_最低價 And 前1_5分_收盤價 < 前3_5分_最低價 Then 
390   Show [ K線下方 , ◎ ] 
400   操作訊號( 多單平倉 , 1口 , Vd ) 
410   If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
420    播放聲音( ALARM.WAV ) 
430    單K計數器( 目前K線 , 0 ) = 1 
440   End If 
450  End If 
460 End If 
470 
480 // 空單平倉 
490 If 目前部位( 倉位多空 ) = -1 Then 
500  If 前1_5分_收盤價 > 前2_5分_最高價 And 前1_5分_收盤價 > 前3_5分_最高價 Then 
510   Show [ K線上方 , ◎ ] 
520   操作訊號( 空單平倉 , 1口 , Vd ) 
530   If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
540    播放聲音( ALARM.WAV ) 
550    單K計數器( 目前K線 , 0 ) = 1 
560   End If 
570  End If 
580 End If 

下載式檔1011.rda (請下載至Huntap資#料匣內)

重點說明:
行號10 將前一根K線之W%R(9)值存在變數Va。
行號20 將前二根K線之W%R(9)值存在變數Vb。
行號30 將前三根K線之W%R(9)值存在變數Vc。
行號40 將目前K線之開盤價存在變數Vd。

行號70 若目前手中部位為空單(<0)或是空手(=0)則執行行號80,否則執行行號220。
行號80 若前一根K線之收盤價在MA20之上,並且MA20呈現上揚走勢,則執行行號90。
行號90 若威廉指標呈現下跌後再上揚,且幅度必須大於5,則執行行號100。
行號100 在K線下方顯示「↑」。
行號110 發佈空單平倉之操作訊號,平倉價位在Vd(即開盤價);若目前為空手,系統內定不會處理空單平倉之動作。
行號120 發佈多單建倉之操作訊號,建倉價位在Vd(即開盤價)。
行號130 若目前K線是最後一根K線,且單K計數器(0)=0,則執行行號140。
行號140 撥放警告聲響。
行號150 將單K計數器(0)設定為1,以確保警告聲響不會重覆撥放。
....
行號370 若目前手中部位為多單(=1),則執行行號380。
行號380 若上一根K線之收盤價低於再前兩根K線之最低價,則執行下方多單平倉處理。

實際執行畫面如下: