之前在此篇『Back-Adjusted連續月延伸探討』提到過連續月的正規處理方式,也就是把換月時的缺口補起來,因為很多海外的商品類期貨換月時的價差缺口都很大(平均1%~4%),把這個缺口補起來,交易的進出訊號就不會受此缺口的雜訊所影響,但如果是一般股票市場的指數期貨(台指期、道瓊...等等),則其換月價差缺口的雜訊其實相對小很多(平均小於0.5%),所以如果手頭上剛好沒有Back-Adjusted連續月的歷史資料,且交易的是台指期、道瓊等等的合約,是可以考慮改用另一種替代方案(但海外的商品類期貨則不太適合此替代方案,因為平均1%~4%的缺口雜訊太大了)
替代方案
以下說明以台指期(TXF)的結算日為例- 開發與交易時,皆使用非Back-Adjusted連續月(換月缺口沒有補起來)
- 策略開發時,IS最佳化與OOS驗證時,都在結算日平倉,以避免評估策略參數時的誤差(加入下面訊號)
- 上線交易時,則改成在結算日轉倉到次近月(移除下面訊號)
請注意,結算日是否平倉在策略開發與上線交易時是不一樣的,詳述於下文
台指期的結算日平倉訊號如下圖所示,因為有時候第三個星期三剛好是假日(幾乎都是農曆過年),所以結算日會順延到下一個交易日,所以需要在一開始指定例外的結算日(2023年以前的例外結算日已加入,之後的新例外,請自行新增)
訊號下載點:Close On Taifex Last Trading Days.pla
策略開發時在結算日不平倉會導致評估誤差
在結算日平倉的目的
- 消除換月價差缺口虛賺、虛賠的不實績效,使得評估不同參數的績效時能更公平
- 雖然以每次結算日犧牲一筆交易的完整性為代價,但對於不同參數的績效比較仍是公平的,因為不同參數都同樣做這樣的犧牲
- 當使用參數最佳化或在進行參數調校時,也能避免掉進這些虛賺、虛賠的陷阱裡
- 縱使有換月價差缺口,也不會導致實際交易損益與回測損益不一致
以此篇『台指期策略最佳化(近年盤後時段)』的【驗證用的前段OOS資料區塊】為例,結算日平倉與不平倉的差異如下圖所示(採單口交易),此為樣本外的資料,所以並非最佳化所造成的差異
顯而易見的,右側結算日不平倉的情況下,權益曲線明顯偏離黃色對角線,這是換月價差缺口所造成的誤差(虛賺、虛賠),而左側結算日平倉的曲線,會比較接近真實的績效,請注意只是比較接近,因為原本該繼續留倉的績效因為結算日平倉而被截掉了
換月價差缺口不處理易導致績效被低估
如果再進一步來看每年的績效差異,一樣是以此篇『台指期策略最佳化(近年盤後時段)』的【驗證用的前段OOS資料區塊】與【驗證用的後段OOS資料區塊】為例,結算日平倉與不平倉的差異如下圖所示(採單口交易),此為樣本外的資料,所以並非最佳化所造成的差異
右邊結算日不平倉且績效明顯較差的年度已用橘色方框圈選,很明顯右邊結算日不平倉大多表現得比較差,也就是虛賠比較多,而虛賺比較少,我推估是因為當策略有部位時,大多處於明顯趨勢,而當下的次近月合約大多比較保守,也就是說近月如果超漲(超跌),則次近月的價格會拉下來(上去)一些,容易造成多單(空單)換月時的向下(向上)跳空缺口的虛賠現象,而這也是有些人改用Back-Adjusted連續月後,發現績效變好的部分原因,因為虛賠的現象消失了
上線交易時為何反而要在結算日轉倉而不平倉?
前面策略開發時,在結算日提前出場只是為了消除虛賺、虛賠的不實績效,使得評估不同參數績效時,能更公平且接近真實績效,此外在參數最佳化或參數調校時,也能避免掉進這些雜訊的陷阱裡,但在上線實際交易後,已不需要評估不同參數的績效差異了,所以無須再犧牲結算日的交易完整性
如果交易策略的績效特徵是屬於【損益不對稱型】,也就是單筆獲利可以很大,但虧損總是很小,如下圖的綠色區塊與紅色區塊所示,那萬一結算日那天平倉的那筆剛好是單筆可以獲利很大的那筆,那不就虧大了嗎?大行情要來,是不會特別跳過結算日的
另一方面,如果策略是屬於突破型的策略且在結算日平倉的話,那下一個時段開始後,如果又突破,就會再進場一次,造成虛耗效果(兩筆損益合計起來變差),如下圖所示
實際上線交易時,就算遇到換月價差缺口的話(因為使用的是非Back-Adjusted連續月),在結算日轉倉後,其實也不會怎樣,因為券商帳戶的權益值不會有虛賺、虛賠的問題,唯一的缺點是券商帳戶的損益值與回測時會不一致,其實就算使用正規的Back-Adjusted連續月,有時候也會有券商帳戶的損益值與回測時會不一致的現象,因為每次換月價差缺口被補起來,歷史資料就會被調整一次,所以其實不用太在意這點,券商帳戶的實際損益才是最重要的
上線交易如果採用的是結算日平倉的方式,券商帳戶的損益值雖然會比較貼近回測值,但為了一致性而犧牲掉淺在的大行情機會或造成虛耗效果,似乎不太划算
沒有留言:
張貼留言
(僅顯示與本文切題的留言)
注意:只有此網誌的成員可以留言。