HHV(DATA ARRAY, PERIODS)
以下為 HHV() 的一些例子:
HHV(C,20)
解釋:最近 20天的最高收市價(包括今日)。
HHV(V,10)
解釋:最近 10天的最高成交量(包括今日)。
現在我們嘗試用 HHV function 來建立以下的突破系統:
買入訊號
收市價高於過去 40天的最高價
平好倉訊號
收市價低於過去 15天的最低價
沽空訊號
收市價低於過去 40天的最低價
平淡倉訊號
收市價高於過去 15天的最高價
止蝕
設定為 2%
在 MetaStock 的操作步驟如下:
1. 打開 Enhanced System Tester,再按 "New System...",輸入系統名稱:Breakout System。
2. 在 "Buy Order" 裡輸入以下程式:
C>Ref(HHV(H,40),-1)
留意如果將程式寫成 C>HHV(H,40) 的話,雖然在語法上沒有問題,但卻違反了邏輯。因為 HHV(H,40) 是指包括今日在內的 40天最高價,而今日收市價 ( C ) 無論如何是不可能高於今日最高價的。
3. 在 "Sell Order" 裡輸入:
C<Ref(LLV(L,15),-1)
LLV function 就是 HHV 的相反,用來找出特定期間內的最低值,至於 Ref function 可參考程式編寫入門 6 的介紹。
4. 在 "Sell Short Order" 裡輸入:
C<Ref(LLV(L,40),-1)
5. 在 "Buy to Cover Order" 裡輸入:
C>Ref(HHV(H,15),-1)
6. 在 "Stops" 標籤頁裡,勾選 Maximum Positions 的 "Long" 和 "Short" 方格,與及將 Maximum Loss 設定為 2%,完成後按 "確定" 關閉 System Editor。
7. 現在可以按 "New Simulation..." 進行 back-testing,我所選的對象為恆指,測試期間為 2/1/2001 至 31/12/2010,為了令測試結果符合現實狀況,將交易佣金設定為 5點 (單邊)。
結果如下:
從上圖可見,這個突破系統在過去 10年產生了 64筆交易,當中獲利交易佔 20筆,虧損交易則佔 44筆,勝率只有 31.3%,但卻帶來 11228點的淨獲利 (Profit),Profit Factor 有 1.73,這要歸功於系統的平均獲利 (1335點) 遠高於平均虧損 (351點) 之故。
沒有留言:
張貼留言