乾貨 | 對程序化模型的測試與評估

對程序化模型測試來說,所測試的期貨品種越多,越能檢驗出模型對不同品種的適用性。

01、測試參數的設置

測試參數設置的不同所得到的測試結果差異很大,客觀設置測試參數關係到模型交易效果的真僞和對模型的最終取捨。程序化交易模型的測試結果對未來市場有多大的適用性是由以下三大要素決定的:

一是測試的品種數量:所測試的期貨品種越多,越能檢驗出模型對不同品種的適用性;

二是測試的時間跨度:測試所採用的歷史數據越多、時間跨度越長,測試涵蓋的各種市場狀況就越全面,模型的可靠性就越大;

三是交易成本費率的設置:除了手續費費率設置的高低會影響模型盈虧效果以外,另一個最重要的設置參數就是滑點問題。

所謂滑點,是指下單價與實際成交價之間的差價。在期貨市場,滑點的產生大部分是因爲行情波動劇烈,導致網絡數據傳輸延遲。

例如,股指期貨某合約盤中即時報價爲:買價3200.2,15手;賣價3200.4,20手;某投資者想在3200.4價位買入20手,但等他敲入指令後的那一瞬間,有人搶先買了,結果該投資者在3200.4就沒有買到,而且由於行情快速上漲,賣價掛單瞬間變成了3201.0,30手。

爲了能保證成交,該投資者只得撤單後,比即時賣價還要上跳兩個單位進行報價,即以3201.4,20手的買單敲入指令,結果有15手成交價爲3201.2,另外5手成交價爲3201.4。出現的滑點分別是1跳和2跳。顯然滑點增加,會導致交易成本增加,相應的交易收益受損。

與手續費率相比,交易過程中的滑點成本不是固定的,在行情波動不劇烈時交易,可能沒有滑點問題,而在行情劇烈波動時,交易常常會遇到滑點問題。

交易成本對模型效果的影響,還與模型使用的數據週期以及交易頻率有關。通常而言,加載週期越短、交易頻率越高的模型,交易成本對其使用效果的影響越大。

在程序化交易模型測試中,往往需要設置一定的手續費率以及滑點成本去還原歷史運行中可能出現的交易成本。尤其是套利交易及高頻模型對成本極端敏感,模型開發者往往需要根據實際運行的滑點統計數據設定合理的成本。

爲保證程序化交易模型測試結果的可信度,設置模型的測試參數時,應該將滑點設置的高一點,通常爲1跳或2跳,以保證是在扣除了足夠交易成本的條件下得到的測試結果。如果即便是在手續費費率和滑點設置都較高的情況下模型仍能盈利,則說明該模型的盈利效果比較好。

評價程序化交易交易模型性能優劣的指標體系包含很多測試項目,但主要評價指標有年化收益率、最大資產回撤、收益風險比、夏普比率、勝率與盈虧比等。

02、年化收益率與最大資產回撤

交易者最關心的是所建模型到底能不能賺錢,能賺多少?而衡量交易模型賺賠的多少和快慢通常是用年化收益率表示。年化收益率僅是把不同時間週期段的收益率(如日收益率、周收益率、月收益率)換算成年收益率來計算的,是一種理論收益率,並不是真正的已取得的收益率。

程序化交易中的年化收益率其計算公式爲:

年化收益率=有效收益率/(總交易的天數/365)

 

有效收益率=淨利潤/最大使用資金

例如某交易模型在五個交易日內三天賺兩天賠,一共取得的有效收益率是0.1%,則該模型的年化收益率是7.3%。該指標主要是爲建模者提供比較直觀的盈虧數據,供投資者在將該模型收益與其他投資收益做比較時參考。

任何一個程序化交易交易模型都不可能保證每次交易都是盈利的。出現虧損是正常的,但如果虧損幅度過大則會引發模型使用者的擔心。尤其是如果模型辛辛苦苦賺了許多天,一天就虧的回到使用前,那表明模型存在重大風險隱患。於是使用“最大資產回撤”指標,來衡量模型在一段較長時段週期內可能面臨的最大虧損。

最大資產回撤是指模型在選定的測試時間週期內,在任一歷史時點的資產最高值,與資產再創新高之前回調到的資產值最低點時的差值。最大回撤用來描述模型運行可能出現的最糟糕的情況。它是衡量程序化交易模型性能的一個重要風險指標。

有兩種方式表示最大資產回撤。一種是採用最大資產回撤的絕對值來表示,即:

最大資產回撤值=前期最高點-創新高前的最低點;

另一種是採用最大資產回撤率來表示,即:

最大資產回撤率=(前期最高點-創新高前的最低點)/前期最高點

注意,上述兩個回撤指標的區別在於:前者是按回撤金額的最大絕對值來計算,而後者是按回撤比例的最大值來計算的。

比如說,一個原始金額爲100萬元的賬戶,在剛開始交易的5次時間內就發生了一個30萬元的回撤。而此賬戶在交易一段時間後,總金額增長到了200萬元,此時又發生了一個40萬元的回撤。如果以金額回撤來計算,是後者40萬元的回撤大。但是以比例來計算,則是前者30萬元的回撤大。

