Sunday, September 06, 2009

用統計檢定你的交易系統

用統計檢定你的交易系統: "


今天讓我們假設一個場景:




假設我今天拿了一個十元硬幣,這個十元硬幣看起來就跟你每天用的十元硬幣一模一樣。但是我說我手上的這個硬幣是個神奇硬幣,每次丟都一定會丟出正面,絕對不會丟出反面。然後我這個硬幣要賣你一百萬元,之後你可以拿這個硬幣去跟別人賭博,用來賺錢。請問你會不會買?



大部分的人一定會說我是在虎爛,硬幣丟出正面和反面的機率應該都是一半一半,怎麼可能會只丟出正面。然後可能大家就轉頭走人了。可是我為了要證明這個神奇硬幣真的只會丟出正面,就往天空一丟,掉到桌子上後,果然出現正面了。這時候請問你會不會買?



應該還是不會有人買吧,因為丟一次硬幣,出現正面的機率也有50%,根本不能證明這是個神奇硬幣,這應該純粹是運氣好才會讓我丟到正面。



接著我又丟了一次硬幣到空中,這次掉到桌子上後,又出現正面了。這時候你應該會說,這次還是你運氣好,連續出現兩次正面的機率等於50% * 50% = 25%,也就是四次裡面就有一次的機率會連續出現兩個正面。我的話根本不能採信。



好,接下來我又丟了一次,果然又出現正面,這時候你還是會繼續說,丟三次硬幣都出現正面的機率等於50% * 50% * 50% = 12.5%。等於平均丟八次,就會有一次的機率會出現三個正面。我可能是因為運氣好,才會連丟出三個正面。這樣你要我拿一百萬出來買,根本不可能。



然後,我又接著丟了第四次,第五次,第六次,這樣一直丟了一百次。而且每次都真的出現正面,這時候請問你會不會相信這是個神奇的硬幣了?



這時候應該大部分的人都會相信了吧。因為一個普通的硬幣要連續丟出一百次正面,這樣的機率真的是太低太低了,機率低到讓人不得不相信這真是個神奇的硬幣。(<=這句話是重點)。




=============================================================================================



好,接下來我要賣你一個交易系統。我說這個交易系統是個神奇的交易系統。同樣的,我要賣你一百萬。請問你會不會買?



你一定要我證明給你看,這個交易系統是的確會賺錢的。所以我就把這個系統昨天的一筆買賣訊號拿給你看,訊號的確顯示昨天買賣一次,獲利五千元。請問你會不會買這個神奇的交易系統?



應該不會吧。你心裡一定在想:只靠一筆交易資料,就說這是個神奇的交易系統,這樣也未免太虎爛了吧。我隨便丟飛鏢也有可能會賺錢啊。



接著我把這個神奇交易系統在上個星期的五筆交易資料拿給你看,上個星期有五筆交易資料,其中三筆賺錢,兩筆賠錢,但是整體是賺錢的。這時候你應該會說,只憑五筆交易資料就要證明這是個神奇的交易系統,怎麼可能叫我拿一百萬出來買。我叫一隻猴子來操作也有可能有同樣的結果。



我接著拿出這個神奇交易系統上個月的三十筆交易資料出來,其中二十筆賺錢,十筆賠錢。但是平均上個月讓我們賺了十萬元。這時候你可能會半信半疑,因為只有三十筆交易資料,如果運氣很好的話,射飛鏢也可能會有同樣的結果。



然後我把這個交易系統過去十年的三千筆交易資料列出來給你看,其中有兩千筆是賺錢的交易,一千筆是賠錢的交易。而且過去十年的這三千筆交易資料顯示,整體平均下來可以讓我們賺一千萬元。請問這時候你會不會花一百萬來買這個系統?



這時候你心裡面可能會出現兩個想法:


第一個想法:這個交易系統一定是經過 curve fitting了,才能在這麼多筆的交易資料(三千筆交易)顯示出獲利(預測)的能力。



第二個想法:這個交易系統可能真的很厲害,如果用射飛鏢的方法,要在這麼多筆交易資料(三千筆交易)中顯示出可以獲利(一千萬元)的機率真的是太低太低了。機率低到讓人不得不相信這真是個神奇的交易系統。(<=這句話是重點)




=====================================================================================================




上面的這兩個例子,都說明了如何用統計檢定用來判斷神奇硬幣(神奇交易系統)的觀念。因為我們心裡面都會先假設這個神奇硬幣(神奇交易系統)只是個一般的硬幣(無效的交易系統),這時候我們心裡面的這個假設,統計學裡面就叫做虛無假設(H0假設)。但是隨著我們收集到越來越多的樣本數量(硬幣丟的次數,和交易系統的交易次數),證明如果這真是個普通的硬幣的話,那連續得到一百個正面的機率(p-value)真的是太低太低了,機率低到讓我們不得不相信,這個硬幣(交易系統)的確 "不是" 一般的硬幣(交易系統)。這時候我們就會否決掉原本我們心裡面的這個虛無假設(H0),轉而相信這的確是個神奇的硬幣(神奇的交易系統),這時候在統計學的檢定來說,就是否決虛無假設(H0),轉而接受對立假設(H1)。




所以,為什麼之前的文章有報告過,我們希望看到歷史回測出來的資料,交易筆數要越多越好,至少要超過三十筆資料(我個人prefer看到超過300筆以上的資料),就是因為交易筆數越多,代表樣本數越多,這樣在統計學上的信賴度(confidence level)就會越好。而越好的confidence level,可以幫助增強我們在實際交易使用這個交易系統的信心。



因為當我們實際交易的時候,拿的是真真實實的資金下去賭博。除非你對自己的交易系統有信心,經過了各種的測試和檢定。不然千萬不要貿然的就把自己的資金輕易的就暴露在市場的風險下(不要跑出一條45度角往上揚的資金曲線就丟錢下場了)。所以請你先問一問自己,你自己的交易系統有沒有經過這些測試和檢定:



1. Curve Fitting(過多的參數,太短的回測時間長度)


2.這個系統運用在多市場的績效檢定(如果你是做台指期的,測試日經,香港恆生,新加坡摩台指看看)


3.這個系統運用在 multi time frame的測試(比如說你的系統是15分鐘線的,那麼測試看看13分鐘,14分鐘,16分鐘,17分鐘看看)


4.太少的交易筆數


5.參數孤島/參數高原分析(交易系統的穩健度分析)


6. In sample, out-of-sample測試(比如說十年的歷史資料,只拿前八年跑最佳化,用最後兩年資料來驗證)


7.Walk Forward Analysis(移動窗格檢定)


8.統計的顯著性檢定



相信我,當你的交易系統都經過了這些測試和檢定之後,在我們實際交易的時候,你的心臟就會跟鋼鐵一樣堅強。面臨drawdown虧損的時候,心態不會像熱鍋上的螞蟻,掙扎著到底要不要繼續遵守系統的訊號。只因為你信任你的交易系統,知道你的交易系統是夠穩健的(Robust)。




有關於如何用統計檢定來檢驗交易系統績效的詳細說明,有一位姜林杰祐老師所寫的"程式交易系統設計與建構"這本書裡面有更詳細的說明。如果還沒有買書的朋友,可以來這裡看。他的說明比這篇文章還要清楚的太多了。值得大家研讀。謝謝。



http://www.programtrading.tw/viewtopic.php?f=8&t=104





"

No comments: