機器學習真的無法預測股價嗎?

很多我非常尊敬的前輩,說機器學習有一些缺點,拿來投資很危險,這些我都認同,畢竟要做出好的模型是很有挑戰的,且回測模擬跟實際投資的狀況不一樣,非常認同!

但有時候真的稍微有那麼一點激烈

另一位我很尊敬的前輩,暗指用AI投資的人:
「他們的想像力都消失了,他們只是在耗著老天爺給他們的天賦,或是青春給他們能犯錯的空間,在那邊浪費生命。」
「很多人都被工具綁架邏輯,沒有一點想像力」
「做出來的只是垃圾,臭不可聞」

嗯…

「究竟跟AI有多深的怨念?」XD
我不知道是不是哪裡有不小心得罪或冒犯,才讓他對於使用 AI 投資的人這麼嗤之以鼻,以我來說,我最早之前,是做價值投資的研究,後來加入了點技術指標,價量,到現在研究機器學習,我覺得每個人投資方法不同,有價值型投資,技術指標,短線、極短線、中長線、存股,不論是哪些方法,都有很多人賺錢,更多人賠錢,不論如何

可以長期穩定獲利的就是好工具。

這些對 AI 不屑前輩的口中,總是有著這麼一句話:

機器學習無法預測價格

這句話,以我自己的經驗來說,是舉雙手認同的,但就算是認同,我也絕對不敢斷定,或直接了當的大肆宣揚,畢竟這個世界有太多東西要學習了,不過我們就先「假設」機器學習無法預測股價好了,

難道想獲利一定要預測股價嗎?

你不需要懂機器學習,也知道:

通常撰寫策略,從來不用預測股價

只要產生的交易訊號,也就是買賣時機點就可以了,照著操作,被動的投資,而不是主動的預測,對於機器學習也是同樣的道理。

所以正確的使用機器學習的方法是:

不要用機器學習預測股價,而是用來直接產生交易訊號!

既然大家都有這樣的知識,為何還要執著於「機器學習無法預測股價」所以「機器學習沒有用」這件事情上呢?就像是你測量羽毛跟保齡球落下,時間不一樣,難道就說牛頓第二運動定律是錯的了嗎?比較有可能是實驗做錯了啦~

為何大家都說機器學習無法預測股價,先簡單的說明一下

最為人所知的機器學習障礙 – 預測延遲

簡單來說,就是下圖中,藍色的為股價,而紅色的是機器學習預測的數值,
可以看到紅色永遠比藍色線慢半拍,晚一步才轉折雖然藍色跟紅色非常接近,但離「預測」其實差得很遠,回測後就會發現,是不能拿來交易的,


這個就是大家所說,機器學習的預測延遲,說真的,這類有小瑕疵的文章或論文是真的滿多的,例如 這篇,就連我們的部落格,也有這類的文章

你只要搜尋「machine learning predict stock price」,就可以找到滿坑滿谷的文章,都有這個缺點。

之所以會有這樣的問題,不難理解,因為股價並不是stationary time series,所以機器學習直接預測股價很容易失真導致最後落入 overfitting 的窘境,且預測結果常常會有 bias,

所以

我自己寫的文章,沒有任何一篇是教大家預測股價的

我想提供大家真的能夠獲利的程式碼,用來展示機器學習真的可以用來投資,我不是蹭AI的熱潮,東拼西湊,只求程式可以跑,而是盡力做出一個希望能夠獲利的模型,又讓大家可以學到新的演算法,並把這個模型分享給大家,然而AI不是神,沒有一個策略保證一定賺錢,但我至少做到問心無愧,目前績效看起來也還OK,

機器學習策略 – 我認為有效的方法

接下來舉一個,我認為有用的方法,首先利用:
Integrating a Piecewise Linear Representation Method and a Neural Network Model for Stock Trading Points Prediction
這篇 paper 當中的方式產生交易訊號,並且讓機器學習模型模仿,找出轉折點,以下是簡略的數據:

  • 商品:台股加權指數,取每15分鐘的收盤價
  • 製作特徵:利用各種技術指標當作features
  • 預測訊號:利用上述的 paper 產生交易訊號
  • 利用2015年以前的資料產生模型,

用一個最普通的神經網路,就可以有不錯的效果,以下是2019年5月的範例圖,
其中

  • 紅色為股價
  • 藍色為多方轉折的發生機率
  • 紫色為空方轉折的發生機率(負值)

可以看出來,當藍色飆高時,通常是底部的多方轉折,而紫色飆高時,則是相反,是頭部的空方轉折


2019年五月


2019年六月
看不出有延遲,幾乎都是直接實時反應,看起來還抓的算滿OK的,可以用來逆勢操作,雖然看似有用,但

機器學習不適用於所有人,因為很難很複雜

付出與收穫可能不成正比

假如你不喜歡折磨自己,其實簡單的策略也可以賺錢的,所以說你不一定要用機器學習來投資,

然而每個人各有喜好,

以我而言,我喜歡追求和分享新的科技,並且幫助大家學習新知識之餘,幸運的話還可以賺點錢,然而走在科技的前沿,特立獨行,本來就是會有很多的支持和反對
我不敢說這條路走的正確,但我們能走多遠是多遠,這一切紛擾,只能用對帳單來證明了(XDD努力生產中)

雖然我們早在一年前開始就把模擬結果每天都放上網,但看來對帳單還是必須的呀!

FinLab - 韓承佑

嗨大家好,我是韓承佑,FinLab創辦人,畢業於巴黎薩克雷大學資工博士,目前擔任臺灣量化交易協會 學術顧問、台北商業大學 創新育成中心 創業技術顧問與上市科技公司 量化交易顧問。當初,我喜歡寫程式、無意間因為軟體比賽接觸Fintech,從此開始了財經跟程式的學習之路。我們成立 FinLab 量化投資部落格,用自己研發的軟體,對台灣股市做大量快速的實驗。希望可以在量化投資的路上,當大家的「武器製造商」!