通常,衡量程序化交易模型回撤風險大小採用的都是按回撤金額的最大絕對值指標,能夠知道究竟最多會虧多少錢,對模型使用的風險性有實實在在的認知;如果採用回撤率指標往往會使得模型使用風險看上去沒那麼嚴重。

最大資產回撤併不知道會什麼時候發生。如果程序化交易模型是先賺到錢然後資金纔有回撤, 那大部分人還可以接受,但如果一開始模型就有30%的資金回撤,使用者能接受嗎?

03/收益風險比

評價程序化交易模型的獲利能力,並不是單純看收益率,而應該看盈利與最大資金回撤兩者之比,即收益風險比的大小。

收益風險比的含義是指爲了獲取預期收益,投入的本金會冒多大的虧損風險,即所獲取的潛在盈利與所承受的風險額度之間的比值。

衡量程序化交易模型的收益風險比公式爲:

收益風險比=年度收益/最大資產回撤

比值越高說明模型的盈利能力越強,越值得采用。假設預期投資收益爲3萬元,但投入的本金最大虧損額度可能會達到1萬元,則收益風險比爲3:1。

收益風險比是測試程序化交易模型優劣的最重要指標。因爲每筆投資最終都落實在兩個問題上:

一是敢不敢投資(最多虧多少)?

二是值不值得投資(至少能賺多少)?

收益風險比的意義,正是對以上兩個問題的客觀回答,也直接決定投資的結果。例如某程序化模型設計者在交易策略上面臨兩種選擇:

策略一:每次投資30萬元。平均每年交易100次,盈虧次數各50%,其中盈利交易每筆盈利1萬元,虧損交易每筆虧損0.3萬元,其間最大回撤爲10萬元。

策略二:每次投資30萬元。平均每年交易100次,盈利次數40次,虧損次數60次,其中盈利交易每筆盈利1萬元,虧損交易每筆虧損0.25萬元,其間最大回撤爲5萬元。

採用哪個策略建模更好呢?來看看兩種策略模型的收益風險比。

策略一的年均收益爲:50×1-50×0.3=35萬元,收益風險比爲35/10=3.5;


策略二的年均收益爲:40×1-60×0.25=25萬元,收益風險比爲25/5=5。

在其他條件都不變的情況下,策略一冒着1單位的最大損失,可以收穫3.5單位的收益,而策略二冒着1單位的風險,可以收穫5單位的收益。顯然,策略二比策略一優越。這個例子也同時展示了勝率高的模型不一定是最好的。

但並不是說同樣的收益風險比,程序化交易模型的使用風險是相同的。比如A模型當年的收益率爲40%,最大資金回撤5%,那麼收益風險比就是8;B模型當年的收益爲200%,最大資金回撤25%,那麼收益風險比也是8。兩種交易模型的盈利能力可以認爲是一樣優秀的,但哪個模型的風險性更大那?顯然是B模型。

在相同收益風險比條件下,如果要追求更高的收益,比如800%的收益率,那麼可能發生的最大資金回撤也有可能100%。一旦發生,資金賠光,交易就沒有辦法繼續下去了。因此,只是追求模型的收益率而忽視模型的回撤風險是極其冒險的激進策略。所以說,儘管模型的收益風險比相同,但交易結果還要取決不同的資金管理策略。

04、夏普比率

評估程序化交易模型的優劣應該從收益期望和風險兩方面綜合考慮。風險調整後的收益率就是一個可以同時對收益與風險加以考慮的綜合指標,以期能夠排除風險因素對績效評估的不利影響。

1966年,學者夏普在此基礎上提出了著名的夏普比率:

S=(R-r)/ σ;

公式中

R=投資的回報期望值(平均回報率);

r=無風險投資的回報率(可理解爲同期銀行存款利率);

σ=回報率的標準方差(衡量波動性的最常用統計指標)。

夏普公式的核心思想是:理性的投資者將選擇那些在給定的風險水平下使期望回報最大化的投資組合,或是那些在給定期望回報率的水平上使風險最小化的投資組合。

解釋起來非常簡單,即投資時也要比較風險,儘可能用科學的方法以冒小風險來換大回報。投資者在建立有風險的投資組合時,至少應該要求投資回報達到無風險投資回報的水平或者更高。

如果夏普比率爲正值,說明在衡量期內投資的平均淨值增長率超過了無風險利率,在以同期銀行存款利率作爲無風險利率的情況下,說明投資收益比銀行存款利息要高。夏普比率越大,說明投資機會所獲得的超額風險回報越高。總之,夏普比率越高越好。

交易模型的夏普比率多高才算是比較滿意的模型呢?假設某交易模型5年的年平均回報率約爲10%,波動性約爲16%,無風險利率約爲3.5%,計算出的夏普比率=(10%-3.5%)/16%=0.41。意思就是:該模型的年均回報率要比無風險利率高6.5%,但平均5年中也許有1年的回報率低於-6%(10%-16%)。

