2013年10月6日 星期日

基因工程技術在金融工程的應用

EasyTrader ArtNo 014
GeneticProgramming交易者
內容參閱 ~學習行為與軟體交易策略之比較 ~ 戴中擎博士
http://thesis.lib.nccu.edu.tw/

基本概念
遺傳規劃是由現任美國史丹佛大學醫學資訊學及電機工程系顧問教授JohnKoza所發明的演算法。顧名思義,GeneticProgramming乃是藉由生物學中的遺傳方法,來進行電腦程式的自我設計,以達到解決特定問題的一種計算智慧工具。GP之所以能夠自行組合電腦程式,乃是透過以樹狀結構表達的程式語言如LISP所達成。

簡單來說,LISP是一種電腦語言,它可以利用「符號表示式」(Symbolic-expression,簡稱s-expression)的方式,將一般的程式用函數(functions)與原子(atoms)組合而成的結構語法來表達。因此可以將一段程式如(x+1)∗2透過符號表示式以((+x1)2)的形式來表示
而使用LISP來表達的好處是,所有的LISP程式都可以同時用樹狀的結構來表示。所以剛才的數學式(x+1)∗2便如圖4.5所示。圖4.5中的∗和+稱為函數節點,X、1、和2稱為終點節點。終點節點是函數節點運作時所會操作的元素





所以,任何能夠被寫成LISP語言的程式和策略,都可以用樹狀結構來表示。而遺傳規劃正可以透過對樹狀結構的重組與變化,來達到自動產生程式的功能。那麼遺傳規劃是如何辦到的呢?我們將對GP交易者運作的方式介紹於後。

GP交易者
我們可以想像GP交易者是一個心中擁有許多想法的決策者。這位決策者隨著時間經過,會將他心中的各種想法拿到市場上去實驗。每試過一個想法,不論好壞都會得到一個結果,這個決策者便會參考實行的結果好壞為這個想法打分數。

時間久了,這位決策者便會停下來檢視他心中的這些概念想法,其中是不是有些實際試了之後發現並不好用,想要丟掉的?是不是有些實際用了之後效果良好,想要把他多放在心中以便將來再用,甚至是想把它改一改看能不能表現更好的呢?

本研究中的GP交易者運作方式就像這位決策者一樣。每個GP交易者都擁有一群策略,稱為其策略群體(population),其中每一個都是以樹狀結構來表達的交易策略。在實驗模擬開始之初,會以所謂的「成長法」(growmethod)隨機產生一群樹深不超過五層的策略樹作為起點。

GP交易者每天都會隨機挑選一個策略送到市場上去進行交易,並且根據交易的損失或利得替這個策略打分數,此分數便是這個策略「配適值」(fitness)。每隔一段時間,在GP交易者大略嘗試過許多策略後,就會依照策略過去的表現(fitness)來進行汰弱留強的工作(即geneticoperations)。等到汰弱留強的工作完成了,GP交易者就會擁有一個新的策略群體,可以供其繼續使用。

GP運作流程
GP交易者每隔一段時間要更新其策略群體時,會採用以下的流程和方法:

首先,依照策略的配適值,將一定數量的表現特好(fitness高)的策略直接保送到下一代新的策略群體中,這樣的動作稱為「菁英保留制」(Elitism)。保留完表現特別好的策略後,GP交易者會以交配(Crossover)及突變(Mu- tation)兩種方法,來一一製造出新的策略以填滿新的策略群體中尚有的名額空位。

為了要創造出優良的新策略,就必須要在好的基礎上下工夫。所以GP交易者會先利用一種稱為「競賽選擇法」(TournamentSelection)的方法,從原有的策略集合中隨機挑出五個策略出來比較配適值的高低,被抽出來的這五個策略中配適值最高的會被指派為母親,次高的會被指派為父親,兩個策略將會透過交配此一遺傳運作機制來產生一個「子代策略」(Offspring)。

由於子代策略都是由舊有策略互相交配所產生出來的,GP交易者便會為了要在自己的新策略群體中加入某種程度的新元素,會使用「突變」的手段來作一些隨機的變化。

新產生出來的這個子代策略送到了突變這個步驟時,會有一個機率被真的送去作突變,這個機率稱為「突變率」(MutationRate)。一旦經過突變這個步驟後, 不論有沒有被實際發生突變,都已經完成了策略的成年禮,從此便成為新策略群體中的一員,等著被GP交易者挑出來使用了。

交配(Crossover)
遺傳規劃中最常使用的遺傳運作元便是「交配」機制。交配機制的目的,在於將兩個策略的部分元件互相重組,以構成新的策略樹。

如圖4.6所示,假設我們有兩個策略樹,我們把其中當成父樹,另一個當作母樹。交配運作元的運作方式是,在父樹和母樹的身上分別隨機選取一個節點,然後首先將母樹身上將被選取的節點以下(包括被選到的節點)全部刪除,然後將父樹身上由被挑選到的節點開始,將該節點以下的部分切取出來,最後將取出的部分植入母樹原本被刪掉而留白的節點,如此便產生了一個新的子樹。



突變(Mutation)
除了交配之外,基本的遺傳規劃中還包含了另一個常用的運作元,稱為「突變」。突變運作元會在運作在經過交配所產生的子代身上。

突變的目的,在於隨入引入新的元素,可為策略的演化帶來隨機的額外訊息。突變又可分為「點突變」和「樹突變」兩種。「點突變」意指在子樹的身上隨機選取一個節點作為突變點,然後以隨機產生的另一個節點取代之,如圖4.7所示。

如果被選到的點是終點節點,則必須要隨機產生另一個終點元素來替代之;如果被選到的點是函數節點,則隨機產生的節點除了必須是函數外,還必須是參數個數完全一樣的函數,才可以用來取代原來的函數節點。



雖然內容有些艱澀,最主要是延續說明基因工程技術在金融工程裡的想法運用. 在基因工程裡提到的求最佳解是否類似程式交易開發策略模型的最佳化,而物競天擇適者生存,透過DNA複製/交配/突變是否與單一商品多策略組合的演繹異曲同工呢?

沒有留言:

張貼留言