量化交易軟件:運用 R-平方 評估策略余額曲線的品質(zhì)
引言
每個交易策略都需要客觀評估其有效性。為此, 使用了范圍廣泛的統(tǒng)計參數(shù)。它們當中的很多參數(shù)很容易計算, 并可顯示直觀的衡量數(shù)值。而其它參數(shù)則在數(shù)值構(gòu)建和解讀上更加困難。盡管有這些多樣性, 但少有量化衡量指標可以評估一個非凡但同時又明顯的數(shù)值 - 交易系統(tǒng)的余額曲線的平滑性 。本文提出了解決這個問題的方案。赫茲量化軟件 來研究這樣一個非凡的衡量指標, 即判定系數(shù) R 的平方 (R^2), 它計算每位交易者所期望的最具吸引力, 平滑, 上升余額曲線的量化估值。 當然,赫茲量化軟件 終端已經(jīng)提供了一套開發(fā)完畢的匯總報告, 可展示交易系統(tǒng)的主要統(tǒng)計數(shù)據(jù)。然而, 其中的參數(shù)尚有不足。幸運的是, 赫茲量化軟件 ?提供了編寫自定義評估參數(shù)的能力, 這恰恰是我們要做的。赫茲量化軟件 不僅要建立判定系數(shù) R^2, 而且還要嘗試估算其數(shù)值, 將其與其它優(yōu)化準則進行比較, 然后根據(jù)基本的統(tǒng)計評估得出規(guī)律性。

編輯切換為居中
評估交易系統(tǒng)的常用統(tǒng)計方法的評議 每次生成交易報告或交易系統(tǒng)回測結(jié)果時, 赫茲量化軟件 都會看到若干個"魔幻數(shù)字", 這些 "魔幻數(shù)字" 可以用來分析交易品質(zhì)的結(jié)論。例如,赫茲量化軟件 終端中的典型測試報告如下所示:

