2010年8月27日 星期五
系統上路前的死亡準備
在這個台股剛剛可能從多頭走勢轉成空頭走勢的週末,寫一篇大家通常不喜歡的題目:交易系統的槍決日。
因為這就好像是在觸眉頭:「我辛辛苦苦、費盡心力、殫精竭慮寫出來偉大交易系統,怎麼會『死』!」。好巧不巧,在我這幾年搞交易經驗中,該死的交易系統還真的是多不可數,特別是自己寫的策略,要槍斃它所需承受的最大心理壓力其實是對於自己的否定。
前面幾篇:「固定金額停損當部位數量不固定」、「依市場波動調整部位大小」、「逆推資金準備 & R倍數表現」再加上這一篇,我想在這個範圍大約就算結束了。
在假設自己的交易策略不是"最佳化"來的、且『當你對自己的策略越了解,越不需要歷史回測』的前提下,從有了因應不同的市場狀況決定訊號的部位大小,也有了從該交易系統的表現去推算出所需要的資金準備量,而且也做好心理準備去承受未來這個交易系統所帶來對交易帳戶的滋補與傷害後,我們仍需要為這個交易系統做好"系統停損"的準備。
在上回提供下載的 Excel 檔案(http://www.sendspace.com/file/5bgb3r)中有一個欄位是"平均 + 標準差x3",那是以交易系統在過去歷史上所得的交易資料隨機抽取 50 筆,做 30 次所得到的 MaxDrawDown 平均,以那 30 次各別的 MaxDrawDown 計算標準差,取標準差的 3 倍加上平均值而成,除了用來作為一種"雪牆"大小的估計準備外,我想這可以用來作為交易系統的停損判斷。
我們可以讓他多 Run 幾回的"隨機抽取交易",然後記下那好多次隨機抽取交易所計算出的 平均 + 標準差x3 ,取最大的那個數值,做為將來真實交易到後來所產生的 MaxDD 真的壞到某種程度,必須要義無反顧、壯士斷腕地把系統停掉,不要讓它再繼續交易下去了的界線。
姑且不論當初設計這個系統的時候是不是最佳化而來,我們都需面對市場生態變化造成自己的交易策略不再適用的風險。當令人既恨又怕的 MaxDD 真的達到這個預先定下的界線時,希望那不是發生在本金虧損的狀況下,而是還有尚餘利潤的 XD
如果你無法在當這個殘酷的事實發生的時候,擔任那位重要卻顧人怨的劊子手,可以把這段程式碼加入你的交易系統中,讓它自己停止交易訊號...
if MaxIDDrawDown < -482516 then N=0 end if
N 是控制下單口數的變數,這一行必須放在計算下單口數與交易指令之前。
比如:
N = Round(MaxLoss/(AverageTrueRange(Length)*W), 0)
if MaxIDDrawDown < -482516 then N=0 end if
if Buy_Condition then
Buy N contracts next bar at Market
end if
不過,這有個缺點,要是你開啟的K棒數量不夠的話,這個 MaxIDDrawDown 函數所回報的 MaxDD 會一直達不到你所設定的死亡界線,所以最好還是自己做交易記錄 XD
熱門文章
-
說起資金管理,大約都會耳聞過 Kelly formula,也會聽過它其實用在交易上的問題很大。後來有以 Kelly 精神生出了 Optimal F。而它的來由與計算方法,我就不多贅述,請自行參考: 牧清華的文章 。 要把 Kelly formula 寫成 MultiCha...
-
在執行多策略組合交易的時候,每個策略圖表獨立運作,各自下各自的單。但我們常常可以發現在某些時候(特別是開盤),出現 A策略要翻多、B策略卻要翻空,對我們的帳戶來說,因為策略圖表獨立運作的原因,實際上卻幾乎同時發出買進、賣出的委託單,而成交回來的價格又往往是買外盤、賣內盤,這完全是...
-
承繼自上篇「 函數:十進位轉二進位 」。 說實在的,這篇文章在我自己的心中就像是在引導讀者走向 Curve over fitting。這個方法,基本上這麼做跟把圖表攤出來,搞 DataMining 也滿接近了 XD 過去,我們會在策略的測試中使用"參數"...
-
這個秘密我過去只在課程或是講座中才會提。今天把它公開,為什麼我以前下大台,到了近年卻下起小台來了。理由就是...這是天上掉餡餅的好事啊!不費吹灰之力就可以提昇自己的交易系統績效的期望值,何樂而不為! 首先,你應該會覺得小台的手續費比大台貴,怎麼可能不下大台改去下小台?簡...