開拓者量化網(wǎng) 資訊頻道 程序化交易 交易心得 淺談交易系統(tǒng)參數(shù)優(yōu)化

[轉(zhuǎn)] 淺談交易系統(tǒng)參數(shù)優(yōu)化

2013-07-09 10:07 來源: 新浪博客 瀏覽:3441 評論:(1) 作者:開拓者金融網(wǎng)

程序化交易的書籍在市面上層出不窮,大多數(shù)打算進行程序化交易的朋友都會去閱讀一兩本或者更多。我敢肯定通過閱讀大家會發(fā)現(xiàn),這些書里面每一本都會提到交易模型的參數(shù)優(yōu)化的問題。這是由于現(xiàn)代的計算機處理技術(shù)發(fā)展的同時也帶來了一些困惑,程序化交易可以說是建立在計算機和通訊技術(shù)的基礎(chǔ)之上的一種交易手段,如果沒有這些基礎(chǔ)設(shè)施,那么程序化交易也就不能存在。正是有了可以高速運行的CPU才使我們可以對參數(shù)進行優(yōu)化。光憑技術(shù)手段并不足以解決所有交易的問題,這就是為什么說交易是一門藝術(shù)之所在,而我們使用機械的交易方法是為了盡可能的避免人為的判斷和情緒對交易的不良影響,在我們沒有形成自己的一套交易體系之前通過機械的方法來進行交易無疑可以少走很多彎路,把時間和金錢留給我們用來積累更多的經(jīng)驗,讓我們首先確保在市場中生存,再去追求如何使交易變成藝術(shù)。因此作為一個力求以科學(xué)和規(guī)律的方法解決交易的問題的人,我試圖通過本文來解決大家在程序化交易中參數(shù)優(yōu)化這個矛盾的問題。


什么是參數(shù)優(yōu)化


在這里首先我們介紹一下什么是參數(shù)優(yōu)化,以便一些剛剛接觸程序化交易的朋友閱讀本文,已經(jīng)了解這方面知識的朋友可以掠過本段。


對于一些模型來說會有一些參數(shù),這些參數(shù)設(shè)置的主要含義可能是為模型提供一個周期,舉個例子來說象n日均線上穿N日均線(n為短周期均線參數(shù),N為長周期均線參數(shù),一般短周期的移動平均要比長周期的變化要快,所以我們通過這兩個不同周期的均線來制定交易計劃),n和N參數(shù)的意義就是指定周期,一般來說參數(shù)的意義都與時間有關(guān)系(周期),但也有其他的用途。參數(shù)優(yōu)化實際上就是利用計算機的處理能力對參數(shù)的各個值進行一次測試,找到盈利最大的那次值,如上面函數(shù)的n和N,我們利用系統(tǒng)的參數(shù)優(yōu)化功能就可以把n(1~10),N(10~30)都測試一遍,找到最好的那個值。


參數(shù)優(yōu)化的基本矛盾


參數(shù)優(yōu)化的基本矛盾在于,我們選取出的最優(yōu)的參數(shù)數(shù)值只是在我們歷史數(shù)據(jù)上成立的,就是說我們是往回看用這個或這組參數(shù)能夠獲得最大的收益,但行情的發(fā)展卻是無法完全預(yù)料的,我們可以找到歷史上表現(xiàn)最好的參數(shù),但是這個參數(shù)未必在未來是最好的。因為每種系統(tǒng)設(shè)置參數(shù)的用意不同,更有甚者可能歷史上最好的參數(shù)在未來可能就是一組很糟糕的參數(shù)。比如一個參數(shù)的設(shè)置剛好讓你抓住了一波大行情,在參數(shù)優(yōu)化取到這樣的值時很有可能對未來沒有任何幫助。當(dāng)然有些參數(shù)優(yōu)化是由于減少了平均的虧損率使你的系統(tǒng)的效果更好,這種參數(shù)優(yōu)化可能對未來會有一定意義,但也不是絕對的,因為行情的發(fā)展有其不可預(yù)知的一方面。


