返回列表 發帖

關于BackTesting中一些細節的思考-基于Matlab的量化投資

關于BackTesting中一些細節的思考-基于Matlab的量化投資

<從一個例子說起-基于Matlab的量化投資>這篇文章中,我介紹了FRB策略在IFCUAL上使用經驗固定參數的測試結果,我們看到FRB策略在IFCUAL上都是正收益的一個系統,但是資金曲線并不完美有好有懷,直觀感覺FRB對于固定品種調整適當參數后其效果會變好,更多關于參數尋優調整和策略通用性的討論放在后面文章進行,這里先來討論一些關于回測(BackTesting)中的一些細節問題。

回測的目的:盡可能的真實地還原實際交易過程!以期檢測策略的表現。

首先需要明確回測的目的是什么,這樣做回測才有意義。回測的目的就是真實地還原實際的交易過程,來檢查相關策略在歷史行情的表現,下面關于回測中的一些細節問題討論,我會時刻圍繞這個目的來進行討論,因為只有明確這個目的,討論才有意義。

回測標的的選取

由于期貨是有交割的,所以相應的品種的數據并不連續,這就涉及到一個問題,我們進行回測時選取什么回測標的?可以有N種定義方法將相關的期貨合約品種連接起來,但那種是在某種意義上最合理的呢?回想回測的目的(盡可能的真實地還原實際交易過程!),實際交易中的你我是怎么進行的?

我想對于單邊趨勢類策略大家肯定會在相關品種的主力合約上進行交易,對于其他類型策略(震蕩類、對沖類)可能大家會有其他選擇,這里單就單邊趨勢類策略而言。

這里有個問題,“主力合約”怎么定義?可以定義 成交量*持倉量 最大的為主力合約或者其他你認為合理的定義,目的是找出你心中的“主力合約”(活躍合約)。

有了主力合約的定義,那么回到回測標的的選取就有了答案,那就用 主力連續合約 進行回測即可,這樣就能真實的反應實際交易過程,主力連續合約的構造按照主力合約的定義給出即可:

假設有ABCD四個同一品種不同月份的期貨合約,現把這幾個不同月份的合約進行連接,設T為時間軸,在Ti天計算成交量*持倉量,該值為最大的合約為主力合約,但該換月過程“不可逆”,即 若某一合約K(屬于ABCD中一個)在Tk天之前做過主力合約,在Tk天主力進行了換月,在Tk天之后的某一天又為K合約的成交量*持倉量為最大值,此時忽略K

可能有人采取使用某一品種的所有合約的加權平均的指數作為回測標的,或者采用在指數上發現信號,在主力合約上下單子進行回測,按照“盡可能的真實地還原實際交易過程”這個回測目的而言,我個人不認為這種選取加權指數或者其他方式為回測標的是好的方式,當然你可以認為這是一種信號再處理的方式,可以保留意見。

沖擊成本的估計

沖擊成本是回測中的未知量,其大小理論上和市場的深度和廣度相關,最有說服力的估計方式就是你有多年的實盤賬單,進而可以估計出某一品種的實際沖擊成本的大小,但往往在做回測的您還拿不出“多年的實盤賬單”,只能進行大致估計,一般而言,流動性好的品種,使用1-2slip作為沖擊成本的估計應該足夠了,流動性不好的需要更大的沖擊成本,比如股指的遠月合約,其沖擊成本有時候可能會大到5-7BP

PS:沖擊成本也并不一定對你的策略是不利的,這點要見仁見智的看,依據不同的交易思路和策略,有時候沖擊成本會對你有利。往往有時候可以巧妙的利用這一點來為我所用。

手續費的設置

         手續費一般是固定的成本,為了嚴格一些可以將手續費設的大一些,比如設成交易所手續費的1.5-3倍,當然也沒有必要將手續費設置的過大,因為所有的手續費在手續費趨向于無窮大的時候都會廢掉,如果你手續費設置的過大,會湮沒你策略本身的某些細節,只要手續費設置的稍微大一點,表明你的策略能抗衡手續費就行了,更多關于策略對于手續費的敏感性,可以單獨做敏感性壓力測試。

入場離場位置的設置

         我采用的方式是,設Bar(k)為當前TickBar,檢查前一個Bar的收盤價Bar(k-1).Close(或者使用前一個Bar的其他價格)若發現入場信號,則用當前Bar的開盤價Bar(k).Open加入沖擊成本作為回測的入場價,離場方式的確定類似。

         這樣做的目的是為了“盡可能的真實地還原實際交易過程”,可能有人采用若在當前Bar的收盤價(或使用當前Bar的其他價格信息)上發現入場信號,則用當前Bar的收盤價加入沖擊成本作為回測的入場價,你可以做做測試,上面兩種入場離場方式的選取是有一定差異的,在合約連續性足夠好的情況下,前一個Bar的收盤價可以無限逼近當前Bar的開盤價,進而兩種方式可以近似等同,但現實情況往往不是這樣,按照“盡可能的真實地還原實際交易過程”這個回測目的,我個人認為前者的方式更佳。

交易系統的評價

         關于交易系統(策略)的好壞評價,這一部分后面會有專門文章進行討論,這里先說幾句,如何能更加全面的評價一個交易系統是一個很復雜的問題,這并不是用幾個簡單的指標(年化收益率、夏普比率等等)就能很好描述的,而且當下大家熟悉的指標都不是穩健的指標,并不能很好的描述這個交易系統的某個側面,在后面我和大家討論一些穩健的統計指標以及其他一些方面來綜合描述一個交易系統,更多關于“穩健”的定義,請參看穩健統計學(Robust Statistics的相關東西,這里不做深入的講解。

         當然最NB的檢驗一個交易系統的方式,就是“實戰”!其他方法僅僅能從方法論上給自己一個安慰,告訴上天我是在認認真真地最回測,做檢驗,阿彌陀佛!

十五年期貨從業,零傭金開戶,交易所保證金,享高比率返傭!期貨量化無門檻返傭,上萬歐美量化策略,100G量化文檔,最新歐美期貨雜志,無論研究或實盤,均可免費獲得!詳情聯系論壇管理員。

返回列表
速度与激情登陆