2017年4月27日 星期四

交易系統建構其之九-一個參數組合不夠用,那你有用兩個嗎?


  延續我們前一篇的話題:「最佳化程序不是為了要找出表現最好的參數組合,而是為了觀察策略參數的穩定區間。」


  但是,我們最終還是必須決定交易策略要使用怎樣的參數組合。而在無數的測試下我們發現到,某個參數組合在測試期間內表現得特別優秀,很可能只是因為它恰好迎合了那段期間的市場走勢,換言之,未來它是否會繼續有這麼突出的績效是值得懷疑的。

  那麼我們要怎麼知道未來表現最好的參數組合是哪一組呢?

  很可惜,我們幾乎不可能知道。所以,有一種解決方法是,在資金規模許可的範圍內盡可能的混合使用數種參數組合,如此一來,不管市場的趨勢呈現的是什麼樣貌,我們手上應該都會有一些參數組合是可以發揮得很好的。我們或許沒辦法取得最好的績效,但也不會是最糟糕的,甚至於因為混合參數的效果,我們可以勝過大多數的單一參數組合績效。

如何評估策略的績效

  這個議題也很重要,甚至可以分成很多篇文章來討論,但是有一個不變的中心思想:「在同樣的風險下賺取最多報酬的,很可能就是最優秀的。」

  而金融交易的風險,不外乎就是資金的虧損,所以我們可以很單純地設定一個資金最大回落水準(或稱最大連續虧損),評估各策略在同樣的資金回落水準下,所賺取的年化報酬率。

實際測試

  在這邊我們一樣用之前舉例過的多方順勢策略來作範例,它的規則如下:

  架構:收盤價高於季線才啟動
  進場訊號:市場價格突破0.4倍的10天期ATR
  出場訊號:310天期ATR的追蹤型停止點
  交易對象:2001-2011的台指期

  一般的最佳化程序,會將參數切得很細去跑數千甚至數萬個組合,然後挑選其中最優秀的一個。但這樣一來就有曲線套入的過度最佳化之嫌。

  請容我再強調一次:我們並非要挑選最佳參數,而是為了瞭解策略的穩定性。我們不打算在這裡呈現數千個結果來比較,那太難聚焦了。我們只比較3x3=9種組合的績效,並且將其混合成參數矩陣:將進場訊號的參數分三組(0.4倍、0.7倍、1.0),出場訊號的參數分三組(1倍、2倍、3),如此一來我們就有3X3種參數組合,之後我們調整部位規模,使它們在測試期間內出現的最大虧損都在20%左右,並比較其績效。結果如下表:
  


  我們可以看到確實每個參數組合的績效有起有落,雖然整體而言都能獲利,但是最好的組合,其獲利能力甚至是最差組合的兩倍以上,如果是你面對這樣的測試結果,會有什麼想法呢?我想幾乎所有的人在面對這樣的結果時,如果只能挑一個參數組合來實際交易的話,都免不了會想選歷史績效最好的那一個,畢竟似乎沒有什麼理由選那些績效比較差的組合。

  可是,這麼一來就落入最佳化的陷阱裡了。

  


參數矩陣

  我認為,某些參數組合的優秀績效沒理由可以一直持續,因此我們該做的並不是只使用績效最好的那個參數,而是應該在穩定的範圍內盡可能同時混合使用不同的參數組合:如果我們同時使用這九個參數組合的策略,你猜想績效會如何變化?

  



  太令人意外了,如果我們同時使用這九個不同參數組合的策略,其績效居然比最佳化的參數組合還要好!而且因為我們廣泛使用各種參數組合的緣故,我們對於市場狀況的變動會有更好的適應力,這個參數矩陣的概念適用於任何策略,甚至我認為每個策略都應該使用參數矩陣,而非將賭注都押在單一參數上面。

使用參數矩陣需要一定的資金規模
  
  但是,同時使用九個甚至更多的參數組合,意味著我們必須把策略拆分得相當細小,每個部位可以承擔的風險必須更低,如果單一參數策略準備承擔2%的風險,那麼將它拆成3X3的參數矩陣,每個部位就只能承擔九分之一的風險,比0.25%還要小。這在小額資金的場合是辦不到的,要能夠充分使用這樣的作法在台指期上,至少會需要三百萬新台幣左右的交易資金。

參數多樣化->策略多樣化->市場多樣化

  如果金融交易真的有聖杯,那我覺得會是多樣化

  這篇文章討論的參數矩陣,其實只完成了參數的多樣化而已,我們接下來該做的,是努力找到其他可以獲利的交易邏輯,並將其寫成機械式的交易策略,這樣才能在策略上做出多樣化;然後進一步地尋找更多適合交易的市場,將之前做過的工作再跑一次,提升可以交易的市場數量,也就是市場多樣化,如此一來,方可朝穩定獲利的目標前進。

  什麼?你覺得太麻煩了?那麼看看剛才我們完成的參數矩陣,它每個年度的報酬率分別如下:

  


  What the hell!?2011年居然賠了這麼多錢?那這個策略會不會只適用於2001-2010年這個期間?其他時間使用這個策略都會像2011年一樣賠到死?

  先別急著下定論,我們可以先看一下2011年的日線圖:

  


  在2011年,幾乎沒有像樣的上升趨勢,前半年大部分時間指數都在6000-6500區間徘徊(數字經過轉倉價差調整),唯一比較有看頭的是中間一度有過的千點行情,但那種破底翻的上漲很難掌握;而後半年則是典型的小空頭市場,大部分時間都在季線以下,試問這樣的市場狀況,多方順勢策略怎麼可能獲利?

  所以不是這個策略出了問題,而是2011年的台指期根本沒辦法靠做多來賺錢,如果我們沒有多方順勢策略以外的交易邏輯,又只死守著台指期市場的話,在2011年這個大盤跌幅超過20%的年度賠錢根本是天經地義的事情。


  所以接下來我們將討論,不同於多方順勢策略的其他交易邏輯。只有試著在策略上多樣化,才能加強因應不同市況的獲利能力。

6 則留言:

  1. 請問一下同時使用這九個參數組合的策略以及下一篇同時使用兩個多方策略是怎麼使用呢?

    回覆刪除
    回覆
    1. 就是進場分三批,出場也分三批,進出各自獨立同時run...
      不知道這樣有回答到你的問題嗎? ^^"

      刪除
    2. 以進場來說, 會先突破0.4ATR就進3口, 接著若突破0.7ATR再進3口, 接著若突破1ATR再進3口, 最多下到9口? 出場也是一樣的邏輯? 多方策略使用也是這樣? 遇到A條件就開始看是否突破ATR?(最多下到9口?) 遇到A+B條件也開始看是否突破ATR?(這也最多下到9口?) 所以全部最多下到18口?

      刪除
    3. 沒錯,就是這個意思
      所以使用參數矩陣以及策略多樣化會大幅增加持倉部位,因此必須要相當程度的資金規模才有辦法運作
      目前我們的系統最多會持有54個部位

      刪除
  2. 折返走勢架構:
    1. 收盤價在季線之上(大趨勢仍向上)
    2. 收盤價在近十天價格區間的下半部(折返走勢)

    進場訊號,是市場價格突破0.4倍的10天期ATR。
    請問,如果每天用0.2的10天期ATR上漲,就算突前前一波高點,也不會進場是嗎?

    回覆刪除
    回覆
    1. 是的,波動率突破就是有這個可能的缺點
      如果要確保一定會進場的話可以用通道突破(n天期高點)
      但是很少有漲勢在發動的時候連0.4倍ATR都衝不過的

      刪除