遺傳算法原理以及在量化投資的應用

2020-11-22 搜狐

原標題:遺傳算法原理以及在量化投資的應用

點擊標題下「藍色微信名」可快速關注

本篇內容涉及遺傳算法的概念,原理描述,實現方法以及在量化投資的應用。

陳煥生,凡普金科旗下會牛科技研發總監兼數據架構師,目前從事基於遺傳算法因子自動化挖掘,量化投資研究。並於2017年上線了基於遺傳算法因子挖掘的自有資金運營的量化模型。目前處於行業中遊水平,團隊的大多背景都是非金融投資領域,實現網際網路技術向量化投資領域的轉型,本人十年的網際網路研發背景,多次連續創業的經歷。

什麼是遺傳算法

1.介紹遺傳算法的概念

遺傳算法是一種進化策略的算法,模擬生物基因遺傳。遵循物競天擇,適者生存,劣者淘汰的自然規律進化。

達爾文有一句話這麼說的:

能夠生存下來的往往不是最強大的物種,也不是最聰明的物種,而是最能適應環境的物種 。

簡單的說,隨著時間的流逝,一代代的繁殖,不管外部的環境如何惡劣,都會通過遺傳和變異生存下來,以致適應環境。不適應環境的生物將會被淘汰。

人類的進化概要圖如下:

2.遺傳算法的原理

遺傳算法的基本原理就是模擬上述的繁殖遺傳的過程。

提煉出遺傳算法的基礎組件如下:

種群(Population)

生物進化是以群體的形式進行的,人類就是一個種群,種群還可以分為子種群,每個子種群分別進化

個體(Individual)

組成種群的獨立單個物種

染色體(Chromosome)

包含一組基因,個體由多個染色體組成

基因(Gene)

可用於遺傳的因子,並且攜帶特有的適應能力的信息

交叉(Crossover)

個體之間交換染色體,交叉繁殖遺傳基因,形成新的個體

複製(reproduction)

複製優秀的個體,遺傳基因

變異(Mutation)

根據一定概率基金突變,增強基因的多樣性

進化(Evaluation)

根據優勝劣汰原則,進化優秀個體,淘汰劣類個體

遺傳算法實現的方法

遺傳算法實現的步驟大體分為基因編碼解碼,種群初始化,選擇算子,交叉算子,變異算子,適應度函數(評價函數或者目標函數)。每個步驟的優化都會影響到遺傳算法整體的優化結果。

1.基因編碼

二進位編碼

二進位編碼顧名思義由二進位來編碼,由0和1組成的基因編碼成染色體

適用場景:解決背包問題

詳解:背包問題一般給定某些東西固定的大小和價值,背包的容量是有限的,優化最大背包價值類似的問題

實數編碼

實數編碼是在給定的連續或者離散的區間內,將實數組合成有序的序列的一種編碼

適用場景:解決排序的優化問題,例如TSP問題,任務排序,任務調度等問題

詳解:這類問題對於順序敏感,TSP問題就是路徑規劃的優化

字符編碼

實數編碼其實可以認為是字符編碼的一種,實數編碼的基因都是實數組成的,而字符編碼可以由字母,單詞,數字等組成,字符編碼也可以將字符通過定義固定字典表的方式,轉換成實數編碼。

適用場景:優化神經網絡的參數,權重等

詳解:在設計好的神經網絡的模型中,使用遺傳算法優化權重,得到最佳的輸出

符號編碼

一般符號編碼都使用樹來存儲,所以符號編碼也可以稱為樹編碼,是一種複雜的編碼方式。量化投資的因子挖掘編碼就是採取這種方式。

適用場景:給定特徵,找出一個函數,以達到目標優化的方式

詳解:這種方式,每一個特徵可以作為一個變量成為基因,每一個表達式就是一個染色體,對於這個染色體的交叉和變異其實就是樹節點的交換和變異。

2.選擇算子

輪盤賭選擇算法(Roulette Wheel Selection)

每個個體進入下一代的概率和它的適應度值成正比,它的進化概率是個體的適應度佔總的適應值的比例。

具體算法如下:

1.計算每個個體的適應度值。

2.計算種群所有個體的進化到下一代的概率。

3.計算個體的積累概率。

4.在[0, 1]區間生成一個隨機數r 。

5.重複(4)共N次。這樣就選出來了一個新的種群。

舉例如下:

如同輪盤旋轉一樣,面積越大,落上去的概率越大

優點:選擇的概率與它的適應值成正比

缺點:適應度如果差別太大,如果最好的染色體適應值佔比90%,那其他的染色體的進化機會將很小,這樣不利於種群進化的多樣性了。

