金融數據的數據量龐大而又復雜,人們般試圖通過長期觀察罔表而對金融數據的運行規律形成定的理解。雖然在很多時候,有不少人能夠通過自己的洞察力形成一些天才的見解,但是人腦在處理這些復雜信息時會有一些天生的缺陷,導致我們大部分時候還是處在懵懵懂懂的混沌之中。尤其是當數據曾顯現出某種高維的狀態時,人腦的天生結構使得我們的直覺隨之無能為力。我們之所以發展出很多市場指標,就是為了將市場數據簡化成幾個我們能夠方便理解的數字。
從統計學發展起來的人工智能技術在一定程度上能夠幫助人們處理這種情況。有許多人工智能算法的設計思想其實是非常簡單的,甚至我們有時還會認為些算法的思想會顯得有些愚笨。但是,這些算法的突出好處是,其在定程度上可以應對大量的,高維的數據,從而能夠幫助我們對市場形成人腦難以獲得的新的理解。
實際上,人工智能在生活中離我們并不遙遠。我們每天使用的搜索引擎是人工智能應用的一個最為典型和成功的例子,甚至是最為普通的拼音輸人法也加人了人工智能的因素,這才使得現在的拼音輸入速度比十五年以前提高了多倍。
人工智能在國外的量化投資中大約興起于上世紀九十年代。在諸多人工智能算法之中,神經網絡和遺傳算法是大家研究和應用的最早的,并且直到目前,每年仍然有大量的有關這兩種算法在交易之中應用的論又發表。繼這兩個算法之后,更多的人工智智能算法被融入到量化投資研究之中,其中比較有代表性的有隱馬氏模型,貝葉斯網以及聚類分析等等。
鑒于本文篇幅所限,我們接下來將主要介紹人工神經網絡和遺傳算法(包括遺傳編程),對于其他的各種算法,還請讀者自行參考相關書籍和論文。另外,本文此部分所提供的交易模型和交易策略都僅供說明之用,我們并不保證該模型和策略的準確性和盈利性。
1.人工神經網絡在交易算法設計中的應用
說到人工神經網絡,我個人的經驗是身邊很多人會把這種算法和人工智能等同起來,實際上,人工種經網絡僅僅是人工智能算法的一種,人工智能所包含的范圍比神經網絡要大得多。 人工神經網絡的基本組成單位是神經元,這和自然界的神經網絡有些類似。在自然界中,一個個神經元聯結起來,組成了有感知和思維能力的大腦。而在人工神經網絡之中。我們通過數學函數來模擬神經元的工作過程。
2.遺傳算法
遺傳算法實際上是一種優化算法,這一點使得其和其他的人工智能算法有很大的不同。大部分的人工智能算法都側重于分類,其核心在于如何根據一定的規則將樣本數據歸為不同的類別。這種歸糞的思想和人類日常行為有很多相似之處,因為,我們在處理各種事情的過程之中,在大部分時候都是自覺或者不自覺的先將目前情形歸類,然后再采用相應酌處理辦法的。歸類的思想在交易中也大有用武之地,因為交易在很大程度上就是判斷是漲是跌,風險大還是風險小,而這也就是歸類而已。遺傳算法則與之不同,其更像是模擬退火這種算法,其本質上是一種優化算法,而不是用于歸類的。
遺傳算法最早在二十世紀六十年代由John Holland發明,并且在隨后的十年間得以完善。遺傳算法的基本思想模擬自然界中的進化過程.使得適應“環境”的解法能夠保留下來,而不適應的解法則丟棄掉。為了模擬這種“適者生存”的自然選擇過程,遺傳算法將算法中的元素和自然界中的元素進行了類比。在遺傳算法之中,所需要解決的問題對應于自然環境,而問題的解則對應于自然界中的生物個體。值得注意的是,在自然界中,生物個體的數量不止一個,而在遺傳算法之中,問題的解也不止一個。當然,不同的生物個體適應自然環境的能力不同,遺傳算法之中,不同的解解決問題的能力也有所不同。對于上文所述的類比,我們舉一個交易場景之下的具體的例子。用遺傳算法學習交易策略時,市場數據每日的變化便是算法中的“自然環境“,對于這種“自然環境”,每種交易策略都對應一個”生物個體”,如果該交易策略適應市場,則對應于該生物個體比較適應自然環境。交易策略適合市場的程度可以用很多標準來衡量,比如夏普比率等等。在遺傳算法之中,“生物個體“的優勝劣汰是通過”基因”的復制和重組來完成的。具體的來講,遺傳算法將問題的解法分解成一個個的基因,如果該解法解決問題的能力比較好,則該解法會有較大的概率將其基因遺傳下去,而如果一個解法解決問題的能力不好,則其基因遺傳下去的可能性較小。除了基因的復制和重組之外。遺傳算法中還有模擬基因變異的功能,加八這種功能的好處是,有可能在初始的“生物個體”種群中不存在能夠完善解決所面臨問題的“基因”,而通過變異,則可能在進化過程之中產生原始基因池中沒有的新的能夠藏好的解決問題的“基因”。
3.遺傳編程
在1993年Franklin Allen和Risto Karjalainen的一篇論文之中,他們將遺傳編程引人了交易規則的尋找之中。與遺傳算法相比,遺傳編程的適用范圍更廣,并且,遺傳編程的突出好處是,其能將各種非數字性的交易規則融入到交易規則的尋找之中.本量化自動交易系統就有一部分模塊采用了遺傳編程的思想。