2008年2月15日 星期五

HTS的烏龍K線


在昨天的交易日誌中,我提到了在盤中因為一個動作導致了HTS自己多生出一根不應該存在的烏龍K線,現在來說怎麼「製造」這一根烏龍K線。

首先這是平常時HTS開啟後正常的4000畫面。
Image Hosted by ImageShack.us


只要你原本是在期貨連續的狀態下,再去點按一次期貨連續,我們就能得到這個烏龍K線了>_<。
Image Hosted by ImageShack.us


有個簡單的手動方式,隨便找其他地方做會讓資料RELOAD動作的按一下就會恢復正常了,比如這樣。
Image Hosted by ImageShack.us



現在,我們來看看,如何避免這個烏龍K線干擾自動交易。先來看看當烏龍K線發生的時候,實際上當下K線的所產生的資料狀況。你可以看到這個視窗中,最後兩行的日期與時間竟然完全相同,但是其上的都不會有這狀況,因為這是烏龍K線嘛!
Image Hosted by ImageShack.us


我們就用這個原理來自救,這是我在烏龍K線存在的時候去觀察HTS所輸出的文字檔的狀況,在沒有自救前,HTS繼續呆呆的輸出這個文字檔,我昨天就是這樣多了一筆莫須有的交易的。
Image Hosted by ImageShack.us


怎麼解決呢?請先閱讀上一次我推出的『誤觸錯誤時間層級防呆措施』。網友jedyang提供了這個方法(由衷感謝):就在那一行為了防止錯誤的時間層級也繼續跑訊號出來的地方,加上 date>date[1] or time?time[1] 。變成如下:

//防呆裝置:限制為30分鐘線專用
IF BarInterval = 30 AND DataCompression = 1 AND
(DATE > DATE[1] OR TIME > TIME[1]) THEN
.
.
.
你的交易程式碼
.
.
.
END IF

就邏輯上來說,這樣應該就可以解決了。但是實際上我做了測試,這樣方法並不可行,我說明一下我的測試方式:我先在程式的末段加上這個語句,目的是要在下一根K線出現的時候要他無論如何顯現買出的訊號,再「下一根」K線尚未出現時是不會有訊號的。
if date = 1080215 and time = 124500 then
sell next bar at market
end if

如下圖,這時候是沒有SELL的訊號的。
Image Hosted by ImageShack.us


在我已經於交易程式最外圈加入了那個date>date[1] or time>time[1]的狀況下,我現在製造了烏龍K線,得到這個結果:不論是圖面上,或是HTS輸出到文字檔上的,通通馬上變成SELL的狀態,所以這方式我覺得是不可行的,這裡出現了邏輯上與真實運作上的落差。
Image Hosted by ImageShack.us



我推測著:在烏龍K線發生的時候,PRINT的DEBUG視窗中顯示的數值與實際上HTS運作脫節了,目前,我還沒有想到完善的方式去克服,我現在僅能於重新RELOAD資料時,不要去碰這個「期貨連續」的按鈕而已,因為這個東西不要碰到就不會產生烏龍K線。


我很盼望有哪位大德願意來這裡教導我們如何搞定這個烏龍K線。

熱門文章