伯頓·馬爾基爾在1973年出版的《漫步華爾街》一書中寫道:“一隻蒙着眼睛的猴子向報紙的財經版面投擲飛鏢,就能選出一個與專家精心挑選的投資組合表現一樣好的投資組合。” 雖然進化並沒有讓人類在選股方面變得更聰明,但事實證明,如果更直接地應用查爾斯·達爾文的理論,它依然是有效的。
遺傳算法是利用自然力量解決複雜問題的獨特方法。通過將這些方法應用於預測證券價格,交易者可以確定特定證券每個參數的最佳值,從而優化交易規則。
摘要
- 基於遺傳學和進化論規則的複雜計算機算法最近在證券交易中取得了一些成功。
- 通過應用這些方法來預測證券價格,交易者可以優化交易規則並制定新的策略。
- 個人交易者可以利用市場上的多種軟件包來發揮遺傳算法的強大功能。
什麼是遺傳算法?
遺傳算法 (GA) 是一種模擬自然進化過程的問題解決方法(或啓發式方法)。與旨在模擬大腦神經元功能的人工神經網絡(ANN) 不同,這些算法利用自然選擇的概念來確定問題的最佳解決方案。
因此,遺傳算法 (GA) 通常用作優化器,通過調整參數來最小化或最大化某些反饋指標,這些指標可以獨立使用,也可以用於構建人工神經網絡 (ANN)。(要了解更多關於 ANN 的信息,請參閱:神經網絡:利潤預測。)
在金融市場中,遺傳算法最常用於尋找交易規則中參數的最佳組合值,並且可以將其構建到用於挑選股票和識別交易的 ANN 模型中。
多項研究已證實這些方法的有效性,包括《遺傳算法:股票估值的起源》(2004 年)和《遺傳算法在股票市場數據挖掘優化中的應用》(2004 年)。(更多信息,請參閱:交易算法是如何創建的。)
遺傳算法的工作原理
遺傳算法是用向量(向量是具有方向和大小的量)在數學上創建的。每個交易規則的參數都用一個一維向量表示,這個向量在遺傳學上可以被認爲是染色體。同時,每個參數中使用的值可以被認爲是基因,然後通過自然選擇進行修改。
例如,交易規則可能涉及使用諸如移動平均線收斂散度(MACD)、指數移動平均線(EMA) 和隨機指標等參數。然後,遺傳算法會將數值輸入這些參數,以實現淨利潤最大化。隨着時間的推移,會引入一些細微的變化,而那些能夠產生良好影響的變化則會保留到下一代。
(另請參閱:算法交易基礎知識。)
然後可以執行三種類型的遺傳操作:
- 交叉代表生物學中的繁殖和交叉,即孩子會繼承其父母的某些特徵。
- 突變代表生物變異,通過引入隨機的小變化來維持從一代種羣到下一代種羣的遺傳多樣性。
- 選擇是從羣體中選擇單個基因組以供後期繁殖(重組或交叉)的階段。
這三個操作隨後用於五個步驟中:
- 初始化一個隨機種羣,其中每個染色體的長度爲 n,n 爲參數的數量。也就是說,每個參數由 n 個元素組成,並隨機設置一個參數個數。
- 選擇能夠增加理想結果(大概是淨利潤)的染色體或參數。
- 對選定的父母應用變異或交叉算子並生成後代。
- 利用選擇算子將後代與當前種羣重新組合,形成一個新的種羣。
- 重複第二至四步。
隨着時間的推移,這個過程將產生越來越有利於交易規則使用的染色體(或參數)。當滿足停止條件時,該過程將終止,停止條件可以包括運行時間、適應度、代數或其他條件。
在交易中使用遺傳算法
雖然遺傳算法主要由機構量化交易者使用,但個人交易者也可以利用市場上的幾種軟件包來駕馭遺傳算法的強大功能(無需高等數學學位)。
這些解決方案包括面向金融市場的獨立軟件包以及可以促進更多實際分析的 Microsoft Excel 附加組件。
使用這些應用程序時,交易者可以定義一組參數,然後使用遺傳算法和一組歷史數據進行優化。有些應用程序可以優化所使用的參數及其值,而有些應用程序則主要專注於優化給定參數集的值。
曲線擬合(即過度擬合),即圍繞歷史數據而非識別可重複行爲來設計交易系統,對於使用遺傳算法的交易者來說,存在潛在風險。任何使用遺傳算法的交易系統在實際使用前都應進行紙面前瞻性測試。
選擇參數是整個過程的重要組成部分,交易者應該尋找與特定證券價格變化相關的參數。例如,嘗試不同的指標,看看是否有任何指標與市場的主要轉折相關。
結論
這些算法並不是聖盃,交易者應該小心選擇正確的參數而不是曲線擬合。
(如需更多閱讀,請查看:選擇正確的算法交易軟件、程序交易的力量以及如何編寫自己的算法交易機器人。)