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

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

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

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


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


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


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


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


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


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


統(tǒng)計(jì)研究


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


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


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


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


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


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


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


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


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


所以我們可以選取11為參數(shù),因?yàn)榧词蛊洳荒茉谝院笫亲顑?yōu)的參數(shù),這個(gè)是我們決定不了的問題,但11在參數(shù)有效域中的事實(shí)也證明其還是一個(gè)能夠抓住這個(gè)市場(chǎng)規(guī)律能夠帶來(lái)利潤(rùn)的參數(shù)。我們選取11可以即享受它成為未來(lái)最優(yōu)參數(shù)的很大可能性,又不至于因?yàn)樵O(shè)置個(gè)別參數(shù)可能導(dǎo)致的系統(tǒng)虧損的情況,因?yàn)槲覀冎涝谶@個(gè)區(qū)間中的參數(shù)值大部分都可以抓住市場(chǎng)的主要脈搏,而市場(chǎng)要變化是很漫長(zhǎng)的過程,我們有充足的時(shí)間去反應(yīng)這個(gè)變化,當(dāng)然這是在你意識(shí)到程序化交易并不是一勞永逸的時(shí)候。


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


總結(jié)

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


評(píng)分:     5

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

您需要 [注冊(cè)] 或  [登陸] 后才能發(fā)表點(diǎn)評(píng)