當前位置:
首頁 > 最新 > 機器學習在股票交易中難點分析

機器學習在股票交易中難點分析

數據分布

小樣本數據

無法量化的數據

數據複雜性

馬爾可否決策過程的部分可觀性

與推薦系統的相似之處

最後的想法

金融市場一直是最早使用機器學習的領域之一。自 20 世紀 80 年代以來,人們一直在使用機器學習(或者說是人工智慧技術)來發現市場中的一些變化模式,特別是股票,期貨和外匯市場。儘管機器學習在過去預測市場趨勢結果方面取得了巨大成功,但是最近發展起來的深度學習技術並沒有很顯著的有助於金融市場的預測。儘管深度學習和其他高大上的機器學習技術在其他別的領域取得了具體的成功,比如 Alexa,Google Assistant 和 Google Photos 等等,但是在股票市場方面並沒有取得太多的進展。

我將機器學習應用於現實世界的股票金融預測問題,我從網上能查詢到很多的論文,都聲稱利用深度學習模型在股票預測,風險評估或者交易策略中取得了巨大的成功,但我對這些論文結果持懷疑太堵。其中一些論文模型確實具有很好的預測精度,但是在正真的實盤交易中,你會發現它們的精度是如此之低,而且模型之間的差異程度非常低。

在股票交易策略中,我們還有一種是輿情交易系統,就是緊跟著一些政府政策,或者是股民的一些市場情緒來進行交易。深度學習對自然語言處理技術有較大的改進,這個有助於提高依賴文本分析的量化策略的有效性,也就是我們剛剛所說的輿情系統。這個可能是深度學習應用於股票市場的一個難得的好地方。但是即使是這樣,我們的文本輿情預測還是非常不準確的。其中一個原因是,我們還無法很準確的判斷股民的言論是一個真實言論還是一個灌水行為,或者這是一群機構操縱的言論,這些我們都不知道。但這些前提才是輿情系統的關鍵之處。

有很多問題導致了金融股票市場本質上的不可預測性的事實,在這裡我想著重強調一些使其變得困難的主要原因。


正確理解數據的分布情況是至關重要的問題,我們在看機器學習論文(非股票預測)的時候作者都會來解釋或者分析要用到的數據的具體分布情況,而我們做具體項目的時候也會第一步去做數據的預處理工作,其中一個很重要的關鍵點就是數據的分布情況。但是幾乎所有跟股票市場相關的研究論文都沒有涉及到這一點。

我們可以將金融數據集與圖像分類數據集進行對比,以便很好的理解這一點。我們選擇的圖像分類數據集是 CIFAR-10 數據集。它由 10 個類別組成。每個類別包含的訓練集中有 5000 個圖像樣本,每個類別的測試集中有包含了 1000 個圖像樣本。

在圖像分類問題中,我們可以預測類別狗,這個類別在訓練集中的像素權重分布和在測試集中的像素權重分布是非常類似的。換句話說,狗的圖像在訓練集中是一隻狗,在測試集中也是一隻狗。這個說法可能有點愚蠢,大家都知道,但是這一點真的非常重要,強調一下,狗永遠是狗,不管是在訓練集還是測試集。

但是這個顯而易見的屬性並不適用於大多數金融數據集,比如股票,期貨和外匯市場。我們在實盤看到的數據內容可能與所有的歷史數據分布是完全不同的。以股票市場為例,在歷史上當數據滿足這個分布時,股票在未來一周上漲的概率達到90%。但是當我們在正真的實盤中採用這個數據分布的時候,你會發現的概率可能只有 10%,甚至是虧損。這就是概率的完全不可預測性。事實上,當將機器學習應用於現實世界的問題時,這是一個非常常見的問題,即線上線下不匹配問題。我們除了要確保測試集和訓練集具有相似的分布外,還必須確保訓練好的模型僅僅在未來數據符合訓練分布時才能用於生產的真實環境。