編輯切換為居中
圖例 1. 交易策略的回測結(jié)果 它包含一些有趣的統(tǒng)計數(shù)據(jù)或衡量指標。赫茲量化軟件 來分析它們當中最流行的, 并客觀地考察它們的強處和弱點。Total Net Profit (凈利潤總計)。該衡量指標示意在測試或交易期間賺取或損失的總金額。這是最重要的交易參數(shù)之一。每位交易者的主要目標是利潤最大化。有多種方法可以做到這一點, 但最終的結(jié)果總歸一點, 那就是凈利潤。凈利潤并非總是取決于成交的數(shù)量, 實際上它獨立于其它參數(shù), 但反過來是不對的。因此, 相對于其它衡量指標, 它是 不變的, 所以可以獨立于它們使用。不過, 這個衡量指標也有嚴重的缺陷。 首先, 凈利潤直接取決于是否使用資本復利。當使用資本復利時, 利潤增長呈現(xiàn)非線性。資金經(jīng)常爆發(fā)性指數(shù)增長。在這種情況下, 測試結(jié)束時所記錄的凈利潤數(shù)字往往達到天文數(shù)字, 而現(xiàn)實當中卻一無所獲。如果按照固定手數(shù)進行交易, 資金增量更趨線性, 但在這種情況下, 利潤取決于所選擇的交易量。例如, 如果測試結(jié)果如上表所示, 使用 0.1 手的固定交易量進行測試, 則獲得的利潤 $15,757 可視為一個顯赫的結(jié)果。如果交易量是 1.0 手, 那么測試結(jié)果就遜色很多。這就是為什么有經(jīng)驗的測試人員更喜歡針對金融市場將手數(shù)固定為 0.1 或 0.01。在這種情況下, 余額的最小變化等于金融工具的一個點, 這令分析這個特性更加客觀。 其次, 最終結(jié)果取決于測試期限的長短或交易歷史的持續(xù)時間。例如, 上表所列的凈利潤可能是在 1 年或 5 年內(nèi)獲取的。而在每種情況下, 相同的數(shù)字意味著策略的有效性完全不同。 第三, 毛利在上一日期的時間里是固定的。不過, 那個時候資本也許會大幅回撤, 而一星期前可能不會。換言之, 這個參數(shù)深度依賴于所選擇的測試或生成報告的起點和終點。 Profit Factor (盈利因子)。這可以說是專業(yè)交易者最受歡迎的統(tǒng)計數(shù)據(jù)。雖說新入行者只想看總利潤, 但專業(yè)人士發(fā)現(xiàn)知曉所投資資本的轉(zhuǎn)折是必不可少的。如果認為交易虧損也是投資的一種, 那么盈利因子就展現(xiàn)了交易的邊際性。例如, 如果只有兩筆交易, 第一筆交易損失 $1000, 第二筆交易賺取 $2000, 則此策略的盈利因子為 $2000/1000 = 2.0。這是一個非常良好的數(shù)字。此外, 盈利因子既不取決于測試時間跨度也未基于交易量手數(shù)。因此, 專業(yè)人士非常喜歡。但是, 它也有缺點。 其中之一是盈利因子數(shù)值高度依賴于成交數(shù)量。如果只有少量成交, 得到的盈利因子等于 2.0 甚至 3.0 單位是完全可能的。另一方面, 如果有大量成交, 那么獲得 1.5 單位的盈利因子都是一個巨大的成功。 Expected Payoff (預期收益)。這是一個非常重要的特征, 指明平均交易回報。如果策略有利可圖, 預期收益是正數(shù)值; 虧損策略則為負數(shù)值。如果預期收益與點差或傭金成本相當, 那么這一策略在真實賬戶上的盈利能力就要深表懷疑。正常的話, 在策略測試器中的理想執(zhí)行條件下預期收益可以為正, 余額圖形可以是一條平滑的上升曲線。然而, 在實盤交易中, 由于可能出現(xiàn)所謂的重新報價或滑點, 平均成交回報可能比理論計算結(jié)果稍差, 這也許會對策略的結(jié)果產(chǎn)生嚴重影響, 并導致實盤虧損。 它也有其缺點。主要的一點也與交易的數(shù)量有關(guān)。如果只有少量成, 那么獲得較大的預期收益并不是問題。另一方面, 當有大量成交時, 預期收益趨向于零。由于這是一個線性衡量指標, 因此不能用于施行資金管理系統(tǒng)的策略。但專業(yè)交易者高度重視它, 并將其用于固定手數(shù)的線性系統(tǒng), 將其與成交的數(shù)量進行比較。 Number of Deals (成交數(shù)量)。這是一個重要的參數(shù), 它顯式或間接地影響大多數(shù)其它特性。假設(shè)一個交易系統(tǒng)在所有情況下的勝率為 70%。與此同時, 獲勝與虧損的絕對值是相等的, 在交易策略中沒有其它可能的交易結(jié)果。這樣的系統(tǒng)似乎非常優(yōu)秀, 但效率評估只基于最后兩筆交易, 發(fā)生了什么呢?在 70% 的案例中, 其中之一有利可圖, 但兩筆成交盈利的可能性僅為 49%。也就是說, 在一半以上的案件中, 兩筆交易的總成果將為零。因此, 在一半的情況下, 統(tǒng)計數(shù)據(jù)將表明該策略無法賺錢。其盈利因子總是等于 1, 預期收益和利潤為零, 其它參數(shù)也示意效率為零。 這就是為什么成交的數(shù)量必須 足夠 大的原因。但 足夠
說明什么?通??山邮艿恼f法, 任何樣本均應包含至少 37 次測量數(shù)據(jù)。這是統(tǒng)計學中的一個神奇數(shù)字, 它標志著參數(shù)代表性的下限。當?shù)? 這些成交的數(shù)目還不足以評估一個交易系統(tǒng)。至少需要 100-10 筆成交才能得到可靠結(jié)果。而且, 對于眾多專業(yè)交易者來說這也是不夠的。他們設(shè)計的系統(tǒng)至少要進行 500-1000 筆成交, 之后再用這些結(jié)果考察運行的系統(tǒng)用于實盤交易的可能性。 當測試交易系統(tǒng)時常用統(tǒng)計參數(shù)的行為 交易系統(tǒng)的統(tǒng)計數(shù)據(jù)當中, 主要參數(shù)已進行了討論。赫茲量化軟件 來看看它們在實踐中的表現(xiàn)。與此同時, 我們將重點討論它們的缺點, 看看提議的 R^2 統(tǒng)計量的形式如何有助于解決它們。為此, 我們將使用 "通用智能交易系統(tǒng): 使用掛單" 一文中所描述的現(xiàn)成 CImpulse 2.0 EA。選擇它是因為其簡單性和可優(yōu)化性, 不像來自標準 赫茲量化軟件 ?軟件包的智能系統(tǒng)專, 它對于本文的目的極端重要。此外, 還需要一些底層代碼結(jié)構(gòu), 而這些已為 CStrategy 交易引擎編寫, 所以無需再次完成相同的工作。判定系數(shù)的所有源代碼都是這樣編寫的, 它們可以很容易地在 CStrategy 之外使用 — 例如, 在第三方函數(shù)庫或過程智能系統(tǒng)中使用。Total Net Profit (凈利潤總計)。如前所述, 凈 (或總計) 利潤是交易者想要得到的最終結(jié)果。利潤越大越好。然而, 基于最終利潤評估策略并不能保證一直成功。我們來研究一下 2015.01.15 至 2017.10.10 期間 CImpulse 2.0 策略在 EURUSD 貨幣對上的測試結(jié)果:

編輯切換為居中
圖例 2. CImpulse 策略, EURUSD, 1H, 2015.01.15 - 2017.10.01, PeriodMA: 120, StopPercent: 0.67 在這個段測試期間內(nèi), 這個策略看來展示出總利潤的穩(wěn)定增長。交易一份合約, 數(shù)額為正 11,894 美元。這是一個很好的結(jié)果。但我們來看看不同的情景是什么樣的, 這次最終的利潤接近于第一種情況:

編輯切換為居中
圖例 3. CImpulse 策略, EURUSD, 1H, 2015.01.15 - 2017.10.01, PeriodMA: 110, StopPercent: 0.24 盡管這兩種情況利潤幾乎相同, 但它們看起來像完全不同的交易系統(tǒng)。第二種情況的最終利潤似乎也是隨機的。如果測試在 2015 年中結(jié)束, 利潤將接近于零。 這是另一個不成功的策略, 最終的結(jié)果也與第一種情況非常接近:

編輯切換為居中
圖例 4. CImpulse, EURUSD, 1H, 2015.01.15 - 2017.10.01, PeriodMA: 45, StopPercent: 0.44 從圖表中可以清晰看出, 主要獲利來自 2015 年上半年。隨之而來的是一段長久的停滯。這樣一種策略對于實盤交易不是一個可行的選項。 Profit Factor (盈利因子)。盈利因子衡量指標對最終結(jié)果的依賴性要小得多。該數(shù)值取決于每筆成交, 并顯示所有資金贏余與所有資金虧損的比率。可以看出, 在圖例 2 中, 盈利因子相當高, 在圖例 4 中, 它是較低的; 而在圖例 3 中. 它幾乎處于盈利和不盈利體系之間的邊界。但盡管如此, 盈利因子并非普遍特征, 它也能被欺騙。赫茲量化軟件 來看看其它例子, 其中盈利因子指示不那么明顯:

編輯切換為居中
圖例 5. CImpulse, EURUSD, 1H, 2015.01.15 - 2017.10.01, PeriodMA: 60, StopPercent: 0.82 圖例 5 顯示以最大盈利因子數(shù)值之一運行策略測試的結(jié)果。余額圖看起來相當看好, 但是獲得的統(tǒng)計數(shù)據(jù)是誤導性的, 因為交易數(shù)量稀少, 盈利因子數(shù)值被夸大了。 赫茲量化軟件 以兩種方式來驗證這段陳述。第一種方式: 找出盈利因子對交易數(shù)量的依賴。這是通過在策略測試器中使用范圍廣泛的參數(shù)來優(yōu)化 CImpulse 策略完成的:

編輯切換為居中
圖例 6. 使用范圍廣泛的參數(shù)來優(yōu)化 CImpulse 保存優(yōu)化結(jié)果:

編輯切換為居中
圖例 7. 導出優(yōu)化結(jié)果 現(xiàn)在赫茲量化軟件 可以建立一個盈利因子值對交易數(shù)量的依賴圖表。例如, 在 Excel 中, 可以通過選擇相應的列, 并在 "圖表" 選項卡中按下繪制散點圖的按鈕來完成此操作。