所以參數(shù)優(yōu)化的基本矛盾在于歷史統(tǒng)計結(jié)果和行情未來發(fā)展之間的矛盾。我寫本文的主要目的就是為了在這樣的問題面前,我們該如何處理,如何辯證的看待參數(shù)優(yōu)化帶來的利與弊,更重要的是提供一個方法讓大家面對參數(shù)優(yōu)化的時候知道該怎么辦。


統(tǒng)計研究


為了研究這個問題,首先我對我自己使用的一個很成熟的模型的各個參數(shù)值進行了測試,并把一些關(guān)鍵的數(shù)據(jù)如收益率,交易次數(shù)進行了統(tǒng)計。首先介紹一下我的交易系統(tǒng),我的交易系統(tǒng)是屬于趨勢跟隨型的一個交易系統(tǒng),跟所有趨勢跟隨型的交易系統(tǒng)有著同樣的特點。就是趨勢形成的時候進入頭寸,當(dāng)權(quán)益回吐一定程度的時候認(rèn)為是是趨勢結(jié)束了軋平頭寸,勝率不高,但在趨勢市中能夠賺錢來彌補在盤整震蕩市中必然要賠的錢。這個系統(tǒng)只有一個參數(shù),其設(shè)置的目的是為了給系統(tǒng)中所使用的計算公式和技術(shù)指標(biāo)提供周期。


這里需要提到的一點是,很多人說模型最好不要設(shè)置參數(shù),做好了模型應(yīng)該把參數(shù)固定在模型內(nèi)部不再改變,我對這個觀點持有不同的看法,我認(rèn)為市場總是在變化的,而我們使用模型就是為了抓住這種變化中的規(guī)律,當(dāng)然這種規(guī)律也是會變的,我給我自己的模型留有一個參數(shù)就是為了調(diào)節(jié)這種變化,比如使用均線系統(tǒng),這幾年因為這個品種總是大起大落,那么我們使用短一點的周期就可以了。因為行情變化的總是比均線走的快,不會總觸發(fā)平倉或者開倉條件,但是過了幾年發(fā)現(xiàn)這個品種不是那么活躍了,那么我們就應(yīng)該調(diào)整參數(shù)把周期調(diào)長一些,以適應(yīng)市場。而不是以一刀切的觀點認(rèn)為沒有參數(shù)就不再面對參數(shù)優(yōu)化的問題了。這個觀點之所以錯誤,是他看到了參數(shù)優(yōu)化的矛盾,而沒有意識到我們做交易的最根本目的是什么。我們做交易最根本的目的是在于獲取利潤,而不是逃避僅僅一個參數(shù)優(yōu)化的問題。不過這里還需要提醒的是,參數(shù)固然要設(shè)置,但是不能設(shè)置過多,設(shè)置最多兩個足矣,自己必須搞清楚設(shè)置這個參數(shù)的意義是什么。參數(shù)設(shè)置過多一方面代表的是你的交易思想的不成熟,因為成熟的交易思想是抓住市場中本質(zhì)的東西,而本質(zhì)的東西并不需要太多的變量來對其進行描述;另一方面,過多的參數(shù)等于說給程序更大的靈活性,以適應(yīng)更多情況的行情,但你在選擇參數(shù)的時候會面對更大的困惑,因為多參數(shù)的模型經(jīng)優(yōu)化后的一組參數(shù)值很有可能是讓你靈活的系統(tǒng)最符合歷史行情的情況,這就是所謂的“參數(shù)擬合”。


下面我提供一個通過統(tǒng)計我的模型參數(shù)從1到120各個值的時候,盈利和交易次數(shù)的圖表。為了保持?jǐn)?shù)據(jù)來源的一致性,這里我們將這些值都在豆粕主力,2003年9月19日到2008年9月19日這段時間進行測試.


首先我們對參數(shù)與交易次數(shù)的結(jié)果進行研究,我們發(fā)現(xiàn)隨著參數(shù)的增大,交易次數(shù)在不斷的減小,而且在參數(shù)還比較小的時候交易次數(shù)減少的幅度比較大,而參數(shù)變得很大的時候如50以上的時候交易次數(shù)減小的幅度就變得很小了。這個統(tǒng)計結(jié)果有點像數(shù)學(xué)中的反比例函數(shù)Y=C/X,C為常數(shù)。如圖3


