期貨量化交易軟軟件:資金管理排第二位,并不是很重要
簡(jiǎn)介
本文中我們將討論一些非常簡(jiǎn)單但卻往往具有欺騙性的東西 - 測(cè)試報(bào)告中的賬戶余額圖。在新手們的策略測(cè)試報(bào)告中,赫茲量化經(jīng)常會(huì)在測(cè)試結(jié)尾處看到指數(shù)余額/權(quán)益圖和數(shù)十億金額的結(jié)果。這種結(jié)果通常會(huì)引發(fā)經(jīng)驗(yàn)豐富、知道這些指數(shù)的來(lái)龍去脈的 EA 編寫(xiě)者的質(zhì)疑,并立即建議根據(jù)固定手?jǐn)?shù)(通常是 0.1)顯示結(jié)果。
人們認(rèn)為基于固定 0.1 手的測(cè)試結(jié)果能更好地反應(yīng)一個(gè)策略的所有優(yōu)缺點(diǎn)。這種看法的論據(jù)相當(dāng)明顯:對(duì)于大部分貨幣對(duì),這個(gè)圖顯示了策略在測(cè)試期間內(nèi)獲得了多少點(diǎn)。還有一種公允的看法,即如果某種策略是按點(diǎn)盈利的,則它可能被視為很有挑戰(zhàn)性;但如果數(shù)學(xué)期望值為負(fù)值,則此類策略很難僅靠資金管理的方式獲利。
另一個(gè)令人信服的論據(jù)是:“0.1 手”的曲線接近于一條直線,它是一種策略穩(wěn)定性的指示,而這種指示很少能在指數(shù)圖上看到。
但是,盡管有很多優(yōu)勢(shì),但這種圖也有一些不是那么明顯的缺點(diǎn)。為了獲得全面的了解,我赫茲量化們來(lái)分析一個(gè)使用不同資金管理系統(tǒng)的簡(jiǎn)單策略的測(cè)試結(jié)果,并比較各個(gè)圖。

