摘要:著名的交易大師理查德·丹尼斯想弄清偉大的交易員是天生造就的還是後天培養的,為此,在1983年他招募了13個人,教授給他們期貨交易的基本概念,以及他自己的交易方法和原則,學員們被稱為“海龜”。
導讀:
著名的交易大師理查德·丹尼斯想弄清偉大的交易員是天生造就的還是後天培養的,為此,在1983年他招募了13個人,教授給他們期貨交易的基本概念,以及他自己的交易方法和原則,學員們被稱為“海龜”。
這成為交易史上最著名的實驗,因為在隨後的4年中,海龜們取得了年均複利80%的收益。
理查德·丹尼斯,海龜奇跡的締造者,證明了用一套簡單的系統和法則,可以使僅有很少或根本沒有交易經驗的人成為優秀的交易員。
當時,海龜們認為應對理查德·丹尼斯負責,商定在他們議定的10年保密協定於1993年終止後也不洩露這些法則。但是,有個別海龜在網站上出售海龜交易法則而謀取錢財。
兩個原版海龜柯蒂斯·費思和阿瑟·馬多克為了阻止個別海龜對知識產權的偷竊和出售海龜交易法則而賺錢的行為,決定在網站上將海龜交易法則免費公之於眾。
我們現在能看到的海龜交易法則,即是由此所得。
01
歷史測試的謊言
騙子和無賴潛伏在黑暗的角落裏,等待著不設防的獵物。不要成為他們的盤中餐。
巨石陣(Stonehenge Plus)系統在短短5年之內就把5 000美元變成了100萬美元。
Stonehenge Plus的發明者是斯圖彭杜斯·馬格尼菲克斯(Stupendus Magnificus),美國航空航天局的一位科學家,他所發現的方法可以把用來發射火星探測器的程式用在外匯交易上。
憑藉90%以上的準確性,這個系統在10年之內沒有一個月是賠錢的。它太過珍貴,所以我們只打算出售100套。僅用1 999美元就能得到你的那一套,現在就買,勿失良機。這是某系統兜售者的一則廣告。
任何一個多少接觸過交易行業的人都見過這樣的廣告,任何一個被納入郵遞名單的交易愛好者也都見過這樣的廣告。
但請買者們務必留心:有些假外行會利用不負責任的行銷手段和不切實際的事後測試結果來兜售他們的最新發明。有很多兜售者其實很清楚,他們的系統永遠也達不到他們所吹噓的那種回報水準。
很多人還會故意調整測試方法,言過其實地美化他們的系統。不過,也不是所有的賣主都如此厚顏無恥。
有些人確實以為自己的系統是很靈的,只不過,他們要麼沒有意識到他們的基本方法有缺陷,要麼不理解歷史測試的局限性或是用歷史測試結果來預測未來的弊端所在。
當然,也有一些人很善於避開歷史測試的缺陷。但遺憾的是,這類人少之又少,而且對一個缺乏經驗的交易者來說,很難區分一個系統是不是用好的測試方法開發出來的。
即使是經驗豐富的交易者,也常常搞不懂他們的系統在實際交易中的表現為什麼遠不如歷史模擬結果。
他們知道這個現象存在,也會想辦法彌補這個問題,但他們並不明白問題的根源。實際上,歷史測試結果和實際交易結果的差異主要是由四大因素造成的:
交易者效應:如果一種方法在近期賺了很多錢,那麼其他交易者很可能會注意到它,開始用類似的方法模仿它,這很容易導致這種方法的效果不再像一開始那樣好。
隨機效應(random effect):歷史測試的結果誇大了系統的內在優勢也可能是純隨機性的現象。
最優化矛盾(optimization paradox):選擇特定參數的過程(比如選擇25日移動均線而不是30日移動均線),可能降低事後測試的預測價值。
過度擬合(overfitting)或曲線擬合:系統可能太過複雜,以至於失去了預測價值。由於它與歷史數據的吻合度太高,市場行為的一個輕微變化就會造成效果的明顯惡化。
02
交易者效應
物理學中有一個叫作觀察者效應(observer effect)的概念,它的意思是,衡量一種現象的行為有時候也會影響這種現象,觀察者的觀察行為反而打擾了他們的試驗。
類似的事情也會發生在交易世界中:交易行為本身有可能改變交易賴以成功的潛在市場狀態。
我稱之為交易者效應。任何一件不斷重複的事情都有可能被市場參與者注意到。同樣的,一種在近期表現得特別突出的策略也很有可能被諸多交易者注意到。
但是,如果太多的交易者都開始嘗試著利用同一種策略,這種策略將不再像從前那樣有效。讓我們考慮一下突破策略。
如果你知道一個市場相對較小,但會有很多大交易者在突破位買入,你如何從他們身上賺錢?有沒有類似印鈔機的必勝策略?
你會搶在其他交易者之前買入,趁勢把價格推高到一定程度,引發這些大交易者的買單。然後你會把你的頭寸賣給他們,穩賺一筆。事實上,你是在操縱價格,利用其他買家。
假設你是一個黃金交易者。假如你知道ACME公司會在每份410.5美元的價位大舉買入1 000份8月份黃金合約,你會怎麼做?
如果你的買入量足夠大,能把價格推高到這個限價點,你就可以在這個點清倉賣出。如果目前的價格離這個限價點還差得遠,你手頭的資金可能還不足以把市場推高到這個程度。
但如果現價已經接近這個點,比如說是每份408美元,那麼幾個買單就可以把價格推到足夠高的程度,引發來自ACME公司的更多買單。
由於你的策略是首先買入,然後快速賣出,你可能會改變突破點本身的意義。
如果沒有交易者效應,一次突破可能表明阻力位已經破除,市場向有利方向變動的可能性提高了。但如果加入新買單的影響,突破的意義會被改變,因為這些買單的目的只是將價格推高到突破點的程度。
舉個例子。假設沒有人願意在每份408美元以上的價格買入,但有人願意在每份409美元以上的價格賣出1 000份合約,這些賣單就會像一個天花板,能阻止價格突破每份409美元。
如果沒有你的買單,市場不會上漲到每份410.50美元的高度,所以突破不會發生。因此,如果你對一個以突破法為基礎的系統進行模擬,這裏將不會存在突破,自然也沒有交易發生。
現在設想一下,你在同樣的情況下進入了市場,以每份409美元的均價把那1 000份合約照單全收了。現在,這個價位上已經沒有賣者,所以你必須從要價每份411美元的賣者那裏再買100份合約,把價格再推高一點。
這筆交易會引發ACME公司的買單,這時候,你可以在每份411美元的價位把那1 000份合約賣給ACME公司。儘管ACME公司自我感覺良好,真正大獲成功的卻是你。
最後要做的只是處理掉那剩下的100份合約。由於在近期的高價位上已經沒有買家,你只能低價出售,回到每份407美元的價位賣出。
不考慮傭金成本,你在這100份合約上賠了4萬美元(每盎司賠4美元,每份合約100盎司,一共100份合約),但你在那1 000份合約上賺了20萬美元(每盎司賺2美元,每份合約100盎司,一共1 000份合約),這樣總共就賺16萬美元。這對一次歷時幾秒鐘的操作來說已經是很不錯的結果。
ACME公司的那些寄希望於突破法優勢的交易者們現在怎麼樣呢?他們手裏有一個巨大的虧損頭寸,而且進入這個頭寸的原因與他們的歷史檢驗的原理完全不是一回事。這就是交易者效應的後果。
這方面還有一個例子。幾年前曾有一個系統因為多年來的優異表現而變得大受歡迎,有很多經紀人開始向他們的客戶提供這個系統。
我曾一度聽說已經有數億美元開始追隨這個系統。但就在它的影響力達到巔峰之後沒多久,它的追隨者們遭遇了一次曠日持久的衰落,而這樣長和這樣嚴重的衰落期在它20年的歷史測試中從未出現過。
這個系統有一個容易被利用的軟肋。按照它的法則,如果當日的收盤價超過了某個特定水準,那麼就在次日早晨一開盤時買入或賣出。
由於其他交易者知道什麼樣的價位會引發這些買單或賣單,那麼很簡單,他們完全可以趕在當日收盤之前買入,然後在次日開盤之後馬上賣出。
賣出價通常比買入價高得多,因為所有在一夜之間生成的買單都是在這個時候入市的,這是由系統的法則決定的。
03
更糟糕的是,系統發明者們所選擇的市場組合還包括一些流動性較差的市場,比如木材和丙烷。
對這樣的市場來說,相對較小的交易量就可以對市場造成不小的波動,但卻有這麼多的系統追隨者湧入這些市場。我相信,這個系統之所以突然之間陷入史無前例的衰落,原因之一就在於這種預期性的買入行為一度毀掉了它的優勢。
其他交易者沒有那麼笨。他們會利用他們所注意到的任何重複性的模式。正因為這樣,開發你自己的系統要強於追隨別人的系統。
如果你能開發出自己的系統,你的優勢就不太容易被其他交易者毀掉,因為他們不會知道你什麼時候買入或賣出。
在我們為裏奇效力的時候,我們常常會在差不多同一時間入市交易。其他交易者知道,如果他們開始接到我們的大定單,那麼這樣的定單可能會持續上一段時間。
因此,場內交易者和經紀人時不時地會搶先行動,導致市場提前變動。由於我們用的是限價定單,他們這樣做是有風險的(這也是我們使用限價定單的原因之一),因為在市場提前變動的情況下,我們的定單可能無法成交,所以我們會撤單。
有時候,當我想買入或賣出,但又知道市場很容易在交易者的預期作用下提前變動時,我會故意發出相反方向的假定單。
這樣,假如市場真的聞風而動,我會撤掉最初的假定單,發出一個接近於市價甚至是比市價還要有利的限價真定單。舉個例子,如果我想買入100份合約,我可能先放出一個假賣單。
假設這個假賣單要求在每份415美元的價位賣出100份合約,而市場現狀是買入價410美元,賣出價412美元,那麼我的假賣單的出現可能令市價變為買入價405美元,賣出價408美元。
這時候,我可以撤掉假賣單,發出限價410美元的真買單,這個買單很有可能在每份408美元或410美元成交,比我發出假訂單之前的市場賣出價要低。
但這種方法用得不能太頻繁,只要能讓其他交易者猜不透我們在做什麼就夠了。在某些方面,這有點像撲克牌中的“虛張聲勢”技巧,也就是明明手中的牌很差但卻故意下大注去迷惑對手。
你不能沒完沒了地虛張聲勢,不然你早晚會被識穿,到頭來輸得一塌糊塗。
但偶爾虛張聲勢一下是很有用的,因為這往往會讓你的對手們摸不著頭腦,反而在你拿著一手必勝好牌的時候冒險跟注,白白給你送上更多的籌碼。而且,虛張聲勢本身也有可能出奇制勝,也會增大你的贏面。
就像是偶爾的虛張聲勢讓牌桌上的對手們暈頭轉向一樣,海龜們也會想辦法稍稍迷惑一下那些試圖猜透理查德·丹尼斯的人。
我們有的用小止損標準,有的用大止損標準,有的在突破發生時買入,有的在突破之後買入,還有的在突破之前買入。加在一起,我們放出了不少煙幕彈,可能對丹尼斯執行他的交易幫助不小。
請注意,交易者效應在任何情況下都有可能發生,不一定是某些交易者故意搶先行動的結果。
只要有太多的交易者不約而同地試圖利用某種市場現象,這種現象的優勢就會被毀掉,至少在一段時間內不再有效,因為眾多交易者的訂單會削弱它的優勢。這個問題在套利類交易中尤其普遍,因為這種交易的優勢是相對較小的。
04
隨機效應
大多數交易者都想不到純隨機性因素對他們的交易結果可能有多大的影響。在這一點上,一般投資者的認識甚至還不如一般的交易者。
包括退休基金和對沖基金的那些決策者在內,就連經驗非常豐富的投資者通常也不知道這種效應能大到什麼程度。事實上,單是隨機性事件的影響就有可能造成交易結果的天壤之別。
假如把隨機事件包含在內,一系列歷史模擬檢驗的差異水準會高得驚人。本節將談一談與長期趨勢跟蹤策略有關的純隨機效應問題。
我在提到優勢率這個概念的時候說過,我曾對一個隨機性入市策略進行了模擬檢驗,這種策略僅根據電腦模擬的擲硬幣結果來決定在開盤時做多還是做空。
當時我設計了一個完整的系統,採用以擲硬幣結果為基礎的進入策略和定時退出策略——在入市之後的若干天後退出,天數從20天到120天不等。
然後我對這個系統作了100次測試,所用數據就是我們在第十章中用於比較不同趨勢跟蹤策略的那些數據。
在這100次測試中,最好的一次獲得了16.9%的年均回報,在10.5年的測試期內把100萬美元變成了550萬美元,但最差的一次測試卻年均虧損20%。這說明,純隨機性事件可以導致巨大的差異。
如果我們加入一點優勢因素,結果會怎麼樣?如果我們加入唐奇安趨勢系統中的那種趨勢篩檢程式,把這個系統變得類似於一個趨勢跟蹤系統,結果會怎麼樣?
這樣一改,我們的入市決策還是隨機性的,但前提是入市行動只能與大趨勢的方向一致。這是個有趣的問題,因為無論你觀察哪些趨勢跟蹤基金的表現,你都會發現它們良莠不齊,差異極大。
如果某個基金表現得高人一籌,它的管理者當然會說這是卓越的交易策略和執行能力的結果。
實際上,超常的表現也可能源於隨機效應,而不是什麼卓越的策略。如果你考慮一下這樣的隨機效應在系統有優勢的情況下還能有多大的影響,你就能更好地理解這一點。
如果我們在這個完全隨機性的系統中加入一個有正優勢的趨勢篩檢程式,那麼100次測試的平均表現會顯著改善。根據我的測試,平均回報率上升至32.46%,平均衰落幅度下降至43.74%。
但即使加入了篩檢程式,各次測試結果之間仍有相當大的差異。在100次隨機測試中,最好的一次達到了53.3%的年均回報率和1.58的MAR比率,最大的衰落只有33.6%;但最差的一次只有17.5%的回報率,最大衰落卻有62.7%之大。
運氣或者說隨機性因素對交易者和基金的表現有舉足輕重的影響,儘管那些交易精英們不願意對他們的投資者們承認這一點。
歷史表現在投資者眼中就是響噹噹的硬證據,但實際上並沒有那麼硬。比如,如果你投資於某個基金,你一般希望這個基金的未來表現仍可以像過去一樣好。
問題是,歷史表現的好壞也是有運氣成分的。有的基金管理得確實很出色,但運氣一般;有的基金管理得很一般,但運氣很好。如果只盯著歷史記錄,你是分不清實力與運氣的。隨機效應太大、太普遍,所以你不可能得出確鑿無疑的結論。
考慮一下上面所說的100次測試中的最佳結果。假如你的交易風格比較保守,比如說你的風險水準只有海龜們的25%,那麼其中的一次測試將得出10年內25.7%的年均回報率和僅僅17.7%的最大衰落。
我們都知道,一個隨機性入市的交易者在未來的表現不太可能達到這個水準,因為隨機性策略是沒有優勢的。遺憾的是,對一個只相信歷史記錄的人來說,諸多交易者之中總有某些看起來技高一籌但實際上極為平庸的幸運兒。
05
幸運兒
我們也可以從自然現象中認識隨機效應。人類的智力、身高、體育能力、歌唱能力等素質都是隨機效應的產物。
如果你在某種特徵上擁有良好的遺傳基因(也就是說,你的父母都有這種特徵),那麼你比大多數人都更有可能擁有這種特徵,儘管你的這個特徵可能達不到父母那種程度。
假如你的父母都很高,你也很可能是個大高個兒,但你的父母高於平均身高水準越多,你比他們矮的可能性就越大。
在遺傳學和統計學上,這種規律被稱作均值回歸或回歸效應。你的高個子父母也擁有高個子基因,而且擁有從身高角度看非常幸運的基因組合。
但是,一個幸運地擁有高個子基因組合的人可以把基因傳給後代,卻無法將運氣傳給後代,所以他們的孩子更有可能接近於平均身高水準,因為這個孩子不太可能擁有父母那樣“幸運”的基因組合。
當你用業績衡量指標去區分好基金和壞基金的時候,你很容易遭遇隨機效應問題。因為運氣好的平庸交易者要多於運氣不佳的優秀交易者。
假設有1 000個交易者,其中有80%接近於平均水準,只有五六個真正的高手。那麼,只有五六個人有可能成為運氣不佳的優秀交易者,卻有800個平庸的人有機會擁有好運。
如果這800個人裏有2%能幸運地擁有10年的良好記錄(從前面所說的測試中可以看到,實際比率甚至可能高於2%),這意味著,擁有良好記錄的固然有21個人,但其中只有1/4的人是真正的優秀交易者。
06
真正優秀的交易者
時間更加垂青真正優秀的交易者,而不是那些平庸的幸運兒。即使那800個人裏有16個人能有10年的好運,他們的表現也很有可能在接下來的15年中趨於平庸。
相反,如果你僅僅考慮過去5年的記錄,那麼看似優秀但其實只是運氣好的人將急劇增多。這是因為隨機效應的影響在短期內更為顯著。
在我們的測試中,假如我們把測試時間縮短,比如說只看2003年1月~2006年6月的情況,差異水準會有什麼變化?根據測試結果,隨機入市系統在這段時期內的平均表現普普通通,回報率是35%,MAR比率是1.06。
這個成績遠遜於那些真正的系統:三重移動均線系統的回報率是48.5%,MAR比率是1.50。布林格突破系統的回報率是52.2%,MAR比率是1.54。雙重移動均線系統也有49.7%的回報率和1.25的MAR比率。
那麼,有多少幸運兒從那100次隨機測試中產生呢?有多少人僅憑好運就擊敗了我們的最佳系統呢?在100次測試中,有17次的MAR比率高於1.54;在這17次中,有7次的回報率超過了52.2%。
最好的一個隨機交易者獲得了71.4%的回報率、34.5%的最大衰落和2.07的MAR比率。如果你還想靠3年曆史記錄尋找優秀的交易者,請想想這些數據吧。
在你看短期歷史記錄的時候,你應該明白你所看到的表現有很大的運氣成分。如果你想知道某個交易者究竟只是幸運的平庸者之一,還是少數真正的高手之一,你應該透過表面記錄作更深入的分析,好好研究一下記錄背後的人。
好的投資者投資於人,而不是歷史記錄。當他們觀察交易者時,他們知道哪些特徵預示著未來的優異表現,哪些特徵反映了平庸的能力。這是克服隨機效應的最佳方式。
有個好消息可以告訴那些正在做歷史測試的人:如果測試結果有可能源於隨機效應而不是系統的優勢,你是很容易發現這一點的。我們會在第十二章討論這個問題,但現在,讓我們先來看看歷史測試結果與實際交易結果不符的另外兩個原因。
07
最優化矛盾
還有一種效應會造成歷史測試結果與實際交易結果的差異,我稱之為最優化矛盾。這個矛盾製造了很多困惑,對剛剛接觸電腦模擬技術的新人來說尤其如此。
有些交易系統需要用特定的數值進行計算,選擇這些數值的過程就是最優化。這些數值被稱為參數。比如,長期移動均線的計算天數就是一個參數,短期均線的計算天數也是一個參數。
最優化就是為這些參數選擇最佳或最優化數值的過程。有許多交易者認為最優化不是件好事,因為它會導致曲線擬合現象和拙劣的表現。我說這是一派胡言!
如果操作得當,最優化是件好事,因為瞭解參數變化的影響總比忽略這種影響要好。
當我們檢驗參數變化的效果時,我們常常能從一些跡象中發現系統的表現是隨機效應或曲線擬合的結果,而不是系統優勢的反映。
所謂最優化過程,無非就是觀察一下調整參數值對交易結果的影響,合理地決定在實際交易中使用什麼樣的參數值。
有些交易者之所以認為最優化有害或有危險性,只是因為他們不理解最優化矛盾,而且曾見識過不恰當最優化的惡果——這種不恰當的最優化正是統計學中所說的過度擬合現象的根源。
所謂最優化矛盾,是指參數最優化過程有兩種相互矛盾的效果:一方面可以提高系統在未來表現良好的概率,另一方面卻會降低系統的未來表現符合模擬測試結果的概率。
這樣,參數最優化雖然提高了系統的預期表現,但也降低了歷史模擬指標的預測價值。我相信,正是因為對這種矛盾理解不足,許多交易者才會懷著對過度最優化和曲線擬合的恐懼而對最優化避之唯恐不及。但在我看來,恰當的最優化永遠是明智的。
使用恰當的最優化所得出的參數值可以提高系統在實際交易中獲得理想結果的可能性。一個例子有助於我們理解這一點。
考慮一下布林格突破系統,它有兩個參數:一個是長期均價,一個是標準差,一定時間內的長期均價加減一定倍數的標準差就是系統的波幅通道。
下圖反映了這個系統在不同標準差參數值下的MAR比率,橫軸代表通道寬度,也就是標準差倍數,從1倍到4倍不等。
圖中可見,2.4倍標準差對應著最好的模擬結果。任何小於或大於2.4倍標準差的入市標準都會降低MAR比率。
現在我們來看看最優化是不是真的有益。假設我們沒有考慮通道寬度的最優化,而是憑主觀感覺選擇了一個3倍標準差的參數值——因為我們記得統計學課本說過,對正態分佈來說,有99%以上的值會落到均值加減3倍標準差的範圍內。
如果未來與過去的差別不是太大,那我們會錯失很多利潤,而且我們的衰落幅度比2.4倍標準差要大得多。差距大到什麼程度呢?
看幾個數據就知道了:在10年半的時間內,假設衰落水準相同,2.4倍標準差下的利潤是3倍標準差的8倍之多,兩者的年均回報率之比是54.5%比28.2%。
不做最優化意味著糊裏糊塗地被運氣因素完全左右。發現了調整這個參數的影響,我們就更好地理解了入市標準參數的作用和交易結果對這個參數的敏感性。
現在我們知道,如果通道太窄,交易次數就會過多,這會削弱系統的表現;如果通道太寬,你在等待入市的過程中會白白錯過很多趨勢,這也對系統不利。
如果你因為害怕過度最優化和曲線擬合而放棄最優化,你就得不到這種認識,而這種認識本來可以大大地改善你的交易結果,也為你在未來設計更好的系統提供一些新的理念。
下麵將介紹其他幾個參數,你會看到,它們的變動同樣對應著系統表現的山峰或山丘形變化。
08
移動均線參數
下圖反映了移動平均收盤價的計算天數對MAR比率的影響,移動均價的計算天數能決定布林線波幅通道的中心線,從150天到500天不等。
如圖所示,350日對應著最佳的測試結果。任何大於或小於350日的參數值都會降低MAR比率。
下圖則反映了不同退出標準參數下的MAR比率。退出標準是一個規定系統退出點的參數。我們在前文介紹布林格突破系統的時候說過,當收盤價穿越了移動均線(也就是通道的中心線)時,系統就退出市場。
在這次測試中,我的目的就是檢驗一下系統在這個穿越點之後或之前退出市場會怎麼樣。在圖中,正的退出標準參數值對多頭交易來說表示高於移動均線的標準差倍數,對空頭交易來說則表示低於均線的標準差倍數。
相反,負的參數值對多頭交易來說表示均線之下,對空頭交易來說表示均線之上。
讓我們看看退出標準參數值從–1.5逐漸變動到1.0的影響。如上圖所示,參數值達到–0.8時,測試結果最好。任何高於或低於–0.8的值都會降低MAR比率。
09
最優化參數
之所以說歷史測試有預測價值,是因為歷史測試結果可以對交易者在未來的表現提供一些指示。未來與過去越接近,未來的交易結果就越接近於歷史模擬結果。
作為系統分析的一種方法,歷史測試也有一個很大的問題,那就是未來永遠也不會等同於過去。但一個系統確實能利用反映在市場中的人類永恆行為特徵來贏利,從這個角度看,過去就是對未來的模擬,儘管不是精確的模擬。
用全部經過最優化的參數得出的歷史檢驗結果代表著非常特殊的交易結果,也就是這個使用最佳參數的系統用於過去的實戰中將產生的交易結果。因此,這個模擬結果就代表著最樂觀的歷史回顧。
假如未來與過去完全一致,你在實際交易中就應該得到這樣的結果,但未來永遠也不會等於過去!
現在請回顧一下本章前後的各個圖表:每個圖的形狀都像是一座山峰,而且都有一個峰頂值。你可以用下麵這樣的圖來表示一個給定的參數值。
對A點來說,如果它的相對位置左移,它所對應的系統表現就要低於A點;如果它的位置右移,系統表現就會提高。
因此,參數值A下的測試結果有不錯的預測價值,不管未來如何變化,因為它高估和低估未來表現的可能性是相同的。
但B點就不一樣了。不管向左還是向右移,系統表現都會下降。這意味著B值下的預測結果很有可能高估未來的實際結果。
假如這種效應通過多個不同的參數而複合放大,那麼未來變化的影響也會複合放大。這意味著,如果有很多參數都是最優化的,那麼未來的實際結果與這些最優化參數值下的預測結果就很難吻合。
但這並不意味著我們應該在實際交易中使用參數A。因為即使未來的變化幅度相當可觀,B點左右的系統表現仍然高於A點左右的系統表現。
因此,儘管最優化過程降低了預測價值,你仍然應該採用最優化參數,因為最優化參數更有可能帶來理想的結果,不管未來如何變化。
最優化矛盾已經成了騙局和詭計的溫床。有很多不道德的系統兜售者大肆炫耀他們靠特定市場上的最優化(特別是短期最優化)所得出的超高利潤和不可思議的優異表現,但他們知道這樣的歷史測試結果不可能在實際交易中實現。
不過,最優化會導致虛誇現象並不意味著我們不應該最優化。事實上,要想建立有效的交易系統,最優化是至關重要的。
10
過度擬合或曲線擬合
騙子們還會用其他方法來製造不切實際的歷史檢驗結果。最膽大妄為的那些人會有意使用過度擬合或曲線擬合來美化他們的系統。人們常常將過度擬合與最優化矛盾混為一談,但實際上它們不是一回事。
過度擬合通常發生在系統變得過於複雜的時候。有時候,你可以通過添加法則來提高一個系統的歷史表現,但這僅僅是因為這些法則影響了屈指可數的幾筆重要交易。
添加法則會導致過度擬合,這對發生在關鍵時期的交易來說尤其明顯。比如,假如一條法則要求你在接近最高峰的時候退出一個特別大的贏利頭寸,這當然會提高你的系統表現,但如果這條法則對其他情況沒有充分的適用性,這就成了過度擬合。
我曾見過許多系統兜售者在一段相對低迷的時期後用這種手段來提高他們的系統表現。他們有時候會把修改過的系統稱為原版系統的“加強版”或“二代”。
如果你想購買這一類的“加強”系統,你應該好好研究一下那些新添加的法則,確保那些改進不是過度擬合的結果。
我發現用極端的例子來說明一種現象往往有助於我們更好地理解它。所以,我想給出一個極端過度擬合的例子。我會從非常簡單的雙重移動均線系統開始,然後添加一些法則,開始數據的過度擬合。
我們知道,這個系統在最後6個月的測試期內遭受了一次非常嚴重的衰落。所以,我會加入幾條新法則,通過解決衰落問題來提高系統的表現。
當衰落幅度達到一定的水準時,我就把我的頭寸規模降低到一定的百分比;在衰落期結束後,我再把頭寸恢復到正常水準。
讓我們把這條新法則添加到系統中。這個法則有兩個需要最優化的參數:一是頭寸壓縮的百分比,二是開始頭寸壓縮的衰落限制標準。
根據模擬出的淨值曲線,我決定在衰落幅度達到38%的情況下把頭寸減小90%。添加這條法則大大提高了系統的表現,回報率從沒有這條法則時的41.4%上升到了45.7%,最大衰落從56%下降到了39.2%,MAR比率從0.74上升到了1.17。你可能會想:“這是個很棒的法則,系統大有改善。”事實上,你完全錯了!
問題在於,這個法則在整個測試期內只有這一次發揮作用。它發生在測試期馬上就要結束的時候,而我加入這條法則是因為我已經知道了淨值曲線的形狀。
因此,系統已經被有意地進行了數據擬合。“這有什麼大不了的?”你可能會問。那就讓我們看看下圖,也就是不同衰落限制下的MAR比率。
很明顯,當我們把衰落限制下降到37%以下時,系統的表現急轉直下。事實上,衰落限制只下調了1%,系統就從每年贏利45.7%陡然變為每年虧損0.4%。原因何在?
原來,下調衰落限制後,這個法則將在1996年8月間生效,導致我們把頭寸規模大幅削減,以至於後期贏利太少,沒能從衰落中恢復元氣。
由此可見,這條法則並沒有那麼好。它在第一次試驗中有效僅僅是因為那次衰落發生在測試期即將結束的時候,頭寸削減對後期表現的影響並沒有體現出來。
參數值的微小變化卻引發了交易結果的劇烈變化,這種現象被交易者們稱為峭壁(cliff)。
峭壁的出現是個很好的信號,這證明你可能已經犯了過度擬合的錯誤,而且你的實際交易結果可能會與測試中的結果大相徑庭。峭壁現象也是我們認為參數最優化有益的原因之一:通過最優化程式,你可以發現峭壁,在開始交易之前就修正這個問題。
11
樣本規模的統計學價值
正如我們在第二章中所說,人們往往對某種特定現象的少數事例過於重視,但卻忽略了一個重要事實:從統計學上說,我們從寥寥幾個例子中得不出太多的結論。
這個問題就是過度擬合的主要緣由。添加某些不太經常發揮作用的法則會導致無意中的過度擬合,而這會造成事後測試結果與實際交易結果的差異。
這個問題經常在不經意間發生,因為大多數人都不會從這樣的角度考慮問題。季節性因素就是個很好的例子。如果你想用10年的數據來分析某個特定的季節性現象,你最多只有10個例子可用,因為你的測試期只有10年。
這樣的樣本規模沒有什麼統計學價值,因此任何以這些數據為依據的測試都對未來的表現沒有太多的借鑒意義。
假設我們忽略了這個問題,想讓電腦幫我們找到一個數據擬合的完美方法。你可能發現有好幾年的9月份都表現不佳,於是你想加入一條法則,在每年的9月份都將頭寸削減到一定的比例。由於你有電腦,你可能想借助電腦模擬來找出所有的季節性逆境時期,每到這樣的時期,你就會削減你的頭寸。
我把這樣的方法用在了本章所說的系統中。我進行了4 000次測試,看了看季節性調整的效果:從每個月的月初開始削減頭寸,在特定的天數內削減一定的百分比,然後在特定天數之後將頭寸恢復到最初的規模。
結果,我在10年的測試期內發現了兩個可調整的時期。如果在每年9月份的頭兩天以及每年7月份的頭25天內都將頭寸規模降低96%,則系統的表現會提高,提高多少呢?
加入這條法則後,回報率進一步從45.7%上升到58.2%;衰落幅度略有提高,從39.2%變為39.4%;MAR比率則從1.17提高到1.48。乍一看,我們還是會認為:“這是個很棒的法則,系統大有改善。”
遺憾的是,這條法則生效僅僅是因為在過去的這兩個季節性時期發生過嚴重的衰落,並不是因為這兩個時期有什麼神奇之處。
未來的同樣時期內再發生同樣衰落的可能性並不大。這就是最糟糕的那種過度擬合,但你想不到有多少聰明人曾落入這樣的陷阱。
如果不知情,你可能會以為這個系統非常好,可以用來交易了。你甚至可能向朋友和家人們吹噓這個絕妙的系統,想從他們那裏籌一筆錢。
問題是,這個系統的實際回報率只有41.4%,不是58.2%;衰落是56.0%,不是39.4%;MAR比率是0.74,不是1.48。系統的實際表現註定會令你大失所望,因為你已經被曲線擬合手段下的美好景象迷惑了。
接下來,我會談談如何避免本章中所提到的這些問題。我會告訴你如何為了將交易者效應的影響最小化而判斷一個系統真正的潛在效果,如何甄別隨機效應,如何正確地最優化,以及如何避免對歷史數據的過度擬合。