排名選擇算法

這種選擇算法就會避免上述適應度差別很大的問題。

精英選擇算法

將種群中最好的適應度的個體直接進化到下一代,避免優秀的個體在交叉和變異的時候,丟失良好的基因。

其他選擇算法

還有其他的擴展的選擇算法,例如隨機競爭選擇、期望值選擇,排擠策略等。

3.交叉算子

單點交叉

指在個體編碼基因串中只隨機設置一個交叉點,然後再該點相互交換兩個配對個體的部分基因

兩點交叉

指在個體編碼基因串中隨機設置兩個交叉點,然後再該點相互交換兩個配對個體的部分基因

一致交叉

兩個配對的個體在每個基因點上以相同概率交叉

算術交叉

通過算術表達式計算得到新的基因,例如and,or,xor等

符號編碼的交叉

4.變異算子

基本位變異:對個體基因編碼中以變異概率、隨機指定的某一位或某幾位做變異。

均勻變異:分別用符合某一範圍內均勻分布的隨機數,較小的概率來替換所有基金的基因值。(特別適用於在算法的初級運行階段)

邊界變異:隨機的取基因兩個對應邊界基因值之一去替代原有基因值。特別適用於最優點位於或接近於可行解的邊界時的一類問題。

非均勻變異:對原有的基因值做一隨機擾動,以擾動後的結果作為變異後的新基因值。對每個基因座都以相同的概率進行變異運算之後,相當於整個解向量在解空間中作了一次輕微的變動。

高斯近似變異:進行變異操作時用符號均值為P的平均值,方差為P2的正態分布的一個隨機數來替換原有的基因值。

以上最常用的是基本位變異,其他的變異算法需要讀者自己深入研究。

二進位變異

將基因進行變異即可

實數變異

將實數進行變異即可

符號變異

將樹上的節點變異,不過操作符只能變異成操作符,變量只能變異成變量

注意:不管是交叉還是變異,都存在一定概率進行, 交叉和變異概率均是超參,不能太小,也不能他大,太大會不容易收斂到最優解,太小將容易導致種群多樣性差,容易收斂。

5.適應度函數

適應度函數也稱為評價函數,適應度函數和目標函數是兩個概念,適應度函數是根據目標函數區分群體中個體的好壞的標準,適應度函數總是非負,而目標函數可能為正也可能為負。所以一般需要在兩者之間進行轉換。適應度函數可以理解為綜合目標的一個最終評分。

適應度函數設計的要求:

簡單分值

非負

越大越好

計算簡單

目標函數轉換適應度函數方法:

直接轉換

線性轉換

多個優化目標按照權重分配轉換成適應度值

指數轉換

遺傳算法在量化投資的應用

遺傳算法複製指數

在投資中,指數基金就是通過複製標的是指數的基金,一般分為完全複製,部分複製,抽象複製。例如滬深300指數,我們用滬深300的少數的成分股來複製滬深300指數。

模型分析:

選多少只股票(成本問題)

選擇哪些成分股(跟蹤誤差問題)

股票權重分配(跟蹤誤差問題)

模型限制條件問題如下:

成分股的數量固定,等於M

成分股的持股比例有大小限制,min < x < max

目標函數定義:

1.跟蹤誤差 - 與指數偏離的程度

是t時間內,組合的收益率,是t時間內,指數的收益率。

2.超額收益 - 組合的收益率超過指數的收益率

最後適應度函數就是:

還可以定義為:

其中w是超參,兩個目標的權重。

具體實現步驟參數如下:

跟蹤誤差結果:

注意:在投資領域不是收益越高越好,而是要求收益高的同時,波動要小。一般用夏普值來衡量,在實際過程中,考慮的因素更多,比如交易手續費,停牌,st類的股票等等。

遺傳算法做因子挖掘

在量化投資領域,多因子模型是量化投資的重要並且傳統一個模型,因子是模型的原料,量化模型就是把不同類的因子按照一定方式組合在一起,去選股,並且預測收益。因子也可以稱之為特徵。在模型中你可以放入多種多樣的因子,比如:動量因子,市值類因子,基本面因子,反轉類因子,趨勢類因子,波動因子等等。這些因子的數據來源於行情數據,高頻數據,基本面數據,新聞數據,研報數據,宏觀量化類,行業分析類等等。

簡單因子:((close - open) / ((high - low) + .001))

複雜因子:((rank(ts_correlation(ts_sum(((high + low) / 2), 19), ts_sum(adv60, 19), 8)) < rank(ts_correlation(low, volume, 6))) * -1)