編輯切換為居中
本文中分析的資金管理 (MM) 類型。選擇 EA
現(xiàn)在赫茲量化將分析三種 MM,在這些 MM 中,已建立倉(cāng)位的金額要么是固定的,要么是保證金的遞增函數(shù)。對(duì)我來(lái)說(shuō),只有當(dāng)獲利/虧損系列的可能性大大高于產(chǎn)生相反結(jié)果的交易將取而代之的幾率,有效 MM 才可以較為合理地把之前交易的結(jié)果納入考慮范圍。因此,本文中所述 MM 如下:
手?jǐn)?shù)固定為 0.1,無(wú)論保證金有多少。讓我們把這種策略稱為保守策略。本文中將用“0.1 手” 或“0.1”表示。
手?jǐn)?shù)與保證金成比例。這是一個(gè)積極的資金管理方法。赫茲量化將稱其為“幾何 MM”。
手?jǐn)?shù)按保證金的平方根成比例增長(zhǎng)。我們將稱其為溫和策略。
讓我們分析 Expert Advisor“20_200expert_v4.2_AntS一文中描述的游戲。我們不會(huì)通過(guò)參數(shù)優(yōu)化 EA,因?yàn)檫@超出了本文的范圍;讓我們使用 Expert Advisor 的默認(rèn)參數(shù)吧。我們將使以 EURUSD H1 在從 2000/06/07 到 2008/03/15 的所有價(jià)格變動(dòng)來(lái)測(cè)試該 EA。我們特意選擇這個(gè)測(cè)試周期,為的是在用 0.1 手測(cè)試時(shí)獲得一個(gè)很好的余額圖。選擇這個(gè) EA 正是為了展示本文的主張。
此 Expert Advisor 的主要部分是用于選擇手?jǐn)?shù)的函數(shù)LotSize(),占 1000 行略微出頭(或源文件 50K 中占 44K),這一定程度上也決定了它的突出性。如果我們用簡(jiǎn)單的一行將必要手?jǐn)?shù)舍入至 0.01 以逼近手?jǐn)?shù)對(duì)余額的依賴關(guān)系的函數(shù),則此函數(shù)可以用較短的形式實(shí)現(xiàn)。至少“節(jié)點(diǎn)”(手?jǐn)?shù)測(cè)量的點(diǎn))中源代碼中的計(jì)算的逼近差異僅在千分之一的節(jié)點(diǎn) (!!!) 內(nèi)顯示。它幾乎不會(huì)影響策略的參數(shù)。
我決定不去研究選擇手?jǐn)?shù)的確切邏輯,并更改代碼,以進(jìn)一步縮減文件大?。‥A 代碼初始僅包含與此手?jǐn)?shù)選擇函數(shù)對(duì)應(yīng)的活動(dòng) MM)。與非比例手?jǐn)?shù)增加關(guān)聯(lián)的部分也排除在代碼之外,從而從 EA 中排除了馬丁格爾的元素。本文隨附了 EA 的變更代碼。
以下是適用于此處 EURUSD 的手?jǐn)?shù)計(jì)算函數(shù):
double LotSize() { ? double size; ? switch( _MM ) ? { ? ? ?case 0: ?size = 0.1; ? ? ? ? ? ? ? ? break; ? ? ?case 1: ?size = 0.1 * AccountBalance() / 1000; ? ? ? ? ? ? ? break; ? ? ?case 2: ?size = 0.1 * MathSqrt( AccountBalance() / 1000 ); ? ? ? ? ? ? ? //size = 1. * MathSqrt( AccountBalance() / 10000 ); ? ? ? ? ? ? ? break; ? ? ?default: size = 0.1; ?break; ? } ? ? if( size < 0.1 ) ? ? ? ? ?// is money enough for opening 0.1 lot? ? ? ?if( ( AccountFreeMarginCheck( Symbol(), OP_BUY, ?0.1 ) < 10. ) || ? ? ? ? ?( AccountFreeMarginCheck( Symbol(), OP_SELL, 0.1 ) < 10. ) || ? ? ? ? ?( GetLastError() == 134 ) ) ? ? ? ? ? ? ? ? ?lot = 0.0; // not enough ? ? ?else ? ? ? ?lot = 0.1; // enough; open 0.1 ? else ? ? ? ? ? lot = NormalizeDouble( size, 2 ); ? ? return( lot ); }
本文中的假設(shè)
本文中我們將進(jìn)一步分析典型新手的邏輯:
一位新手訪問(wèn)論壇,進(jìn)入代碼 庫(kù),看到這個(gè)代碼,并決定了解此 EA 的傾向。他對(duì)源代碼的細(xì)節(jié)不感興趣;他需要一個(gè)快速結(jié)果。
新手不關(guān)心測(cè)試結(jié)果相對(duì)于歷史多變性的可靠性問(wèn)題;他只是選擇一個(gè)從幾年前到現(xiàn)在的測(cè)試周期,在這個(gè)周期中,EA 表現(xiàn)出相當(dāng)好的結(jié)果。他相信這個(gè) EA 將來(lái)也能表現(xiàn)的很好,因?yàn)樗趯⒔四陼r(shí)間里一直都表現(xiàn)良好。
在收到固定 0.1 手的測(cè)試結(jié)果后,他訪問(wèn)論壇并看到經(jīng)驗(yàn)豐富的論壇訪客的典型回答,即在 0.1 手時(shí)所做的測(cè)試具備較高的策略穩(wěn)定性,能提供相當(dāng)可靠的結(jié)果,然后他前進(jìn)一步,決定引入幾何資金管理系統(tǒng),即建倉(cāng)金額與余額大小成比例。他也并不認(rèn)為實(shí)際的止損會(huì)遠(yuǎn)大于獲利,因?yàn)樗€沒(méi)看代碼。他不確定余額曲線會(huì)怎么變化。
最終,我們的新手試著修改 MM,并發(fā)明了上述的第三種 MM。
赫茲量化將分析獲得的結(jié)果和新手的操作,主要是觀察測(cè)試結(jié)果的多個(gè)綜合參數(shù) - 凈利潤(rùn)、最大虧損百分比和回收系數(shù)。
測(cè)試 1:固定手?jǐn)?shù)“0.1”
以下是測(cè)試結(jié)果:
策略測(cè)試程序報(bào)告 20_200 expert_v4.2_AntS
Alpari-Demo (Build 215)

編輯切換為居中

編輯切換為居中
Expert Advisor 20_200 expert_v4.2_AntS,0.1 手
赫茲量化將再添加一個(gè)參數(shù) - 回收系數(shù):
RF(回收系數(shù))= 總凈利潤(rùn)/最大虧損 = 9911.72 / 923.58 =10.73
曲線看上去不錯(cuò),RF 也很好,盡管周期將近 8 年。表中的所有其他參數(shù)也相當(dāng)好:數(shù)學(xué)期望值為 12.44 點(diǎn)(可以更大,但這就不錯(cuò)了),最大虧損約為 20%。平均獲利交易數(shù)與平均虧損交易數(shù)之比為 35.80/180.72 = 0.198 = 1/5.05;但獲利交易數(shù)大于虧損交易數(shù)(89.21%/10.79%,即 8.27,這個(gè)數(shù)字高于 5.05)。因此策略看起來(lái)大有可為。
這給了新手信心,他決定冒險(xiǎn)一搏:不采用固定手?jǐn)?shù),而是基于“每 1000 美元保證金 0.1 手”的“適度”比例引入幾何資金管理。這種比例的風(fēng)險(xiǎn)遠(yuǎn)大于原始 EA 中提供的比例(每 10000 美元保證金 1/3 手略多一點(diǎn)),但我們的英雄可沒(méi)有注意到這一點(diǎn):他只想賺到盡可能多的錢(qián)...
測(cè)試 2,第 1 部分:手?jǐn)?shù)與余額成比例,?0.1/$1000?
我留下了報(bào)告中我們可能會(huì)感興趣的幾行內(nèi)容。
策略測(cè)試程序報(bào)告 20_200 expert_v4.2_AntS
Alpari-Demo (Build 215)

