上一篇提到了組合式清除交叉驗證(CPCV)的回測方法,我們就擁有兩種回測方案了一個是WF一個是CPCV。 今天要介紹一種少見但是十分有效也有趣的回測方案: >**合成數據回測** 這個方法使用歷史數據來生成一個具有從觀察到數據估算出統計特性產生的合成數據集。這將使我們能夠在大量未見過的、合成的測試集上回測一個策略,因此減少該策略已經適配到一個特定數據集合而過擬合的可能性。 ### 交易規則 投資策略可以被定義為假設市場效率不足存在的算法。有些策略依賴於計量經濟學模型來預測價格,使用宏觀經濟變量如GDP或通膨;其他策略使用基本面和財報資料來定價證券,或在衍生性金融商品中尋找套利的機會等。例如,假設金融機構傾向於在美國財政部拍賣前兩天賣出非當期的債券,以籌集購買新「紙張」所需的現金。人們可以通過在拍賣前三天賣出非當期債券來做空賺錢。但如何做呢?每一個投資策略都需要一個實施手法,通常被稱為「交易規則」。 市場上面有數十種對沖基金風格,每種風格都有數十種獨特的投資策略。雖然策略在性質上可以非常多樣化,手法相對來說是一致的。交易規則提供了必須遵循以買進和賣出一個部位的算法。例如,當策略的信號達到某一特定值時,將買進一個部位。賣出部位的條件通常通過獲利和停損的閥值來定義。這些買進和賣出規則依賴於通過歷史模擬來校準的參數。這種做法導致了嚴重的回測過擬合的問題,因為這些參數針對樣本內的特定觀察值,以至於投資策略過於依賴過去,而不適用於未來。 有一點很重要的澄清,我們有興趣的是最大化績效的賣出條件。換句話說,部位已經存在,問題是如何最優地賣出它。這是執行交易者經常面臨的兩難,不應該與投資於一種證券的買進和賣出閾值的確定混淆。 雖然評估回測過擬合的概率是一個有用的工具來剔除多餘的投資策略,但最好還是盡量避免過擬合的風險,至少在校準交易規則的中是這樣。理論上這可以通過直接從生成數據的隨機過程(很多金融論文都提到,也可以看[維那過程](https://zh.wikipedia.org/zh-tw/%E7%BB%B4%E7%BA%B3%E8%BF%87%E7%A8%8B))中導出交易規則的最優參數來實現,而不是參與歷史模擬。這是我們在這裡採取的方法。使用整個歷史樣本,我們將描述生成觀察到的收益流的隨機過程,並在不需要歷史模擬的情況下導出交易規則的參數的最優值。 ### 問題 #### (此處為了要未來能夠理解數學模型,我們刻意使用數學的寫法來描述清楚的定義) 假設一個投資策略S投資於i=1,…,I的投資機會。在每個機會i,S以$mi$單位的證券X進行交易,其中$mi\in(-\infty,\infty)$。買入這樣的機會的交易價值為$miPi,0$,其中$Pi,0$是$mi$證券交易的平均價格。由於其他市場參與者進行了證券X的交易,我們可以在市場經過$t$次觀察到交易後,將該機會i的價值標記為市價(MtM)為$miPi,t$。這代表如果按照$t$次交易後在市場上觀察到的價格清算機會i,則其價值將為$miPi,t$。相應地,我們可以計算機會i在$t$次交易後的MtM利潤/損失為$\pi_{i,t}=mi(Pi,t-Pi,0)$。 一個標準的交易規則為在$t=T_i$時賣出機會i,這會在滿足以下兩個條件之一時發生: * $\pi_{i,T_i}\geq\overline{\pi}$,其中$\overline{\pi}>0$是停利閾值。 * $\pi_{i,T_i}\leq\pi$,其中$\pi<0$是停損閾值。 這些閾值等同於我們在討論的上下label(1or-1會觸發的那個)。因為$\pi<\overline{\pi}$,只有一個賣出條件能觸發從機會i的賣出。假設機會i可以在$T_i$時賣出,其最終的利潤/損失是$\pi_{i,T_i}$。在每個機會的開始,目標是實現一個預期利潤$E0[\pi_{i,T_i}]=mi(E0[Pi_{i,T_i}]-Pi,0)$,其中$E0[Pi_{i,T_i}]$是預測價格,而$Pi,0$是機會i的買入價格。 >**定義1:交易規則**:策略S的交易規則由一組參數R定義,即$R:=\{\pi,\overline{\pi}\}$。 一種調整(暴力方法)交易規則的方法是: 1. 定義一組R的替代值,$\Omega:=\{R\}$。 2. 在R的替代值$R\in\Omega$下,模擬(回測)S的表現。 3. 選擇最佳的$R^*$。 更正式地: $$ R^*=\text{argmax}_{R\in\Omega}\{SRR\} $$ $$ SRR=\frac{E[\pi_{i,T_i}|R]}{\sigma[\pi_{i,T_i}|R]}(13.1) $$ 其中$E[.]$和$\sigma[.]$分別是$\pi_{i,T_i}$的預期值和標準偏差,條件是在交易規則R下,超過$i=1,…,I$。換句話說,方程式(13.1)在替代交易規則R的空間上最大化了S在I個機會上的夏普比率。因為我們有兩個變量在樣本大小I上最大化SRR,很容易使R過度擬合。一個簡單的過度擬合發生在一對$(\pi,\overline{\pi})$針對少數異常值。這裡接著說明回測過度擬合的嚴格定義,這可以應用於我們對交易規則的研究。 >**定義2:過度擬合的交易規則(OverfitTradingRule)**:如果$E\left[\frac{E[\pi_{j,T_j}|R^*]}{\sigma[\pi_{j,T_j}|R^*]}\right]<\text{Me}_\Omega\left[\frac{E[\pi_{j,T_j}|R]}{\sigma[\pi_{j,T_j}|R]}\right]\),其中$j=I+1,…,J\),且$\text{Me}_\Omega[.]$是中位數,則$R^*$被視為過度擬合。 直觀地說,一個最佳的樣本內$IS,i\in[1,I]$交易規則 $R^*$ 在預期將在樣本外(OOS,$j\in[I+1,J]$)表現低於其他交易規則 $R\in\Omega$的中位數時會過度擬合。當存在能夠針對特定觀察值的IS自由變量,或$\Omega$中的元素數量很大時,很難不對一個回測進行過度擬合。交易規則引入了這樣的自由變量,因為$R^*$可以獨立於$S$來確定。結果是回測從IS的隨機噪聲中獲益,使$R^*$不適合用於OOS的機會。當$\Delta\pi_{i,t}$顯示出序列依賴性時,過度擬合會導致OOS的表現下降。雖然PBO提供了一種有用的方法來評估回測在多大程度上已經過度擬合,但最方便的還是在一開始就避免這個問題。 ### 我們的架構 直到現在,我們還沒有描述觀察值$\pi_{i,t}$從哪個隨機過程中抽取。我們有興趣找到一個最優交易規則(OTR)用於那些過度擬合將最為有害的情境,例如當$\pi_{i,t}$表現出序列相關性的時候。特別地,假設價格遵循一個離散的Ornstein-Uhlenbeck(O-U)過程 $$ P_{i,t}=(1-\phi)E_0[P_{i,T_i}]+ \phi P_{i,t-1}+\sigma\epsilon_{i,t}\quad(13.2) $$ 這樣隨機震動$\epsilon_{i,t}$是獨立同分布的(IID)並服從$N(0,1)$。這個過程的初始值是 $P_{i,0}$,機會 $i$所目標的水平是$E_0[P_{i,T_i}]$,而$\phi$決定了$P_{i,0}$向$E_0[P_{i,T_i}]$收斂的速度。因為$\pi_{i,t}=m_i(P_{i,t}-P_{i,0})$,方程(13.2)意味著機會 $i$的表現是由以下過程來描述的 $$ \frac{1}{m_i}\pi_{i,t}=(1-\phi)E_0[P_{i,T_i}]-P_{i,0}+ \phi P_{i,t-1}+\sigma\epsilon_{i,t}\quad(13.3) $$ 從Bailey和LopezdePrado[2013]中的Proposition4的證明,可以顯示方程$(13.2)$指定的過程是高斯分佈的,具有參數 $$ \pi_{i,t} \sim N\left(m_i\left((1-\phi)E_0[P_{i,T_i}]\sum_{j=0}^{t-1}\phi^j-P_{i,0}\right),m_i^2\sigma^2\sum_{j=0}^{t-1}\phi^{2j}\right)\quad(13.4) $$ 並且它的定態性的一個必要充分條件是$\phi\in(-1,1)$。給定一組與機會 $i$相關的輸入參數$\{\sigma,\phi\}$和初始條件$\{P_{i,0},E_0[P_{i,T_i}]\}$,有沒有一個最優交易規則 $R^*:=(\pi,\bar{\pi})$?同樣地,如果策略$S$預測一個利潤目標$\bar{\pi}$,我們是否可以根據輸入值 $\{\sigma,\phi\}$計算最佳的止損$\pi$?如果這些問題的答案是肯定的,則無需回測就能確定 $R^*$,從而避免了交易規則的過度擬合問題。 :::spoiler ![](https://hackmd.io/_uploads/BktREkne6.png) ![](https://hackmd.io/_uploads/rkXkrkhlp.png) ![](https://hackmd.io/_uploads/H1mWH1hxa.png) ![](https://hackmd.io/_uploads/rJT-H12eT.png) :::