我們可以發(fā)現(xiàn)圖1和圖3兩條曲線非常的相似,我們可以通過回歸分析計算出你的交易系統(tǒng)的這條關(guān)系曲線,但是其實沒有多大的必要。這里主要說說為什么會形成這樣形狀的一條曲線。首先我們使用的系統(tǒng)是趨勢跟隨型的系統(tǒng),我們設(shè)定的參數(shù)的含義是周期的長短,當(dāng)我們選取的參數(shù)較小的時候,系統(tǒng)中使用的周期(如移動平均)較短,所以系統(tǒng)也較為靈敏產(chǎn)生的信號也就多,當(dāng)參數(shù)較大的時候,系統(tǒng)中使用的周期較長,所以系統(tǒng)所產(chǎn)生的信號也少。當(dāng)系統(tǒng)在周期較短比較敏感的時候,每調(diào)增一些周期所降低的交易次數(shù),要大于在周期較長的時候。這就是為什么這條曲線是這樣的原因。


之所以我做了參數(shù)與交易次數(shù)關(guān)系統(tǒng)計,一方面是因為這是我們選取系統(tǒng)的一個參照,因為交易次數(shù)多所帶來的交易費用也就多,有些人的性格希望系統(tǒng)能多提供一些信號,有些人希望系統(tǒng)的信號不要太多;另一方面我發(fā)現(xiàn)絕大多數(shù)參數(shù)為時間周期的趨勢跟隨系統(tǒng)的交易次數(shù)與參數(shù)之間的關(guān)系都符合這樣的一個規(guī)律,所以大家以后在對自己系統(tǒng)進行研究的時候就不用統(tǒng)計交易次數(shù)了,節(jié)省了大家的時間。大家只用知道這種以時間周期為參數(shù)的趨勢跟隨系統(tǒng)的交易次數(shù)會隨著參數(shù)增加而減小,而且在參數(shù)比較小的時候減少幅度大,參數(shù)比較大的時候減少幅度小,當(dāng)你在在考慮選取交易次數(shù)大的參數(shù)還是交易次數(shù)小的參數(shù)的時候就只用比較這兩個參數(shù)的大小就知道他們交易次數(shù)上的變化了。


接下來通過觀察圖2我們發(fā)現(xiàn),參數(shù)值使模型能夠盈利的情況大多集中在一段連續(xù)的參數(shù)范圍內(nèi),如我的這個系統(tǒng)的在3~14之間,82~95之間,最優(yōu)的參數(shù)是11(見圖2)。我們管這些能夠使模型盈利并且連續(xù)的參數(shù)值所構(gòu)成的一段區(qū)間叫做參數(shù)有效域,對于豆粕過去5年的數(shù)據(jù)來說我們模型的參數(shù)有效域是3~14,82~95。一般來說總是會有一段連續(xù)的參數(shù)構(gòu)成有效域,這是由于有效的系統(tǒng)是必須能夠抓住某個特定市場的本質(zhì)特性,而這個特性是一個比較穩(wěn)定的狀態(tài),不是經(jīng)常發(fā)生變化的。而如果出現(xiàn)參數(shù)設(shè)為3能盈利,4就是虧損,5又能盈利,6就得虧損……這樣的情況,要么說明市場不穩(wěn)定,要么就更加可能是你的系統(tǒng)有問題。


我們定義了參數(shù)有效域了之后,下面就要來解決最重要的問題,如何選擇參數(shù),如何對待最優(yōu)化的參數(shù)。通過我上面的統(tǒng)計我們發(fā)現(xiàn)11是這個系統(tǒng)在豆粕過去5年中最優(yōu)的參數(shù),那么,現(xiàn)在的問題就是11這個最優(yōu)的參數(shù)我們到底可不可以用呢?