編輯切換為居中

編輯切換為居中
Expert Advisor 20_200 expert_v4.2_AntS,幾何 MM
為了讓視覺(jué)效果更好,我記錄了一個(gè)可幫助跟蹤動(dòng)態(tài)流程的視頻文件:幾何 MM 的最終統(tǒng)計(jì)結(jié)果看上去通常比實(shí)際結(jié)果好得多,因?yàn)榧?xì)節(jié)不會(huì)出錯(cuò)。視頻完美展示了中間虧損,看上去就像圖中不重要的凹陷。這些中間虧損并不那么小,有時(shí)達(dá)到已實(shí)現(xiàn)余額最大值的 50%(實(shí)際上,這個(gè)點(diǎn)不在余額達(dá)到其最大絕對(duì)值后發(fā)生的最后一次下跌中):
動(dòng)態(tài)學(xué)中的幾何 MM
由于我不了解的轉(zhuǎn)換功能,視頻要觀看至第 34 秒;在顯示關(guān)于測(cè)試模式的消息后,就會(huì)出現(xiàn)重復(fù)的結(jié)尾。
看,現(xiàn)在情況更糟了:圖形看上去并不那么好,我們感興趣的參數(shù)也已經(jīng)發(fā)生變化。我們不討論余額峰值時(shí)的建倉(cāng)手?jǐn)?shù)(大約 540 手?。?duì)于經(jīng)紀(jì)公司來(lái)說(shuō)是否現(xiàn)實(shí)。我們看到凈利潤(rùn)大大增加,但最大虧損百分比超過(guò) 70%,而且回收系數(shù)
RF=1989283.04 /3883421.15 =0.51–
直線下跌,現(xiàn)在甚至小于 1!當(dāng)然,這么差的 RF 是最后一次下跌的結(jié)果,但我們不想自欺欺人,我們也不會(huì)把該下跌排除在報(bào)告內(nèi)容之外,對(duì)不對(duì)?!這種情況已經(jīng)在著名的文章“我的第一個(gè)’圣杯’”中描述過(guò),這篇文章也許是論壇上引用最多的文章。
對(duì)于接受了總是請(qǐng)求固定 0.1 手時(shí)測(cè)試結(jié)果的“老手”的說(shuō)法的新手來(lái)說(shuō),這是雙重的經(jīng)驗(yàn)教訓(xùn)。所以“在 0.1”時(shí)測(cè)試看起來(lái)似乎有欺騙性:拋開(kāi)明顯展示的正數(shù)學(xué)期望值和 0.1 手的策略穩(wěn)定性不論,一般來(lái)說(shuō),要依賴“應(yīng)該”有幫助的正數(shù)學(xué)期望值時(shí),僅添加一個(gè)積極的 MM 是不夠的。
導(dǎo)致這種曲線特性及其參數(shù)發(fā)生急劇變化的原因很明顯:“在 0.1”進(jìn)行測(cè)試時(shí),保證金的增長(zhǎng)伴隨的是相對(duì)風(fēng)險(xiǎn)的減小,因?yàn)橄鄬?duì)于保證金的手?jǐn)?shù)在雙曲線上減小。在使用幾何 MM 時(shí),風(fēng)險(xiǎn)不會(huì)變低,而是保持不變。這解釋了測(cè)試周期結(jié)尾時(shí)大大增加的“凹陷”深度。
還有一個(gè)發(fā)現(xiàn):平均獲利交易數(shù)與平均虧損交易數(shù)之比也變得更差?,F(xiàn)在它等于 20051.69/142644.96 =0.141 - 而不是上一個(gè)“0.1”測(cè)試中的 35.80 / 180.72 = 0.198。原因何在?答案如下:幾何 MM 的虧損是針對(duì)開(kāi)始交易時(shí)對(duì)應(yīng)的帳戶余額的相對(duì)手?jǐn)?shù)計(jì)算得出的,即在下降余額軌跡的上點(diǎn)中。同時(shí),獲利交易的金額是根據(jù)建倉(cāng)時(shí)的余額計(jì)算得出的,即在下降余額軌跡的下點(diǎn)中,并且它看上去略小于虧損交易的金額。
數(shù)值示例:假設(shè)當(dāng)余額為 5000 美元并使用了幾何 MM 時(shí),我們開(kāi)倉(cāng)交易,手?jǐn)?shù)為 0.1*($5K/$1K) = 0.5 手,并贏得了 100 點(diǎn)利潤(rùn)。這意味著 EURUSD 貨幣對(duì)的利潤(rùn)為 500 美元。現(xiàn)在假設(shè)我們立即進(jìn)行了一個(gè)帶來(lái) 100 點(diǎn)虧損的開(kāi)倉(cāng)交易。那么我們虧損多少?手?jǐn)?shù)為 0.1*($5K+$500)/$1K= 0.55,即我們的損失是 550 美元,比獲利大 10%。而在使用固定手?jǐn)?shù)的第一種情況下,這種情況并不會(huì)發(fā)生!
我們能得出什么結(jié)論?
如果你想要使用一個(gè)積極的(幾何)MM,則為了獲取一個(gè)真正良好的余額曲線,你應(yīng)該清醒地認(rèn)識(shí)到,0.1 手測(cè)試的對(duì)應(yīng)曲線應(yīng)該是實(shí)際情況下的理想狀態(tài),沒(méi)有“凹陷”。切勿忽視任何你要在實(shí)際交易中使用的 MM 類型。如果你的 MM 是不同的類型,不要盲目的完全遵循“0.1 測(cè)試”。
別忘了幾何 MM 通常會(huì)提高虧損百分比。假設(shè)基于 5 年周期的 0.1 手測(cè)試顯示保證金增長(zhǎng) 1000%(從 1000 美元到 11000 美元)。順便說(shuō)一下,這是一個(gè)很實(shí)際的值:它對(duì)應(yīng)于 60 個(gè)月的 10000 個(gè)點(diǎn),即每月 167 個(gè)點(diǎn)。假設(shè)在 5 年周期結(jié)束之前,當(dāng)保證金為11000 美元時(shí) ,你在 0.1 手時(shí)的虧損非常小,僅有 - 5%,之后交易就在盈利,且保證金現(xiàn)在再次等于 11000 美元。你認(rèn)為使用幾何 MM 時(shí)虧損將會(huì)如何? 55% 的保證金 - 無(wú)論在此“凹陷”之前它已經(jīng)增加了多少!下面將提供進(jìn)一步的說(shuō)明。
所以,這里的建議是:選擇你的 MM 策略的“黃金分割”。這并不意味著你應(yīng)該始終使用 0.1 手,但在價(jià)值百萬(wàn)的交易中,幾何 MM 僅僅是你在低估風(fēng)險(xiǎn)的情況下做的一場(chǎng)美夢(mèng)。
幾何 MM 虧損論點(diǎn)證明: 如果在 0.1 手測(cè)試期間,周期結(jié)束時(shí)的虧損(當(dāng)出現(xiàn)虧損交易前的余額等于 11000 美元時(shí))等于 5%,則表示虧損額為 5%*$11K = $550,即 550 個(gè)點(diǎn)?,F(xiàn)在我們來(lái)對(duì)幾何 MM 進(jìn)行相同的計(jì)算。
如果這個(gè)虧損結(jié)果來(lái)自一個(gè)已建倉(cāng)位(例如,在沒(méi)有止損位的情況下),我們的推理很簡(jiǎn)單:假設(shè)在“幾何 MM”中發(fā)生此虧損之前,余額達(dá)到了 X*$1K(由于此 MM,X 很可能大于 11,但這里的 X 并不重要)。則 X*0.1 手交易打開(kāi),然后在損失等于lot*pips_value*pips= (X*0.1)*$10*550 = $550*X時(shí)平倉(cāng),即等于此虧損之前的 100%*($550*X)/(X*$1K) = 55% 的保證金。
當(dāng)此虧損是多個(gè)序列虧損交易的結(jié)果時(shí),情況會(huì)更加復(fù)雜,但正式地看,這些交易大概可以組合成一個(gè)交易,那么此虧損也可視為一個(gè)交易的結(jié)果;但是由于大量反向交易累積的效應(yīng),這個(gè)結(jié)果將會(huì)略有不同。
這個(gè)推理就是在寫(xiě)下本文時(shí)想到的,當(dāng)時(shí)我試著解釋幾何 MM 的邏輯測(cè)試結(jié)果;結(jié)果的激進(jìn)程度至今仍讓我驚嘆。而在此之前,我曾那么天真的相信,可以向 0.1 手時(shí)顯示的任何策略添加帶少量虧損甚至是一個(gè)積極 MM 的漂亮曲線 - 但我從沒(méi)料到虧損和“0.1 測(cè)試”中展示的結(jié)果是如此的不同。現(xiàn)在我對(duì)長(zhǎng)期使用的幾何 MM 產(chǎn)生了很大的懷疑。原因是根本沒(méi)有不虧損的策略...