用「機器學習」做「股票預測」能做到什麼程度?
對數據沒有sense的話,rubbish in rubbish out
這個不會有人告訴你的:預測的不好的,不好意思說;預測的好的,又不想說!
以前thu有個學生團隊做了一個公眾號叫「機器預言」,自己寫了一個ML的程序,在中國市場做股票預測。
程序預測10天的return,並推薦漲幅最大和跌幅最大的十個股票。
這是運行的一百多天里的準確率。(準確率的演算法是,統計發布10天後推薦的股票是否真的跑贏大盤或跑輸大盤)可以看出前期準確率還挺高,但後來越來越不行了。
這個公眾號也發布了這個alpha的收益情況,看著挺好的吧。在不考慮交易成本的情況下,一百多天里是能賺錢的,而且沒有大的drawdown。摺合年化收益120%左右。
根據公眾號公布的數據,在總的收益中,多頭頭寸年化收益率-0.37%,空頭頭寸年化收益率121.59%。也就是說,long不賺錢,short賺錢。
不過,現實還是很無情的,中國股市沒法short。在這個裡面,程序學到東西了么?學到了,但之前這個版本學到的很可能是市場的bias。
從今年四月起,這個公眾號沒有繼續更新。我覺得這是比較遺憾的事情,不知道這個團隊有沒有繼續開展這方面的工作,期待看到一個「升級換代」的機器。太沒有誠意的問題,一點補充說明都沒有。。那就簡單的回答一下,能做到月穩定盈利
可能唯一好做的是不同指標做 batching 吧;因為選指標這一步把數據 sense 包進去了,而且不浪的話,batching 總比單一指標好。
至少有些做天氣預報的考慮將不同方法的預報結果 batching在經歷過各種方法的迷惑之後,estarts通過兩個維度進行了實際回測驗證:
1、以收盤價為標準,看看跌漲判斷的準確性
2、以量價方式,給出交易信號(矩形濾波,不同的偏差給出不同的交易量),自動回測出該方法最好的年化收益,然後和其他方法進行比較
以大盤指數為標準,以2014年初到2016年12月為時間範圍(經歷了牛熊市),對以下三種檢測方法進行比較:
1、追漲買跌法。即前一天要漲了,後一天就買;前一天跌了,後一天就賣。買賣數量根據價差自動找出最好的
2、MACD方法。參數(快線6天,慢線9天,DIFF線6天),自動優化計算。
3、機器學習。使用SVM支持向量機,樣本外回測,樣本最佳數目自動計算。
回測結果:
1、跌漲判斷準確率。追漲買跌法--55%,MACD法--52%,機器學習SVM--61%。
2、再從年化收益衡量,機器學習SVM排第一,追漲買跌法排第二,MACD法墊底。
詳細http://www.estarts.cn/bit/list/?p=MTM=
用隱馬爾科夫鏈模型(Hidden Markov Model, HMM)對上證指數預測建模,取得了較為理想的效果
分享一個我們團隊做的案例:
tecdat:用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應用
原文地址:
拓端數據科技 / Welcome to tecdat
「了解不同的股市狀況,改變交易策略,對股市收益有很大的影響。 弄清楚何時開始或何時止損,調整風險和資金管理技巧,都取決於股市的當前狀況。
▼
有些策略在波瀾不驚的股市中表現良好,而有些策略可能適合強勁增長或長期下跌的情況。
在本文中,我們將通過使用一類強大的機器學習演算法「隱馬爾科夫模型」(HMM)來探索如何識別不同的股市狀況。
▍隱馬爾科夫模型
馬爾科夫模型是一個概率過程,查看當前狀態來預測下一個狀態。 一個簡單的例子就是看天氣。
假設我們有三種天氣情況:下雨、多雲、陽光明媚。 如果今天下雨,馬爾科夫模型就會尋找每種不同天氣的概率。 例如,明天可能會持續下雨的可能性較高,變得多雲的可能性略低,而會變得晴朗的幾率很小。
▍構建模型
基於以上背景, 然後我們可以用來找到不同的股市狀況優化我們的交易策略。 我們使用2004年至今的上證指數(000001.ss)來構建模型。
首先,我們得到上證指數的收盤價數據,計算得到收益率數據,並建立HMM模型比較模型的預測結果。
繪製上證指數的收盤價和收益率數據,我們看到2004年和2017年期間股市的波動情況。
對收益率擬合了三狀態隱馬爾可夫模型之後, 繪製每個狀態的後驗概率:
2007 – 2009年間,由於次貸危機,股市出現了驚人的波動,迅速改變了不同狀態的後驗概率,可以看到2008年前後狀態2和狀態3的概率出現了很大的變化。
股市在2010年後變得平靜,因此狀態2和狀態3的概率處於平衡狀態。
基於以上判斷,我們將三種不同的狀態進行定義。狀態1認為是震蕩市場,狀態2認為是下跌市場,狀態3認為是上漲市場。然後將不同狀態的預測結果返回到真實的上證指數來觀察是否符合客觀邏輯。
通過真實數據擬合,我們看到狀態1(紫色)震蕩市場,狀態2(綠色)下跌市場,狀態3(紅色)上漲市場符合實際的情況。
通過隱馬爾科夫模型,可以深入了解不斷變化的股市狀況。 從而提高交易策略的性能。就從我們的簡單探索來看,這個模型應當是值得花一些時間去打磨的。可改進的地方非常多。例如可以引入多因子分析,建立多元模型等。
【拓端數據 http://tecdat.cn】第三方數據服務提供商,提供全面的統計分析與數據挖掘諮詢服務,為客戶定製個性化的數據解決方案與行業報告等。
帥的小夥伴都關注了拓端數據團隊^..^~
QQ交流群:186388004
微信公眾號:拓端數據
微信客服號:lico_9e
我認為有個混淆點需要更多闡述,你的目的是預測股票還是交易股票。
我認為比較好的演算法模型對於股價交易:
用Q learning 做交易與否的學習,你目的是最大化收益。用lstm 或者hmm ,sentiment ,index prediction 等 做 features。這樣你的模型並不是基於單一演算法,這些features的權重可以用q learning 來學習。這樣建模的好處在於你以後有新演算法也可以加入到這個feature set 裡面。 類似於DQN1 回測牛上天,實盤熊如狗
2 同樣輸出居然是完全不一樣的輸入,同樣的輸入發現會得到不一樣的輸出,
驚乎:未來股價居然跟歷史 沒!關!系!
股市、天氣預報、地震等屬於「複雜非線性」問題。為了解決這個問題衍生出來一門新學科:混沌學。混沌學研究的就是上面提到的「複雜非線性」問題。這個系統對於初始值非常敏感,初始值細微的變化也會產生巨大的影響(蝴蝶效應:差之毫厘、失之千里)。這個學科發展很緩慢,也就是說現在還沒有靠譜的解決方法。機器學習試圖預測股票價格屬於盲人摸象,效果可想而知。機器學習不是神,現在機器學習應用效果最好的幾乎都屬於監督學習。解決的無非就是分類和回歸這兩種問題。水平有限,盡我所能來回答這個問題。如有不當的地方,歡迎指正。
我嘗試過,效果見圖
可以,首先排除國企
如果牛市,沒啥問題,問題來了,連續陰跌的時候,機器怎麼識別啊,跌跌跌跌跌,穩定的下跌,和諧的下跌,或者空擋裡面塞點上漲,咋控,就只能尬笑了
以前全華爾街到處都是,次貸危機爆發的時候這幫人基本都破產了。
對了,當時這個叫擬合、時間序列分析……
總之他們都破產了,其中大多數現在又去搞機器學習了,導師的說法就是原來那些工作的進一步探索,我估計當下次黑天鵝的時候他們還是會破產的。
先問下自己回歸能預測到什麼程度?
常數預測也算機器學習吧。股票預測裡面常數最重要也最好用。線性模型過於複雜,很多人用不好。
預測的話準確率不好說,但用機器學習進行聚類效果還可以。參見https://zhuanlan.zhihu.com/p/30418935
華爾街很早以前就有了,可以參考央視紀錄片《華爾街》
運用演算法來進行股票預測還是有一定可能性的,因為不可能總是存在突變型的因素對股價造成不規律性影響。如果挖掘出近一段時間內單只股票的波動規律,還是能夠做出相對準確的預測的。國外目前都是使用各種演算法來做股票預測,不會單靠分析和運氣,現在較流行的是神經網路技術。但是神經網路的預測分為上漲和下降兩個趨勢,如果趨勢預測錯誤那準確率就不高了。國內目前有一家股神在線用的是基因演算法,不過是剛建立的知名度不高,我試用了一下準確率還可以,但是具體操作還是有待實踐。
我最近也在思考這個東西,機器學習是基於統計數據的,但是問題在於統計數據的產生可能就受到政策的影響。你如何把收集到的新聞等也納入數據計算之中,或許才有可能吧。
推薦閱讀:
※人工智慧是不是只是一場鬧劇?
※目前各大互聯網公司中,哪些AI團隊值得加入?
※如何量化評估推薦系統的推薦結果?
※能否解釋一下dummy encoding和one-hot encoding的具體使用和對自由度的影響?
※牛津大學的計算機系(Department of Computer Science)實力如何?