2007年11月7日 星期三

This Bar at CLOSE VS. Next Bar at MARKET


在我接觸到人家的交易想法中,有許多都是以「收盤價」作為決定是否動作的決策點,比如說,站上5日線,指的是收盤價超過5日線之上做買進的動作;這一類的想法非常普遍,那麼應用到HTS的程式交易上該怎麼做呢?

先想一個問題,在日線的等級上,一但所謂的收盤價出現且確定了收盤價大於5日線的時候,就表示,當天的交易已經結束了,也就是說,在此刻的當下,誰都沒有辦法在此時做出買進的動作,而持有多單留倉的,因為交易已經結束了,你的認為委託單通通會被拒絕,系統沒有跳出一個訊息:「你是白痴嗎?下班收工啦,還下什麼單啊!人生不是只有下單,好嗎?」就算是彬彬有禮了^^

而在交易的程式碼中,有非常多的人因為想法上是收盤價作為決策動作點,就直接把買賣動作寫成如下:
BUY THIS BAR AT CLOSE
SELL THIS BAR AT CLOSE
EXITLONG THIS BAR AT CLOSE
EXITSHORT THIS BAR AT CLOSE

從字面上解讀,這是:
買進在這根K線的收盤價
賣出在這根K線的收盤價
多單平倉在這根K線的收盤價
空單平倉在這根K線的收盤價

實際上就我實驗與對HTS的了解,事實上並非如此!HTS把這樣的程式碼的意義應該是以
「收盤價出現的『時候』」而不是下單在「收盤價」,這有意義上的不同喔!但是在做績效回測的時候,這樣的交易動作,會把成交的價位紀錄在當根K線的收盤價。

通常在真實的交易世界,如果你的交易程式運作的時間層級是日線以下,除了當天的最後一根K線外,其實問題並不大,因為一但訊號出現,一樣丟出市價單都可以去成交的。

不過就我實際上運作的實驗,我發現This Bar at CLOSE從來沒有在當下的最後一根會出現訊號,HTS會在下一根K線出現的時候才在前一根K線標示上那個This Bar at CLOSE的動作訊號!呵呵,這下問題就大了!這是什麼意思?表示一但當你的交易訊號需要標示在當天的最後一根K線的時候,即使你到了隔天的早上8點,你都不可能會在圖面上看到那個應該標示上動作的This Bar at CLOSE!!你必須等到開盤的第一根K線出現了,才會看到昨天的最後一根K線出現那個This Bar at CLOSE的動作。很明顯的,HTS這樣的機制,必然會使你想要成交在收盤價想望落空,因此如果你的想法是在收盤價動作的類型,請你要好好確認,那樣的績效回廁所出現的數據,與你想像中的有多少落差?


在真實的交易世界中,以收盤價作為交易決策的方式,必然只有在下一根的開盤價執行才是可以真實的存在的也就是Next Bar at MARKET(下一根K線市價動作)。成交價位就會以下一根的開盤價來記錄。
BUY NEXT BAR AT MARKET
SELL NEXT BAR AT MARKET
EXITLONG NEXT BAR AT MARKET
EXITSHORT NEXT BAR AT MARKET

如果你發現了,把你的交易程式中的This Bar at CLOSE通通改成Next Bar at MARKET會造成回測績效的滑落而不爽的話,請你好生想想,這會是什麼原因,當然是幾乎每天都會有的跳空缺口囉!而你撰寫一個交易程式倒底是要自HIGH用還是用來作為業務手段,或是自己要從中操作,真實的賺到錢?面對真實的世界,永遠是交易的第一步。

不過,要達成This Bar at CLOSE的交易想法,不是完全不可能的,的確是存在著有一點點「風險」的方式的。

熱門文章