儘管大多數研究人員都會非常注意不將數據偏差性帶入他們的數據分析研究中,但是幾乎每個人都會將偏差性帶入數據研究中,而且還會有意無意的忽略數據分布變化問題。

前進優化方法(Walk Forward Optimization) 是解決這個問題的一個非常好的方法。這個優化方法在實踐中是非常知名的,但研究人員往往在論文中不會提到這一點。然而,即使是前進優化方法也並不能很好的解決我們最基礎的數據分布問題 —— 雖然它會對未來數據分布做出一點假設。這就是為什麼前進優化方法並不能真正讓你達到高準確度,但是它非常實用。


我們所使用的機器學習或者是深度學習,都是去解決一個大數據問題。但是在金融數據中,我們可能面對的都是一個小樣本數據。舉個例子,比如我們要分析失業率和非農就業等勞動力統計數據之間的關係,但是這個數據他們只有每個月發布一次,我們根本就沒有足夠的歷史數據來進行分析,可能所有的數據加起來也就幾百條數據。還有一個更加極端的例子,那就是 08 年的金融危機,從歷史上我們只有這一個數據點用來學習。

這就使得應用機器學習自動化學習變得非常苦難。許多研究者最終採取的是一種非常中庸的方法,就是將不太頻繁的統計數據與相對頻繁的數據結合起來進行使用。例如,你可以將非農工資單與每日股票收益結合起來,並最終將此組合數據集輸入到模型中。但是,通常我們需要對數據進行很多次的檢查,以此來消除對數據質量的擔心。


在金融領域中,有一個很嚴重的問題,就是我們無法將一些歷史上的財務數據進行量化處理,這和如何去表達人類歷史的進程是很像的。比如對於一直股票數據而言,我們現在最常用的表示方法就是 K 線圖,其中包含了四個價格數據:最高價,最低價,開盤價,收盤價。但是除了這四個基本價格之後,所有的數據就需要我們研究人員發揮巨大的想像力,所有也就出現了很多的技術指標來衡量我們的股票市場。所以,如何將我們的股票數據轉化為一個可度量的數據是應用機器學習演算法的重點。我們還是利用上面的圖像分類數據集來進行說明,比如我們對狗這個類別進行識別,研究員 A 模型的輸入是一張狗的照片,研究員 B 模型的輸入也是一張狗的照片,研究員 C 模型的輸入還是一張狗的照片,但是如果我們處理的是對股票未來漲跌分類,那麼不同的研究研究就有不同的量化指標。研究員 A 模型的輸入可能是股票價格,研究員 B 模型的輸入可能是股票的成交量,研究員 C 模型的輸入可能是市場情緒指標。每個人都有對問題的自己量化方法。再來舉個金融例子,比如我們對 20 世紀 30 年代大蕭條期間發生的使其已經有了很全面的了解,但是我們也非常難將這個過程轉化為機器可以識別的量化指標,從而來進行預測學習。


完整的股票預測問題是非常複雜的,因為各種因素會對最終價格有不同規模的影響:

高頻交易和演算法交易都是在非常短的時間內進行的(時間間隔一般都是小於 1 天),所有他們是影響價格變動的主要因素;

開盤價和收盤價都有自己的計算模式 —— 無論是在股票還是在期貨;

公司新聞和傳聞是股票交易的一個非常重要的驅動力。具體的公司新聞會隨時發生,但是它不會主動來通知你。所以,如果你能實時關注這些新聞,甚至是提前知道這些新聞,那麼這對你的股票交易是非常有利的一個數據源。比如,這個金融網站會向我們發布一些公司數據。

在多年的價格變動中,發現一些投資經濟周期是非常重要的。比如,醫藥股的周期波動。

多專家模型(Mixture of experts)可以用來組合來自不同尺度(或者不同數據源)的模型 —— 但是,如何去應用多專家模型也是一個難題。請注意,多專家模型是將相同規模的模型進行組合分析的常見技術,幾乎所有的定量資產管理公司都在採用這種技術。


