2021年6月20日 星期日

因子分析 -- 找出決定市場報酬分配的反向工程

  1997年,西洋棋大師Garry Kasparov在與電腦的六場比賽對決中落敗,此後人類已難以在西洋棋領域中勝過電子運算;2016年,alphago在與李世乭的對決中以4:1的結果勝出,正式在圍棋這個長久以來被認為電腦絕不可能勝過人類的領域上插旗



  最初,這些程式都是以人類棋士曾經走出的棋步為主要的資料庫做學習,因此在面對完全沒看過的局面時,就只能兩手一攤,以亂數決定如何下子,而這樣的弱點也被人類對手所掌握,利用非常態走法設下陷阱,以誘導電腦犯錯;爾後工程師們修改了程式的學習方式以及運算目標,讓程式得以在面對陌生局面時以自己的思考來下子,甚至可以自己跟自己對弈,創造出新的資料庫

  然而,由於這已經不是人類的思考足以企及的境界,因此當程式走出「怪異」的棋步時,我們很難知道這究竟是程式編碼錯誤所導致的,抑或是程式想出了人類很難看懂的東西

  西洋棋歷史有名的「神之一手」,當屬1956年僅13歲的神童Bobby Fischer在對西洋棋大師Donald Byrne時所走出來的,他當時放棄了皇后選擇讓主教前進,這樣的走法大大違反了西洋棋的金科玉律,可以說根本不會有西洋棋大師贊同Fischer這樣的走法;可是,如今的西洋棋程式在面對同樣的局面時,幾乎都會選擇Fischer當初的棋步,甚至除此之外的走法都會被程式認為是嚴重的錯誤,這告訴我們,在封閉式的棋盤上,電腦有能力找出人類很難想到的絕妙一著,只是,在開放式的金融市場中,電腦運算仍然能夠行得通嗎?

  我認為只要以適當的方式訓練電子程式,它一定可以表現得比人類更好

  當然,在開放式的環境中,意味著我們會遇到更多的「例外」,這是電腦程式最不擅長處理的部分,但這不是電腦的錯,而是我們沒有告訴電腦應該如何處理這些局面,才會讓程式只能像無頭蒼蠅般地亂數下子,假如我們明確定義了每一個可能出現的狀況,那麼電腦的表現絕對不會在人類之下,這也是為什麼我認為量化交易可行,並且比主觀交易要更容易被複製的原因

  而因子分析,就是利用電腦運算找出市場優勢法則的一種手段,我們將市場曾經發生過的所有走勢都攤開來,嘗試用各種法則將其分邊,看看我們是否能找到某種明確的規則使結果涇渭分明;這樣的做法也被稱為「資料探勘(data mining)」,只要測試的次數跟種類夠多,我們必定會找出一些表面上有用,但禁不起時間考驗的法則;相對的,我們或許也能找到在大多數時期都可以運作良好的市場原則,並且以此作為交易系統的基石

  但最重要的是,因子分析至少可以告訴我們什麼概念行不通,許多人所宣稱的某些神奇法則,事實上連最基本的歷史測試都過不了

  當然,要動手挖掘之前,得先好好檢視我們眼前的這塊地究竟長什麼樣子,我們會將台股近三十年的資料分成三組:1990~1999;2000~2009;2010~2020,並且分別檢視在這三段期間所有個股的5日報酬率,10日報酬率,20日報酬率,60日報酬率,120日報酬率跟240日報酬率的分布狀況

  全部都看過一遍,知道要比較的基準為何之後,接著才能加入不同的因子,重新再檢視一次報酬分布是否發生了改變,並以此判斷該因子的品質如何

  曾有人說過,打造模型的過程,會讓我們更加了解市場;就我這段時間的個人經驗來說,此話確實不假,希望接下來所分享的內容,能讓我們對市場都更加熟悉

  

沒有留言:

張貼留言