模型分析:

因子挖掘考慮因子的可交易性,目標函數最優,換手率低,泛華能力強且穩定。

選哪些股票參與訓練

選定in-sample的訓練時間,out-sample的樣本時間

選定股票權重

選定股票收益計算周期

選定股票交易價格類型(open,close,vwap)

選定因子極值處理

基因和染色體選擇:

Terminal Set:open、close、high、low、returns、volume、隨機數

Function Set:rank(橫截面的排序)、ts_rank(時間序列排序)、correlation(橫截面相關性)、ts_correlation(時間序列相關性)、decay(時間序列衰減)、decay_linear(線性衰減)、ts_mean(簡單平均)、ema(加權平均)、?:(if else三元表達式) ,min,max,ts_min,ts_max

模型限制約束條件:

因子有效數據佔比(>60%)

因子值數據分布

因子ICIR或者Sharp最低值

因子目標值的t-value值

目標函數定義:

ICIR:

這兩種IC值計算主要看因子值分布特點,如果因子值分布方差很小,值都很接近,那麼第一種計算方式就不怎麼顯著,第二種才是比較好的方式。

Sharp(夏普值):

換手率:一買一賣就是換手。換手率目標是越小越好,但是不能太小,換手才會帶來收益,過高的換手會導致交易成本太高。同樣也不能收益

適應度函數:

具體參數配置:

遺傳算法參數配置含:

● 種群個體個數

● 子種群個數

● 隨機種子

● 選擇算子

● 交叉算子和交叉概率

● 變異算子和變異概率

● 適應度函數配置

● 樹深度配置

● Terminal Set配置

● Function Set配置

● 其他超參配置

結果sharp進化圖:

總結:遺傳算法不僅金融領域應用廣泛,還可以優化機器學習超參、機器人路徑規劃、流水車間調度等領域都可以應用。

遺傳算法優化

1.容易局部收斂的問題

遺傳算法的局部搜索很強,所以一般容易收斂用以下解決方案,具體情況具體對待。

擴大搜索空間

提高種群的數量、增加數據種類和數量、增加算子。

提高種群多樣性

調整交叉策略、提高交叉概率、調整變異策略、提高變異概率。

毀滅優秀個體

對優秀個體進行存活周期倒計時,如果規定的周期內沒有出現新的優秀個體,就直接殺死優秀個體,讓攜帶有優秀基因且暫時遠離目標的個體存活。

2.不容易收斂的問題

減少搜索空間

減少種群數量,減少數據種類和數量、減少複雜的算子。

降低種群多樣性

降低交叉概率和變異概率。

精英策略

防止精英由於交叉變異被破壞,不能進化到下一代,對於較好的精英直接不通過交叉和變異直接進化到下一代。

3.過擬合問題

過擬合問題是在in-sample表現很好,out-sample表現非常差的問題。

樣本數據

增加樣本數據,讓少量樣本數據覆蓋整體樣本。

模型

一開始不要使用複雜的模型,不要把所有的數據加入到模型中。

數據清洗

對於數據進行清洗,分析清洗後的數據的分布。

中性化

對於相關性很高的因子可以進行中性化處理,避免朝著那個方向進化。

4.多目標收斂平衡問題

單目標進化

一開始先單目標進化,收集一定的數據,分析數據分布情況。

懲罰係數

對於目標擬合的時候,進行懲罰,懲罰可以根據周期進行線性,指數懲罰力度。

遺傳算法優缺點

優點

● 基於群體的搜索,具備進化能力,不是窮舉搜索

● 適應度函數簡單操作

● 遺傳算法很容易做分布式計算處理

● 遺傳算法大大提高了搜索效率

● 遺傳算法基於概率變異,具有一定隨機性

● 遺傳算法可以與其他算法結合,例如可以優化機器學習的超參

缺點

● 遺傳算法受初代隨機種群影響很大,可以結合啟發式算法改進

● 遺傳算法的諸多參數,例如交叉率、變異率影響了搜索結果,目前大多依賴經驗值

● 遺傳算法利用交叉和變異產生種群,搜索速度慢

改進

編碼改進 :格雷編碼、動態編碼

選擇進化:隨機競爭選擇,特定目標挑選

交叉改進:多點交叉,單點交換

自適應:自適應遺傳算法,精英策略年齡,種群年齡

效率:並行計算,分布式計算

參考

http://www.obitko.com/tutorials/genetic-algorithms/index.php

https://en.wikipedia.org/wiki/Genetic_algorithm

