2012年5月21日 星期一

別用停損停利來提高回測績效


程式交易小學堂─期貨投機事業的王道
從我開始接觸投機交易開始,不知有多少前輩、大師諄諄告誡停損的重要性。於是,當我開始學著把腦袋裡的交易想法(多數是到處偷來的)編寫成軟體平台看得懂的程式語言時,總是不忘加入停損的機制。

在停損的設計上本來是賠個100點我會覺得很痛苦,所以就把停損設成100點。也不知道從什麼時候開始,我發現原來在交易策略裡面停損100點是很笨的!慢慢的,我嘗試著把停損改成150點、80點、90點、200點...1%、1.5%、0.5%...為我手上每個個別策略選擇一個更讚的停損點數,至於怎麼選?當然是看回測報表啊。後來,我又聽說停利也很重要,原來真的有些固定點數或是固定百分比停利的方式會大幅提高回測的績效耶!不過,到點就停利是不是跟"讓利潤奔馳"的名言對幹?當然是!於是移動停利的方式就拉進來用了。

如果這篇文章寫到現在竟然是變成在頌揚停損/停利的好處,我想我一定是在寫標題的時候打錯字又忘記刪除了多出來的"別用"。當然不是這樣的啦!我不想把這篇文章要表達的重點導向成之前轉貼過凌波微步大的「交易系統應該永遠有單」而是要從另外一個面向去談停損/停利在所謂的歷史過度最佳化上的風險。

想一下,停損的機制,最少也需要一個參數,停利如果採用移動式停利更需要採用兩個參數,如果再使用多階層的共同運作方式,光是停損停利可能就會引進數十個參數了。在一個低過度最佳化風險要求的系統中,我們會希望參數的數量越少越好,當參數超過兩個以上就已經很難用直覺式的圖表判讀去觀察某個參數對系統績效的影響,更不論當停損或是停利之後的再進場會衍生出更多對原始策略的修改,比如出場後三根、五根不再進場(這有什麼道理?)。

有限的經驗內,我也曾經沉溺於停損/停利機制對回測績效的提昇作用(其實最大作用幾乎都是在降低 MaxDrawDown)。因為停損停利引進的參數調整往往會給交易系統帶進更多更複雜的必須修改(修改不是修正),也因而造成我們很難對系統內的進場/出場訊號的效度評估,就算程式是自己寫的,當系統複雜到自己都很難猜出可能動作的時候跟黑盒子也沒什麼兩樣了。

停損的引進只應該是個人資金打擊的單次最大忍受,比如我有200萬可以交易,如果一次交易讓我虧掉5%,我會痛不欲生,那麼停損就該是10萬元,而不是把這停損的多少用回測報表去測試看看8萬會不會更好?或者我該多忍受一點,因為12萬的話回測績效會更讚。至於停利...我不用。

當我們不依賴各式各樣的停損/停利技巧來提高回測的績效的時候,就會開始逼自己去真實的思考一件事:我到底能做多大的波動?

熱門文章