編輯
圖例 8. 盈利因子對交易數(shù)量的依賴 圖表清楚地表明, 若是運行結(jié)果盈利因子數(shù)值高則總是交易數(shù)量寥寥。相反, 在大量交易中, 盈利因子幾乎等于一。第二種方式 判斷在這種情況下的盈利因子數(shù)值取決于交易的數(shù)量, 且與策略品質(zhì)執(zhí)行 Out Of Sample (OOS 樣本外) 測試無關(guān)。順便說一下, 這是判斷所得結(jié)果穩(wěn)健性的最可靠方法之一。穩(wěn)健性在評估中是統(tǒng)計方法穩(wěn)定性的一個衡量指標。OOS 不僅能有效地測試盈利因子, 還有其它指標。對于我們的目的, 將選擇相同的參數(shù), 但時間間隔將有所不同 — 從 2012.01.01 到 2015.01.01:

編輯切換為居中
圖例 9. 樣本外測試策略 正如所見, 這個策略的行為是上下顛倒的。它產(chǎn)生的是虧損而非盈利。這是一個合乎邏輯的結(jié)果, 因為交易數(shù)量如此之少, 獲得的結(jié)果幾乎總是隨機的。這意味著在一個時間間隔內(nèi)的隨機盈利要通過另一個時間間隔中的虧損來補償, 這在圖例 9 中得到很好地描繪。Expected Payoff (預期收益)。赫茲量化軟件 不會詳細討論這個參數(shù), 因為它的缺點與盈利因子的缺陷類似。此處是預期收益對交易數(shù)量的依賴圖表:

編輯
圖例 10. 預期收益對交易數(shù)量的依賴 可以看出, 交易越多, 預期收益就越小。對于可盈利和非贏利的策略, 都始終遵守這種依賴關(guān)系。因此, 預期收益不能作為交易策略優(yōu)化的唯一準則。 交易系統(tǒng)的測試準測需求 在考察了交易系統(tǒng)的統(tǒng)計評估中的主要準則之后, 得出的結(jié)論是每個準則的適用性均有限。它們當中的每一個都可以通過一個例子來反演, 其衡量結(jié)果良好, 而策略本身則不然。 沒有判斷交易系統(tǒng)穩(wěn)健性的理想標準。但制定一個強力統(tǒng)計標準必備屬性是可能的。
獨立于測試周期的持續(xù)時間。交易策略的許多參數(shù)取決于測試周期的長度。例如, 一個盈利策略的測試周期越長, 最終利潤 就越大。這取決于持續(xù)時間和 恢復因子。它是計算總利潤與最大回撤之比。由于利潤取決于期限, 恢復因子也隨著測試期限的增加而增長。相對于期限的不變性 (獨立性), 必須要比較不同策略在不同測試期限的有效性;
獨立于測試終點。例如, 如果一個策略只是通過虧損扛單才能 "保持平穩(wěn)", 終點也許對最終的余額產(chǎn)生重大影響。如果測試在 "逾期逗留" 之時已經(jīng)完成, 則浮虧 (凈值) 變?yōu)橛囝~, 并在賬戶上產(chǎn)生可觀的回撤。應保護統(tǒng)計數(shù)據(jù)不受此類欺詐的影響, 并為交易系統(tǒng)運作提供客觀的概述。
簡單的釋義。交易系統(tǒng)的所有參數(shù)都是 量化的, 即每個統(tǒng)計量都是由一個特定的數(shù)字表征的。這個數(shù)字必須直觀。所獲數(shù)值的解釋越簡單, 參數(shù)越易于理解。還希望參數(shù)在一定的邊界范圍內(nèi), 因為海量分析以及潛在的無限量數(shù)字通常很復雜。
少量成交所代表的結(jié)果。這可以說是衡量一個優(yōu)良指標的最難要求。所有統(tǒng)計方法均取決于測量的次數(shù)。次數(shù)越多, 得到的統(tǒng)計就越穩(wěn)定。當然, 少量樣本完全不可能解決這個問題。然而, 可以減輕由于缺乏數(shù)據(jù)而造成的影響。為此目的, 我們開發(fā)兩種類型的函數(shù)來評估 R-平方: 一種實現(xiàn)將基于可用成交的數(shù)量來構(gòu)建這個標準。另一種是使用策略浮盈 (凈值) 計算標準。
在直接描述判定系數(shù) R^2 之前, 我們來詳細地考察其組成部分。這將有助于理解這個參數(shù)的目的, 以及它所基于的原則。