編輯/雪人返回搜狐,查看更多

責任編輯:

相關焦點

  • 本座選股談量化投資—最大熵模型
    這種猜測顯然是毫無問題的,我就問牌友為什麼,牌友們意見幾乎一致:對於這副「一無所知的牌」最安全的算法就是假定它每一張牌出現的概率都是相同的(你不應該主觀假設它像千王之王中賭神手中撲克牌那樣做了手腳)。從投資的理論來看,這樣就是風險最小的做法,從信息的角度來說,這個模型保留了最大的不確定性,熵值達到了最大。
  • 量化投資的未來?
    這對量化投資或者智能投顧行業來說,無疑也將有巨大的推動作用。量化投資或智能投顧最重要的就是需要強大的硬體和計算能力,以及真實的自我學習能力。有關專家表示,擬合搜索和ResNet,正是Zero算法中的兩個核心技術。
  • 遺傳算法的發展
    • 1967年,Bagley發表了關於遺傳算法應用的論文,在其論文中首次使用「遺傳算 法( Genetic Algorithm)」一詞。 • 1987年,美國D.Lawrence總結人們長期從事遺傳算法的經驗,公開出版《遺傳 算法和模擬退火(Genetic Algorithm and Simulated Annealing)》一書,以論文 集形式用大量實例介紹遺傳算法。
  • 一文讀懂遺傳算法工作原理(附Python實現)
    結果我果然找到了一個,它叫遺傳算法。在把它應用到超市銷售問題之後,最終我的分數在排行榜上一下躍居前列。相信閱讀完本篇文章後,你也可以很自如地應用遺傳算法,而且會發現,當把它用到你自己正在處理的問題時,效果也會有很大提升。
  • 微軟亞洲研究院發布「微礦Qlib」:AI量化投資開源平臺
    【環球網科技綜合報導】12月11日報導,近日,微軟亞洲研究院正式發布了業內首個 AI 量化投資開源平臺「微礦 Qlib」。據了解,與傳統量化投資工具不同,Qlib 涵蓋了量化投資的全過程,而且從底層構造開始就專為 AI 而打造。
  • 量化投資大神西蒙斯2019最新分享:量化策略、數學、職業與交易
    該獎項授予在量化投資策略和模型方面表現出創新和卓越表現的個人或團體。西蒙斯因其在這一領域的傑出貢獻,以及他在數學方面的工作和對基礎科學研究的積極支持而入選。麻省理工Sloan管理學院院長David Schmittlein表示:「我們很高興授予西蒙斯博士這個獎項,以表彰他作為數學家、投資者和慈善家的非凡職業生涯。」
  • 什麼是遺傳算法?怎樣繪製遺傳算法流程圖
    遺傳算法是一種通過模擬自然進化過程搜索最優解的操作方法,遺傳算法有三個基本算子選擇、交叉和變異。對於遺傳算法我們也可以使用流程圖對其整個過程進行總結歸納,那要怎樣繪製遺傳算法流程圖呢?下面是分享的簡單操作方法,希望可以幫助大家。
  • 【優化】遺傳算法介紹
    [2]葛繼科,邱玉輝,吳春明,蒲國林.遺傳算法研究綜述[J].計算機應用研究,2008(10):2911-2916.[3]雷德明.多維實數編碼遺傳算法[J].控制與決策,2000(02):239-241.[4]臧文科. DNA遺傳算法的集成研究與應用[D].山東師範大學,2018.
  • 遺傳算法:讓發明自動「進化」
    這項技術已經在很多領域得到廣泛運用,比如,機器人運動領域、計算機安全領域以及製藥領域。 這項技術的核心是一種基於遺傳學的運算法則,簡稱遺傳算法。它模仿了自然選擇的原理,任何一個設計方案都可以看做是一個由無數片段構成的遺傳基因。 在這項發明中,每一個片段都是一個構成參數,可以隨著形狀不同而發生變化。
  • FOF投資的量化分析:資產配置模型
    本文介紹了資產配置中最常用的三個量化模型:均值方差模型、Black-Litterman模型和風險平價模型。我們將具體介紹三個模型的配置思想、輸入的參數、輸出的結果、優缺點、適用條件、實現的算法。  在科學、合理地預測出各類資產的收益、風險和資產間的相關性後,我們可以運用多種量化模型得出最終的資產配置比例。
  • 興業證券金工首席集體亮相 揭開量化投資神秘面紗
    本期本期《興·訪談》我們邀請了興業證券多次上榜新財富的金融工程金牌團隊成員:金融研究中心總經理許寅、金融產品研究中心總經理於明明,一起為您揭開量化投資的神秘面紗。提升員工價值 創造客戶價值徐寅,首席金融工程分析師,同濟大學應用數學碩士,8年金融工程研究經驗。曾多次榮獲外部評選獎項。
  • 幻方投資陸政哲:完全依靠人工智慧的量化投資模式
    來源:點拾投資導讀:過去幾年A股市場發展最快的就是量化投資,特別是伴隨著投資工具的豐富、投資理念的先進、以及科技技術的進步,量化投資從過去的非主流,變成了A股市場重要的參與者。那麼量化投資捕捉的短期波動是否具有科學性,他們的超額收益來源又是什麼?我們今天訪談了國內頂尖量化投資機構,幻方量化的CEO陸政哲。
  • 改進遺傳算法的支持向量機特徵選擇解決方案介紹
    特徵選擇的任務是從原始的特徵集合中去除對分類無用的冗餘特徵以及那些具有相似分類信息的重複特徵,因而可以有效降低特徵維數,縮短訓練時間,提高分類準確率。本文引用地址:http://www.eepw.com.cn/article/155439.htm  目前特徵選擇的方法主要有主成分分析法、最大熵原理、粗糙集理論等。
  • 一種改進操作算子的加速收斂遺傳算法
    摘 要:針對基本遺傳算法效率低和易早熟的缺陷,提出了一種改進操作算子的遺傳算法。該算法在種群初始化、選擇、交叉、變異等基本算子的基礎上加以改進,使算法具有更好的適應性。對3組不同函數的測試表明,改進算法較傳統的遺傳算法具有在種群很小的情況下收斂速度快穩定性高的優點,同時能有效地避免早熟現象。
  • 「量化四大天王」時代終結!上海鳴石投資挺進第一梯隊
    但是從2019年開始,量化私募在百億私募中的佔比越來越高,截至9月初,國內百億量化私募數量已經增加至7家,其中不乏有量化私募管理規模更是突飛猛進超過500億元。量化投資是從海量歷史數據中尋找能夠帶來超額收益的多種「大概率」事件,按照這些規律構建數量化模型,並嚴格按照模型進行投資。
  • 改進遺傳算法的支持向量機特徵選擇解決方案
    特徵選擇的任務是從原始的特徵集合中去除對分類無用的冗餘特徵以及那些具有相似分類信息的重複特徵,因而可以有效降低特徵維數,縮短訓練時間,提高分類準確率。  目前特徵選擇的方法主要有主成分分析法、最大熵原理、粗糙集理論等。然而由於這些方法主要依據繁複的數學理論,在計算過程中可能存在求導和函數連續性等客觀限定條件,在必要時還需要設定用來指導尋優搜索方向的搜索規則。
  • 什麼是量化投資?程序化交易怎麼做?
    量化投資什麼意思?所謂量化投資是將投資環節標準化的交易方式,主要包括選股、買入、賣出三個環節,而真正的量化投資是完全自動化交易,不需要人為參與,投資者只要監管程序是否正常運行,參數設置是否合理,指標選擇是否在既定目標範圍內。
  • | 群體遺傳專題
    在具體的應用中,如果一組數據擁有n個相互獨立的變量,我們就可以將其置於n維的歐幾裡得空間中,並應用歐幾裡得距離來量化兩組數據之間的差異。我們都知道,在二維平面上,兩點之間的距離計算如下:那麼應用到n維空間中,歐幾裡得距離的計算也同理,是坐標軸各方向差值的平方和開根號,計算如下:
  • 詳解遺傳算法
    遺傳算法是受達爾文的進化論的啟發,借鑑生物進化過程而提出的一種啟發式搜索算法。因此在介紹遺傳算法前有必要簡單的介紹生物進化知識。 遺傳算法思想   借鑑生物進化論,遺傳算法將要解決的問題模擬成一個生物進化的過程,通過複製、交叉、突變等操作產生下一代的解,並逐步淘汰掉適應度函數值低的解,增加適應度函數值高的解。這樣進化N代後就很有可能會進化出適應度函數值很高的個體。
  • 到底什麼是多因子量化投資?
    同樣,量化投資的核心是經濟/金融模型,數學也只是工具。用鐵鏟子去挖金子,能否挖到金子不確定,但鐵鏟肯定不會自動變成金子。   愛因斯坦強大之處在於其思想,數學則是其建模工具。同樣,量化投資的核心是經濟/金融模型,數學也只是工具。用鐵鏟子去挖金子,能否挖到金子不確定,但鐵鏟肯定不會自動變成金子。