在「A Random Walk Down Wall Street」(1973)中,Burton Malkiel表示,「在報紙的財經頁面上投擲飛鏢的蒙著眼睛的猴子可以選擇一個與專家精心挑選的投資組合一樣好的投資組合。」 雖然進化可能使人在挑選股票方面不再聰明,但查爾斯達爾文的理論在更直接地應用時證明是非常有效的。
什麼是遺傳演算法?
遺傳演算法(GA)是模仿自然進化過程的解決問題的方法(或啟發式方法)。與人工神經網路(ANN)不同,人工神經網路設計為像大腦中的神經元一樣運作,這些演算法利用自然選擇的概念來確定問題的最佳解決方案。因此,GA通常用作優化器,其調整參數以最小化或最大化一些反饋測量,然後可以獨立地或在ANN的構造中使用。
在金融市場中,遺傳演算法最常用於在交易規則中找到參數的最佳組合值,並且它們可以構建到用於挑選股票和識別交易的ANN模型中。一些研究已經證明了這些方法的有效性,包括「 遺傳演算法:股票評估的起源 」(2004)和「 遺傳演算法在股市數據挖掘優化中的應用 」(2004)。
什麼是遺傳演算法?
遺傳演算法的工作原理
使用向量在數學上創建遺傳演算法,向量是具有方向和幅度的量。每個交易規則的參數用一維向量表示,該向量可以被認為是遺傳方面的染色體。同時,每個參數中使用的值可以被認為是基因,然後使用自然選擇對其進行修飾。
例如,交易規則可能涉及使用諸如移動平均會聚發散 (MACD), 指數移動平均 (EMA)和隨機指標之類的參數 。然後遺傳演算法將值輸入這些參數,目標是最大化凈利潤。隨著時間的推移,引入了微小的變化,並為下一代保留了產生理想影響的變化。
然後可以執行三種類型的遺傳操作:
- 交叉表示在生物學中看到的繁殖和交叉,其中兒童具有其父母的某些特徵。
- 突變代表生物突變,並通過引入隨機的小變化用於維持從一代群體到下一群體的遺傳多樣性。
- 選擇是從群體中選擇個體基因組以供稍後繁殖(重組或交叉)的階段。
然後將這三個操作用於五個步驟:
- 初始化隨機群體,其中每個染色體是n-長度,n是參數的數量。也就是說,建立隨機數量的參數,每個參數具有n個元素。
- 選擇增加理想結果的染色體或參數(可能是凈利潤)。
- 將突變或交叉運算符應用於選定的父項並生成後代。
- 通過選擇運算元重組後代和當前種群以形成新的種群。
- 重複步驟2到4。
隨著時間的推移,這個過程將導致越來越有利的染色體(或參數)用於交易規則。當滿足停止標準時,該過程終止,該標準可包括運行時間,適合度,代數或其他標準。
在交易中使用遺傳演算法
雖然遺傳演算法主要由機構定量交易者使用,但個體交易者可以利用遺傳演算法的力量 – 沒有高等數學學位 – 使用市場上的幾種軟體包。這些解決方案包括面向金融市場的獨立軟體包,以及可以促進更多實際操作分析的Microsoft Excel附加軟體。
使用這些應用程序時,交易者可以定義一組參數,然後使用遺傳演算法和一組歷史數據進行優化。一些應用程序可以優化使用哪些參數及其值,而其他應用程序主要專註於簡單地優化給定參數集的值。
曲線擬合(過度擬合),或圍繞歷史數據設計交易系統而不是識別可重複行為,代表了使用遺傳演算法的交易者的潛在風險。任何使用GA的交易系統都應在實際使用前在紙面上進行前瞻性測試。
選擇參數是該過程的重要部分,交易者應該尋找與給定證券價格變化相關的參數。例如,嘗試不同的指標,看看是否有任何與主要市場轉向相關的指標。
遺傳演算法是利用自然力量解決複雜問題的獨特方法。通過應用這些方法來預測證券價格,交易者可以通過確定給定證券的每個參數使用的最佳值來優化交易規則。然而,這些演算法並不是聖杯,交易者應該謹慎選擇正確的參數而不是曲線擬合。