謀三千億收購 倫交所速拒絕用fb先知程式睇港交所後市

謀三千億收購 倫交所速拒絕
用fb先知程式睇港交所後市

【數碼金魚缸】港交所(388)提出以3,000億元收購倫敦交易所,無奈神女有心,人家卻極速回絕。港交所年來可謂新聞多多,早前期貨死機、廉署查上市綠色通道事件,又拓展虛擬銀行業務。雖然今次鴻圖大計遇阻,但歷年股價表現不俗,有不少捧場客,今次我便嘗試用Python的一些統計套件,用以預測港交所股價。

過去幾次在這欄介紹的,都是人工智能在金融的應用,如直接預測股價,或分析年報及討論區用語,來捕捉公司動向或市場情緒,以改善投資決定。不過講到預測,統計學其實早發展一套工具,其應用亦更為成熟,兼且不用搜集大數據來訓練,更適於一般商業應用。

程式將預測化繁為簡

例如facebook(fb)前年底推出的開源免費套件—先知(Prophet),便是改良這種技術,讓預測諸如營業額、市場需求、股價走勢、宏觀數據等化繁為簡;這類預測套件針對的都是所謂時間序列(time series),亦即按時間變動的數據,因為上一秒鐘、上日或上月的股價、利率、定單,都可能影響下一期的表現,如何生成模型去捕捉序列內藏的動態,便是一門大學問。

首先,當然是到yahoo finance下載港交所的股價資料,港交所2000年6月27日上市,故此有達19年的數據可用。按一般的時間序列,通常有三種型態,一是主趨勢,如港交所由首日上市8元多升到現在200多元,自然不是隨機漫步,而是有長期趨勢在當中;其次是季節性或周期性因素,這點在零售市道或宏觀經濟層面會較為明顯;最後則是「噪音」,即是不容易解釋的短期波動,這些噪音最難預測,故大部份預測原理,都是希望盡量提煉出噪音以外的趨勢。

針對時間序列的模型有相當多,但以SARIMAX較為全面,不但能捕捉數據在不同時段的相關性,而且還計入季節性因素,以及與外在因素的互動。今次我先用的是Python的statsmodels套件,再把結果與fb的先知套件作比較。

輸入模型前,數據例必要整理一番,由於港交所的交易日並不整齊,故技術上較易處理的是把股價按星期或按月作平均,因為一定不會有一整個星期或一整個月沒有開市;雖然要逐個星期計算平均價好像頗複雜(記住,不一定是五天的),但Python程式只需一句「stock Price.resample('W').mean()」便KO掉,這是運用程式較試算表優勝的地方。

處理好數據後,便要抽取部份用於訓練模型,部份用於驗證模型的準確度;我把2001年至去年的股價都用於訓練,只留下今年數據用於驗證。由於模型要決定不少參數,如納入多少個星期前的股價作預測,又要考慮其平穩性的問題,這優化參數的工作,當然也是要程式處理;為加快搜尋速度,我只要求程式考慮前一期的股價資料,但即使這樣,電腦也要搜尋64個組合,而考慮越遠期的數據,計算工作便會幾何級數上升。

以主趨勢季節性因素預測

結果,程式選擇的是一個(1,1,1)的組合,亦即僅使用上一周的股價、用股價變化取代股價水平作預測,及使用一項移動平均項數。假若使用這個模型作預測,表現如何?由「圖一」可見,我叫程式由去年10月開始作預測,亦即用前一個星期的股價來預測下一星期的表現;由於只預測一星期,偏差很少,與實際股價走勢頗為脗合。但到了12月底,模型再無真實數據參考,而是要以上一星期的預測作為基礎,去預測下一星期,故此模型只能基於評估的主趨勢及季節性因素作預測,其波動性遠較真實股價波幅為少,但大致真實股價仍然包含在其95%置信區(confidence level)內(置信區越來越闊,代表模型對遠期預測的不確定性較大),而模型對9月首周港交所的平均價預測為227元,似乎並非相差太遠。

以上都只是基於港交所昔日的股價去作預測,能否提供一些外來訊息,看看能否提升準確度,例如恒指成交量,會否是解釋股價的指標之一;事關交投較高,港股越旺場,港交所的盈利前景會更理想,從而反映在其股價表現上。由於數據所限,我改用月度數據來輸入模型,結果預測上月底的股價為234元,與真實約240元又靠近了一點。

成交較上市數目重要

那麼新股上市宗數,又會否增加解釋能力呢?照計越多公司上市,港交所由上市費獲取的收入亦會越高,並反映在盈利上。我從David Webb的網站擷取了歷年按月的新上市公司數目(見另文),輸入模型後,得出其截至上月底的預測為228元,似乎成交較上市數目有較好的預測能力。

「圖二」是我把股價按周數據,輸入到fb的「先知」套件中進行預測,這套件聲稱對一年以上的數據效力較佳,而且自動化強,可以不用設置太多參數;結果得出9月首周的平均價為248元,與真實股價244元似乎最接近呢。當然,使用這類模型,不能單單以一兩個月的預測數據,來斷定模型的好壞,而是要經過一大堆統計學的準則及測試;有興趣的讀者不妨在網上找多些資料研究。如欲索取原始碼,可以往常一樣電郵在下。

尼奧

尼奧電郵:mailto:[email protected]
facebook「先知」套件專頁: https://research.fb.com/prophet-forecasting-at-scale/