我們觀察發(fā)現(xiàn)11是在我們的參數(shù)有效域中的,這說明如果我們選擇11作為我們的參數(shù),雖然以后11可能不是能夠使我們獲得最大收益的參數(shù),但是至少它肯定還是會落到參數(shù)有效域中間的。因為參數(shù)有效域代表的是這個系統(tǒng)是如何抓住某一個特定市場的特性的,而市場的特性變動是需要很長的時間,相對穩(wěn)定的,所以對于一個模型的參數(shù)有效域來說也是相對穩(wěn)定的,不會說今年我們模型測試的參數(shù)有效域是10~20,明年就會變成20~30了,即使變動,其變化幅度也不會很大,可能象今年參數(shù)有效域是10~20,明年可能是9~19。參數(shù)有效域代表的是這個模型對這個市場盈利概率的分布的把握,跟這個市場的本身屬性有關(guān),它只會隨著市場本身屬性的變動而變動。所以這就是說參數(shù)有效域中的參數(shù)是這個市場的普遍特性的代表。


所以我們可以選取11為參數(shù),因為即使其不能在以后是最優(yōu)的參數(shù),這個是我們決定不了的問題,但11在參數(shù)有效域中的事實也證明其還是一個能夠抓住這個市場規(guī)律能夠帶來利潤的參數(shù)。我們選取11可以即享受它成為未來最優(yōu)參數(shù)的很大可能性,又不至于因為設(shè)置個別參數(shù)可能導(dǎo)致的系統(tǒng)虧損的情況,因為我們知道在這個區(qū)間中的參數(shù)值大部分都可以抓住市場的主要脈搏,而市場要變化是很漫長的過程,我們有充足的時間去反應(yīng)這個變化,當(dāng)然這是在你意識到程序化交易并不是一勞永逸的時候。


假如說上面我們測試的結(jié)果最優(yōu)的參數(shù)值不是11而是23的話,那么我們就不能選取這個值,可以把這個值作為一個偶然,剛好參數(shù)為某個值的時候使系統(tǒng)抓住了幾次行情,而不具有普遍意義。對于這種不在參數(shù)有效域中的最優(yōu)化的結(jié)果,我們堅決不能選取。另外在有效域邊界的最優(yōu)化結(jié)果也不能選取,如上面有效域是3~14,如果14是最優(yōu)值,我們也盡可能的不選擇它,因為參數(shù)值抓住市場規(guī)律的過程也是逐漸增加到達最佳再慢慢減小到虧損的過程,在有效域兩邊的盈利狀況應(yīng)該小于在中間的那些參數(shù)值。如果出現(xiàn)了在參數(shù)有效值邊界的最優(yōu)參數(shù),很有可能也是因為剛好抓住了過去的幾次大行情,在選用的時候除非你確定知道它的意義,否則還是選擇次優(yōu)的在參數(shù)有效值中間的那些參數(shù)比較可靠。


總結(jié)

以上就是我根據(jù)實踐和研究發(fā)現(xiàn)的關(guān)于參數(shù)優(yōu)化的以及該如何處理參數(shù)優(yōu)化普遍性與偶然矛盾的方法,還有很多問題有待于進一步研究和推敲,歡迎有想法的朋友來跟我切磋交流,或者指正本文中的不足之處??偨Y(jié)一下本文,參數(shù)優(yōu)化并不是一無是處,正確的用好參數(shù)優(yōu)化可以給你帶來額外的收益,并且可以讓你更加了解市場的本質(zhì)把握市場本質(zhì)的變化。在趨勢跟隨型模型中如果參數(shù)代表的是周期長短,那么參數(shù)與交易次數(shù)的關(guān)系為反比例關(guān)系,即參數(shù)值增大交易次數(shù)減少,并且在參數(shù)較小的時候,參數(shù)變化所引起的交易次數(shù)變化幅度要比參數(shù)較大時候要大。我們在決定是否選取最優(yōu)參數(shù)之前,先應(yīng)該確定參數(shù)有效域,哪些連續(xù)在一起的參數(shù)都能夠盈利,有效域才是代表的是市場的本質(zhì)特性的標(biāo)志。之后我們再看最優(yōu)的那個參數(shù)是否在有效域中,如果不在那么應(yīng)該果斷舍棄,如果在有效域的邊界,那么根據(jù)情況考慮,如果在有效域中那么可以選用。


評分:     5

評論列表(1)
第 1- 1 條, 共 1 條.
  1. jzcm05 #1 | jzcm05
    2015-06-17 19:55:04
    謝謝分享,非常不錯.

您需要 [注冊] 或  [登陸] 后才能發(fā)表點評