對期貨公司的資管業務經理來說,這樣的夏普比率就偏低了:假設資管業務的投資回報目標是年回報率20%,就必需用2.5倍槓桿,也就是需要再借貸1.5倍自有資金。(回報期望=2.5×10%-1.5×3.5%≈20%)也就意味着平均5年中有1年的回報率將低於2.5×(10%-16%)-1.5×3.5% =-20%。模型賠了超過20%,客戶大概就要跑光了。因此模型設計者常常想盡辦法改善模型策略,提高夏普比率。


採用夏普比率評價模型的不足之處在於僅僅考慮了收益的平均波動水平,而沒有考慮資金最大回撤情況。市場中真正的風險來自於極端的損失。下面通過一個簡單例子加以說明。

假設模型A和模型B的每月收益情況如下:

設年化無風險利率爲6%,計算得到夏普比率和其他指標如下:

由此,可以清晰看到,技術交易系統只是交易系統的一個部分,而不是全部。當技術交易系統出現信號時期,並不是系統在做決策,實際上是人在綜合做出行爲決策。

一份好的交易系統,包含了心態、技術、要求、忍耐、控制等等。所以,交易系統是綜合分析系統,來解決在正確的時機、選擇正確對象、進行正確的行爲的決策系統。

如果僅僅比較夏普比率可以得知模型A要優於模型B,但是模型B的最大的資金單月回撤僅爲4%,累計回報率要高於模型A;而模型A的最大單月回撤達到10%;對於投資者而言,這是一個較大的單月回撤水平,投資風險較大。可見,僅僅比較夏普比率無法全面評價模型優劣。

05、勝率與盈虧比

測評程序化交易模型優劣的主要評估指標還有兩個:勝率盈虧比

勝率是指在當前的成本設置下,模型盈利交易次數佔總交易次數的比例,即:勝率=盈利交易次數/總交易次數。

有部分投資者格外看重勝率,認爲越高越好,至少希望勝率在50%以上,即獲勝的概率超過一半,纔算是好的模型,其實這是一個誤解。事實上有的優秀交易模型勝率並不高,這就與另一個評價指標盈虧比有關。

盈虧比=一段時間內所有盈利交易的總盈利額/同時段所有虧損交易總的虧損額

顯然,盈虧比越高,程序化交易模型獲得的單筆收益越能夠覆蓋其他的虧損交易,對勝率的要求就沒有那麼高。反之,如果盈虧比很低,單筆虧損需要更多的盈利次數來覆蓋,則要求更高的勝率。

盈虧比的另一種理解方式爲承擔一元錢的風險能夠賺取的盈利,基於這種理解方式,在不考慮交易成本的情況下,可以定義每一元錢的風險所能獲得的期望收益爲:

Q=P-(1-P)/R

其中P爲勝率,R爲盈虧比。

假設盈虧比R爲1,在上式中需要P>50%才能使得期望收益爲正,也就是說對於一個盈虧比小於1的交易模型,勝率必須高於50%纔有可能賺取正的期望收益,反之如果盈虧比較高,例如R≥3,則勝率只需高於25%就可以保證期望收益Q爲正。

因此勝率只有和盈虧比結合來評估模型纔有意義。設想一個模型,做十筆交易,盈利九筆,平均每筆盈利1萬元,而虧損的那一筆一下虧了10萬元,這個模型的勝率雖然達到了90%,卻還是虧損的模型,因爲它的盈虧比太低;另外一個模型做十筆交易,盈利四筆,共盈利12萬元;虧損六筆,共虧損6萬元,這個模型的勝率雖然只有40%,但總盈虧比爲2。因此這個模型的盈利能力還是不錯的。

值得注意的是,某些程序化交易模型歷史測試中的勝率可能包含有一些“僞盈利”交易,也就是一些交易的盈利非常小,幾乎爲0,在很低的手續費與滑點設置下,它們是盈利交易,而在稍微嚴格一點的成本設置下就變成了虧損交易,很明顯追求這樣的勝率沒有什麼意義。因此,單獨考察模型的勝率這個評估指標意義不大。

除以上所論述的重要測評指標外,還有一些測評交易模型性能的指標,諸如淨利潤、最大連續盈利次數和最大連續虧損次數、平均盈利週期和平均虧損週期,等等。

綜合上述測評體系,判斷一個合格交易模型的評估原則大致爲:

年化收益率至少應大於0,越高越好; 

最大資產回撤值當然是越小越好,但回撤的最大極限定爲多少取決於投資者對虧損幅度的心理承受能力,因人而異;

收益風險比也是越大越好,但提高的難度較大;

夏普比率也是越大越好,但至少應該大於0;

至於勝率高當然好,但關鍵是要和盈虧比指標結合一起來評估,盈虧比高的模型勝率低一些也無所謂,所以勝率並不是關鍵性指標。再權衡其他測評指標,最終就能夠獲得初步滿意的程序化交易模型。

拓展閱讀:

1.一個量化策略師的自白(好文強烈推薦)

2.市面上經典的量化交易策略都在這裏了!(源碼)

3.量化交易領域最重要的10本參考書推薦!

4.期貨/股票數據大全查詢(歷史/實時/Tick/財務等)

5.如何設計量化交易策略?

6.量化交易乾貨彙總,很乾!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章