我喜歡將價格的時間序列看做部分可觀察的馬爾科夫決策過程(POMDP) 。在任何時候都沒有人可以非常完整的將價格時間序列進行完整畫出來。因為你永遠不知道明天會發生什麼 —— 但是,你仍然需要對你的交易做出決定。在你做決定的時候,你擁有的數據量非常的少,與此同時,數據的分布情況也在不斷的進行變化。

我試圖將強化學習方法應用於金融數據分析。儘管我極其簡化了問題(即簡化狀態和動作空間),但模型還是無法學到任何有用的東西。我花了幾個星期來調試它為什麼不起作用,原來強化學習需要做夠多的可預測性。


機器學習適用於非常多元化的領域。其中,我發現推薦系統跟金融數據預測問題是非常相近的一個問題。但與推薦系統進行比較分析還是可以發現很多潛在的共同困難問題:

兩者的預測準確性都相對較低。我們來看一些 Netflix 的視頻推薦例子。Netflix 在主頁上顯示至少 20 個電影選項。因此,對於每個電影選項,用戶選擇觀看的點擊平均可能性小於 1/20 。為什麼說是小於,因為有可能用戶對你推薦的電影都不感興趣,所以都不點擊觀看。同樣,我們在金融時間序列中的大多數二元分類問題的精確度都在 50% 左右徘徊;

數據中都有很多噪音。在這兩種情況下,噪音與信號的比率都非常高。金融時間序列中的噪音比率非常高,因為許多不同的因素都會影響價格。推薦系統的數據本身就會包含噪音,因為用戶的瀏覽記錄往往就是非常嘈雜的。比如,用戶可以訪問特定的淘寶產品頁面,但是絕對不打算購買這個頁面的任何商品,這種用戶行為是會對推薦數據增加很多的噪音。

兩個數據集都有非常明顯的季節性。亞馬遜在假日期間的購買模式(即產品銷售分成)肯定與同年的其它時間不同。這種方式同樣適用於其它推薦系統問題:比如電影推薦的 YouTube ,肯定一年中的不同季節的推薦方式也是不同的。金融股票數據也具有季節性,最常見的季節性就是經濟周期。

兩者都必須處理看不見的 「數據」。亞馬遜不斷添加新的分類索引,YouTube 不斷的向其列表中添加更多標題,使得新視頻每分鐘都能上傳到正確的標籤。推薦系統必須解決這個問題,如何推薦在訓練集中沒有的數據類別。正如我們前面所提到的,金融股票數據,在實盤操作的時候,可以包含與訓練模型完全不同的數據分布類型。

兩者必須結合不同類型的數據進行模型訓練。YouTube 有一些離散數據點,比如最近 N 個觀看的視頻列表,並且還具有最後一個視頻的觀看時間點等等離散數據點。類似的,金融數據集可以包含較高的頻率價格點以及較低頻率的價格點。


我覺得本文中最對我有價值的是:金融時間序列是一個部分可知的博弈問題,即使對人類來說也非常苦難,我們不應該期望機器學習和演算法來突然超越人類的能力,但是在一定程度上,可以減輕人類的工作強度。

這些演算法纏長的是能夠從數據中發現一些隱藏的模式,並且對它很好的描述。但是這是一把雙刃劍,因為這完全是一個黑盒模式,有時這個方式會非常有效,但是有時這個方法可能會非常的差,而且你還不知道錯在哪。你唯一能說的一句話就是:這個模型不 work 了。但這對實盤操作時非常危險的一件事。在傳統的股票交易中,簡單的演算法模式已經被全部使用了。想通過無監督學習來識別金融時間序列模式是下一階段的路,但我覺得這是一個難以實現的夢想。

作者:chen_h

CoderPai 是一個專註於人工智慧在量化交易應用的演算法實戰平台,主要關注人工智慧在量化交易上面的應用。如果你對人工智慧感興趣,請快快關注 「CoderPai」 微信號(coderpai)吧。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

寶馬舉辦跨領域暑期活動 分享、交流情緒感知、人工智慧及機器學習等技術

TAG:機器學習 |