2012年5月21日 星期一
別用停損停利來提高回測績效
從我開始接觸投機交易開始,不知有多少前輩、大師諄諄告誡停損的重要性。於是,當我開始學著把腦袋裡的交易想法(多數是到處偷來的)編寫成軟體平台看得懂的程式語言時,總是不忘加入停損的機制。
在停損的設計上本來是賠個100點我會覺得很痛苦,所以就把停損設成100點。也不知道從什麼時候開始,我發現原來在交易策略裡面停損100點是很笨的!慢慢的,我嘗試著把停損改成150點、80點、90點、200點...1%、1.5%、0.5%...為我手上每個個別策略選擇一個更讚的停損點數,至於怎麼選?當然是看回測報表啊。後來,我又聽說停利也很重要,原來真的有些固定點數或是固定百分比停利的方式會大幅提高回測的績效耶!不過,到點就停利是不是跟"讓利潤奔馳"的名言對幹?當然是!於是移動停利的方式就拉進來用了。
如果這篇文章寫到現在竟然是變成在頌揚停損/停利的好處,我想我一定是在寫標題的時候打錯字又忘記刪除了多出來的"別用"。當然不是這樣的啦!我不想把這篇文章要表達的重點導向成之前轉貼過凌波微步大的「交易系統應該永遠有單」而是要從另外一個面向去談停損/停利在所謂的歷史過度最佳化上的風險。
想一下,停損的機制,最少也需要一個參數,停利如果採用移動式停利更需要採用兩個參數,如果再使用多階層的共同運作方式,光是停損停利可能就會引進數十個參數了。在一個低過度最佳化風險要求的系統中,我們會希望參數的數量越少越好,當參數超過兩個以上就已經很難用直覺式的圖表判讀去觀察某個參數對系統績效的影響,更不論當停損或是停利之後的再進場會衍生出更多對原始策略的修改,比如出場後三根、五根不再進場(這有什麼道理?)。
有限的經驗內,我也曾經沉溺於停損/停利機制對回測績效的提昇作用(其實最大作用幾乎都是在降低 MaxDrawDown)。因為停損停利引進的參數調整往往會給交易系統帶進更多更複雜的必須修改(修改不是修正),也因而造成我們很難對系統內的進場/出場訊號的效度評估,就算程式是自己寫的,當系統複雜到自己都很難猜出可能動作的時候跟黑盒子也沒什麼兩樣了。
停損的引進只應該是個人資金打擊的單次最大忍受,比如我有200萬可以交易,如果一次交易讓我虧掉5%,我會痛不欲生,那麼停損就該是10萬元,而不是把這停損的多少用回測報表去測試看看8萬會不會更好?或者我該多忍受一點,因為12萬的話回測績效會更讚。至於停利...我不用。
當我們不依賴各式各樣的停損/停利技巧來提高回測的績效的時候,就會開始逼自己去真實的思考一件事:我到底能做多大的波動?
熱門文章
-
在 MultiCharts 或是 TradeStation 中都有 Set開頭的一些指令可以運用,比如 停損─SetStopLoss、停利─SetProfitTarget,這些都是所謂的 ThisBar 模式運作的特殊指令,它們讓你在條件成立的當根K棒就可以做出對應動作,而不是一...
-
在 MultiCharts 裡,本來我以為 EntryPrice(0) 就代表了最後一個進場的成本價,經過測試後,確定了 EntryPrice( 0 ) 不是最後一次進場價,而是最後進場方向的第一筆價格(可查閱"程式交易語法大全 page 255")。什麼意思...
-
去年開發「 把策略訊號轉換成選擇權去執行 」的時候,一直有個實務上的困擾:標的物價格。 我要把訊號轉成選擇權的時候,事前不能精準的知道要交易哪一個履約價、Put 或 Call,需要在訊號或市況變化的當下才決定交易標的。但在 MultiCharts 的運作架構上,需要開啟欲取...
-
殷鑑不遠。這是 2019/07/03 的台指期貨,在大約 10來秒的時間之中,台指閃崩了近 500點,並且快速回復。這樣類似的事件,在台指不是空前,也不會絕後,即使台灣期貨交易所有所謂的動態穩定機制在運作,這一天,據我所聽聞到也有不少友人在這很短的時間內... 中槍了。這裡,我們...