2008年8月18日 星期一
This Bar:Market VS. Close
程式交易如果沒有讓你的交易訊號可以直接轉化動作:下單到期貨商,那麼交易程式其實跟一般的指標(如KD、RSI〉沒有什麼兩樣,差別的只是在交易程式會在K線上標示著BUY.SELL.XL.XS,都只是看看而已。只有在交易程式可以搭配上自動下單的機制,才是我所想的程式"交易"。而會想進入程式交易的世界的朋友,絕大多數都很看重自己所設想的交易策略到底在過去歷史上如果真的去執行的話,到底有沒有賺錢的可能性?那就是績效回測了。那麼,您會不會希望績效回測所提供的數據是幾乎貼近於真實的世界呢?還是你只是打算做一個指標來看看而已?
如果您想把收盤價突破XX價格已上就市價買進這樣的交易策略,直接翻譯轉成程式的時候而會如後這樣寫的話:if CLOSE > XXX then Buy this bar at Market end if。麻煩你,花點時間看看這篇,很重要的!
之前我寫過一篇『This Bar at CLOSE VS. Next Bar at MARKET 』,有興趣閱讀HTS這樣的程式碼編寫細節的人最好先去看看。
為了寫這一個題目,我先做了兩個買賣訊號,交易規則完全相同:
1.當這一根的收盤價大於前一根的高點就買進(時間必須在下午1點30分以前)
2.當這一根有多單的話,下一根就市價平倉(為了製造更多次的交易)
3.下午1點30分平倉
而對應的程式碼如下:
//This Bar at Market
if close > high[1] and Time
buy this bar at Market
end if
if MarketPosition = 1 then
Exitlong next bar at Market
end if
if Time >= 133000 then
Exitlong next bar at Market
End if
*****************************
//This Bar at Close
if close > high[1] and Time
buy this bar at Close
end if
if MarketPosition=1 then
Exitlong next bar at Market
end if
if Time >= 133000 then
Exitlong next bar at Market
End if
*********************************
先來看看起始的畫面:
這是This bar at Market的
這是This bat at Close的
接著來看看我盤中跑的問題點出現,這是This Bar at Market發生的問題,在盤中,有出現的收盤價突破上一根高點的訊號,因此發出了買進訊號"BUY",這OK,也在下一根就多單平倉掉了,這也是預期中的事情。
然後我去按下"分"這個按鈕,模擬把HTS關掉重新開啟的狀態。TMD!!訊號不見了!那是怎樣?如果你設的交易條件會在盤中出現,到了收盤後訊號會不見的話,請問身為承受帳戶損益的你有什麼感想?
以上這樣的狀況已經點出了This Bar at MARKET的問題了,但是狀況只有這樣而已嗎?那可不止喔!這是盤中不要去動她。
這是把HTS關掉重開以後~如何?真是要命喔!不只賠錢的交易會不見,連還存在的交易的價格都會飄,比看到阿飄還恐怖。
我先就這部份做個解說,其實這類問題已經在我的書中"魔鬼在細節"的章節裡說明了。
一樣的MARKET,在HTS中,不同的命令語句下,實際上就我的觀察是有著不一樣的涵義的。而且不只MARKET如此,就連CLOSE這個大家熟到不能再熟的"收盤價",實際上意義也隨著命令語句的不同而有不同意義與表現。
在這個範例中,「If Close > H[1] then... 」Close並不是真正的所謂的收盤價,以最新的價格去理解會更好,因為在當下未定形的K線中,K線的收盤價是以最新的成交價在畫的,要不然,怎麼會有最新的K線可以看?而在「Buy this bar at Market」中的Market直譯成市價算是很恰當的,價格就是因應上面條件成立時的市價:剛剛大於前一根高點的價格。
這兩個僅以This bar at MARKET 與 This bar at CLOSE作為分別的交易程式,我還做了實際跑個幾天 (10分鐘線)的交易紀錄給大家做參考,當你使用的時間層級越長,這樣的效應就會越恐怖!希望有志進入以HTS為程式交易平台的朋友多多注意。
以下的兩個交易程式從97/08/18的10:20開始做紀錄。
This bar at Market:http://www.yassersoft.com/?menu=CSYSTEM_MANAGE_QUERY&idx=2327
This bar at Close:http://www.yassersoft.com/?menu=CSYSTEM_MANAGE_QUERY&idx=2328
PS.This bar at Close在HTS中訊號出現的"時間"也是個大問題,這有機會以後再專文論述。
熱門文章
-
在 MultiCharts 或是 TradeStation 中都有 Set開頭的一些指令可以運用,比如 停損─SetStopLoss、停利─SetProfitTarget,這些都是所謂的 ThisBar 模式運作的特殊指令,它們讓你在條件成立的當根K棒就可以做出對應動作,而不是一...
-
在 MultiCharts 裡,本來我以為 EntryPrice(0) 就代表了最後一個進場的成本價,經過測試後,確定了 EntryPrice( 0 ) 不是最後一次進場價,而是最後進場方向的第一筆價格(可查閱"程式交易語法大全 page 255")。什麼意思...
-
殷鑑不遠。這是 2019/07/03 的台指期貨,在大約 10來秒的時間之中,台指閃崩了近 500點,並且快速回復。這樣類似的事件,在台指不是空前,也不會絕後,即使台灣期貨交易所有所謂的動態穩定機制在運作,這一天,據我所聽聞到也有不少友人在這很短的時間內... 中槍了。這裡,我們...
-
在 myCTA 的基礎上,我有把這個基礎擴展到多商品,過去曾經有極為少數的幾位朋友上過 myCTA 多商品版本的的課程(當時取名為 SmartCTA),但後來就不再開課,coding 難度實在太高了~ 因為要交易多商品,造成在下單設定上的困擾。當你要同時交易 50、100、20...