2007年5月7日 星期一
特定時間(收盤)即時訊號與回測兼顧
之前要在尾盤做平倉的動作,我們會運用time這個函數,讓他在TIME=134500的時候去發出平倉的訊號。因為time是抓取K棒的時間,而不是真實的時間,所以如果在當天的最後一根K線出現的時候,HTS就會動作,這樣通常就不是在尾盤,比如以5分線來說,134001的時候,134500的K棒就會出現,但是這時候的K線其實距離收盤還有5分鐘,雖然這時候如果要決定平倉是差不多在此時丟單子出去了,這在低時間層次的問題不大,因為134001去丟單子,成交價應該與當天收盤價相去不遠,因為這5分鐘是撮合交易的;但是較高的時間層級就麻煩了,比如30分鐘、60分鐘,最後一根K線出現的時間到收盤的時間起時還有一段,所謂134500的K棒時間一出現就丟單子的話,其實與收盤價常常相差很大。
所以我做一個如何在尾盤完平倉的實證給大家看看,我寫下的程式碼如下,你可以從其中去體會怎麼玩。
===============================
if time = 091500 then
buy ("BT") this bar at close
end if
if q_time >= 091200 and q_time < 091400 then
buy ("BQ") this bar at market
end if
if time = 092000 then
sell ("ST") this bar at close
end if
if q_time >= 091700 and q_time < 091900 then
sell ("SQ") this bar at market
end if
====================================
我故意把運用TIME所觸發的訊號取名為BT與ST,而運用Q_TIME所觸發的訊號取名為BQ及SQ,這樣可以方便在畫面中區別,請你好好對照程式碼與以下的畫面。
首先在畫面上注意真實的時間(藍色方框),這時出現了BQ的訊號,表示這是由Q_TIME的部分所觸發的。
接下來在過了091500後我讓這畫面RELOAD一次,可以見到畫面的訊號變成BT了,為什麼會這樣?因為Q_TIME這個函數只會在畫面上的最後一根K線有時間的提供,其他的K線是沒有的,所以在原本有BQ的K線因為那根的Q_TIME已經不是介於091200與091400之間,所以IF語句就不成立,但是那根原本有BQ訊號的K線因為K線時間=091500,所以產生了BT的訊號出來。並請你注意一下,這張圖中因為真實時間沒有達到091700,所以雖然下一根K線已經出現,但是因為使用Q_TIME這邊的賣出條件尚未成立,所以並不會出現SQ的訊號,然而,K線時間卻是已經符合TIME=092000囉!那為什麼沒有見到ST的訊號呢?因為這部分的賣出指令用的是THIS BAR AT CLOSE,所以他會壓抑到CLOSE的時間到了才會出現ST的訊號。
相同的邏輯,請注意一下這張圖,在時間達到091700後,SQ的訊號就跳出來了,如果這畫面沒有做RELOAD的動作的話,會因為SQ的訊號存在,導致ST的訊號不出現,而在RELOAD後則因為SQ訊號的條件不成立而ST的條件成立了,畫面上會出現ST而不是SQ了。
由以上的變化可以得知,BQ、SQ其實都是為了在盤中即時性的出現動作的訊號而使用THIS BAR AT MARKET這樣的DIRTY指令,但是程式的歷時回測,則根本不會出現BQ、SQ,所以在尾盤或是特定時間的買進賣出或是平倉動作的績效不會受到影響,且歷時回測績效則依然可以保持正確。
弄得這樣複雜是為了什麼?很簡單~為了操盤與生活品質要兼顧^^
熱門文章
-
說起資金管理,大約都會耳聞過 Kelly formula,也會聽過它其實用在交易上的問題很大。後來有以 Kelly 精神生出了 Optimal F。而它的來由與計算方法,我就不多贅述,請自行參考: 牧清華的文章 。 要把 Kelly formula 寫成 MultiCha...
-
在執行多策略組合交易的時候,每個策略圖表獨立運作,各自下各自的單。但我們常常可以發現在某些時候(特別是開盤),出現 A策略要翻多、B策略卻要翻空,對我們的帳戶來說,因為策略圖表獨立運作的原因,實際上卻幾乎同時發出買進、賣出的委託單,而成交回來的價格又往往是買外盤、賣內盤,這完全是...
-
承繼自上篇「 函數:十進位轉二進位 」。 說實在的,這篇文章在我自己的心中就像是在引導讀者走向 Curve over fitting。這個方法,基本上這麼做跟把圖表攤出來,搞 DataMining 也滿接近了 XD 過去,我們會在策略的測試中使用"參數"...
-
這個秘密我過去只在課程或是講座中才會提。今天把它公開,為什麼我以前下大台,到了近年卻下起小台來了。理由就是...這是天上掉餡餅的好事啊!不費吹灰之力就可以提昇自己的交易系統績效的期望值,何樂而不為! 首先,你應該會覺得小台的手續費比大台貴,怎麼可能不下大台改去下小台?簡...