用人工智慧計算股票的漲和跌可行嗎?
自己曾經用 q-learning 寫了一些程序,做研究生的畢業論文,覺得reinforcement learning 效率很高,然後想要籌劃一個項目,用RL 寫一個程序去分析股市,然後讓系統自己學習,然後得出一個收斂的最優解或次優解,有沒有機器學習的專家分析一下可行么?
可行我就嘗試組織一些朋友寫寫看類似的程序了,並開源。
用「機器學習」的方法去學習股價漲跌 -- 這個問題已經被無數的人思考,並且實踐過了。但不意味著沒有價值。
這個問題其實可以分為兩個部分:
1. 股市可以預測嗎?
2. 假如可以預測,用機器學習的方法去預測可以嗎?
先回答第一個:股市的漲跌可以預測嗎?
股市的價格變化,事實就是一個隨時間變化的序列。
只要把這個函數寫出來就可以預測股價了。這個函數是什麼樣子的? 我們可以嘗試用N個模型(線性,非線性, 概率)來進行逼近。如果股價的變化是符合這幾個模型的,那麼在有足夠多的訓練數據的情況下,股價將被模擬出來。但是事實是,在嘗試過許多許多模型的情況下,這些模型幾乎沒能預測股價的變化,有的模型只能在特定的區間能做一些不是十分精準的預測。
先討論一下Reinforcement Learning, 這個演算法基於馬爾可夫性,從一個狀態預測下一個狀態,但是股價的漲跌具有強烈的馬爾可夫性嗎?也就是上一時刻的股價與下一個時刻的股價間有必然的聯繫嗎?應該是不太大。這種基於N階馬爾可夫性的系統對於股價的分析很不利。而且假如只使用股價的歷史數據進行模型的訓練的話,準確度可以說幾乎為0。
影響股價的因素不僅僅是歷史股價,還有更多的因素,公司的近況,股民對股票的態度,政策的影響等等。所以許多人會從這方面進行入手,用人工智慧提供的快速計算能力,使用合適的模型,來量化這些因素,例如, (政策X出台, 可能會對股價造成變化y元)。
還有在一些有趣的預測股價方法大都有基於語義分析, 分析股民對某支股票的評論,對某個事件的情緒等等,以此來預測股價的漲跌。等等 當你的模型將所有的因素全都考慮進來, 那麼股價的預測就唾手可得了。
股價 = f(政策因素, 公司情況,市場因素, 歷史股價,上一年歷史股價, 某個股民自殺的影響...)
這些因素到底有多少? 它們之間會如何影響,這才是問題的關鍵。在某些穩定的情況下,我們是可以做大概的預測的,但是有很多時候,會不準確,這是因為,你的模型 永遠不可能把所有的 因素都考慮進來。而且你也不會知道 還會有什麼因素會影響股價的波動。在這麼多的因素,和因素與因素間還會產生互相影響的情況下。股價的模型將會變得極其複雜。如下圖.
一個因素與一個因素之間的互相影響是 很可能被預測出來的,但是 假如它們之間產生了相互的影響,這時候整個系統就變得幾乎不可預測了。一個因素髮生變化,會造成好幾個因素的變化,最後這幾個因素又會反作用回來使上一個因素髮生變化(直接的,間接的),股價變化一下子就變得虛無飄渺起來。一些微小的因素也可以通過這種系統無限的放大,最後給股市造成巨大的影響。
也就是 在南美洲一隻蝴蝶扇動她的翅膀也可能會對你的股價造成巨大的影響,這就是混沌現象。
是不是預測股價是一點希望都沒有了呢?
當然,在某些情況下可以認為 部分因素是穩定的(的確, 因為許多事件的影響是有延時的,在延時之間我們可以認為其不變),而且可以忽略掉一些影響較小的因素(假設它們乖乖的,不要調皮),所以幸運的話,我們的模型將變得稍微簡單一點,這樣,也許有時候我們就能得到一些令人開心的結果了。
所以LZ想要進行股價的預測的話,還是從分析各方面因素來入手。和前面各位說的一樣,如果你的真的把歷史數據做為 依據來建立了你的系統。那麼 只能用來 給別人作為(歷史股價)這個因素的參考。 真正的股價還得靠各方面信息綜合起來考慮。
(自然界中還有許多無法預測的現象,欲知more, 請繼續閱讀..)
為什麼股市的漲跌不容易被預測?
因為股市是一個有反饋的非線性系統,而股票的漲跌現象是一種混沌現象。
混沌現象是一個目前仍不可預測的東西。(例如 奶牛身上的花紋形狀,天氣的變化,心跳的波形,人腦的運行, 海灘上亂石的現狀,灘涂的形狀等等都屬於混沌現象,我們能略知其一二,卻永遠無法精確地預測)http://www.yyets.com/resource/29824(這個BBC的視頻做了精彩的探討)
但具體是為什麼呢? 為什麼有反饋的系統會造成了一種完全不可預測的狀態變化?&<這個有空再繼續探討&>
謝邀
答不知道----------------------------------------------------------------------------------------------------------------------------------------
因為做量化本來就是去想去試無數的方法來擬合市場的過程,首先1要有一套方法,然後2細化成一套演算法,然後3進行歷史數據回測,然後4進行實際交易。我不可能只在第一步就預見性的看到第四步的效果。
從第一步到第二步中,可能方法是有用的,但本身交易中有著非常多的數據,海量數據如何分類、如何描述、如何選取,可能一點點細微的不同都會導致結果完全不一樣。
從第二步到第三步,有了演算法去進行歷史數據回測,其實就是去訓練和優化參數的過程,但很難避免的就是過度優化的問題,這個度如何選取是量化的難點。
第三步到第四步,即使有了漂亮的歷史回測結果,但真正用到實盤上並不一定會賺錢,要知道市場結構和屬性一直在不斷的變化中,中間又是一個反覆調整的過程。
所以我的觀點是,你倒是找到歷史數據先測呀。。。。
題主可以參考一下MIT的這篇文章,Bayesian regression and Bitcoin http://arxiv.org/pdf/1410.1231v1.pdf,用bayesian regression來預測比特幣短期價格的漲跌,然後做高頻交易。
比特幣相其實比股票是一個簡單很多的市場,他們用的模型也不複雜,但是他們用一個『特定的數據集』把Sharp ratio做到了4.10。
我後來用Python(然後又用Scala重寫了)實現了paper描述的演算法,參數和數據集的選擇不同,雖然沒有得到這麼好的結果,但是還是可以盈利的。最後上一張只用了3天的training data訓練出的部分交易結果圖,綠色點買入,紅色點賣出。
可行,而且你早就落後進度了,不要低估搞量化金工喪心病狂的程度。
複雜的包括非常繁複的Bayesian reasoning,甚至包含deep learning/deep reinforcement learning(當然用法沒那麼簡單)等等。這些能表示非常複雜的hidden variables之間的關係。
還有一些方法能自動地挖掘出一些數據中隱含的統計關係。
有些機構還會動用新的數據源。比如紅外攝像、航拍、衛星監視等等。甚至還有一些非法手段,比如行政力量干預,通過黑色渠道非法獲取數據等等。
這些第一手好的數據再加上合理的演算法都能幫助提前發現變動模式。
是模型總有失效的時間。這點要搞清楚。而優秀的機構不虧的原因只有一個:依賴持續不斷的研發力量更新模型和基礎設施;而新的模型和基礎設施會極大地增加市場的效率。
更新:1.這個行當就是rocket science,是個系統工程。母系統下面管理子系統非常龐大,複雜度高;最後拼的是整個系統運行效率、處理信息對信息解讀的效率。
2.有些答主認為不可行,理由是很奇怪的。就好比看見禮花炮仗飛不高安全係數低,就推理出沒法做出火箭來載人去月球一樣。
我一開始以為是用deep learning來做,看到是用reinforcement learning我覺得希望更加渺茫。
強化學習的本質,【如果我沒有記錯。。。】,應該就是求解一個概率轉移矩陣吧,從控制的角度來理解。我覺得強化學習的弱點在於,對於高維數據的處理能力和對於海量數據的處理能力,以及其基於的一些假設,比如是馬爾科夫假設等等。
如果用深度學習做是否可以,百度谷歌都在弄深度學習,這個概念被炒爆了,百度深度學習實驗室的余凱前段時間到清華開了講座。那麼它是否可以解決呢?
我個人雖然對於DL實現人工智慧很懷疑,覺得至少還有很長一段路要走,但是我覺得處理大數據應該是沒有問題的。問題就在於輸入的信息(輸入的數據)。如果信息是不對稱的,那麼即使再大的數據,也是有缺失的,而缺失的部分不能通過推理獲得的時候,再好的演算法也無濟於事。所以即使一開始你有一個「正確」模型,也未必意味著它的完全正確性。當影響股市的某些獨立因素加入,而這些因素沒有在你的模型中的時候,你的模型就可能fail了。
另一個問題是,如何獲得局大的計算能力。記得去年去復旦參加MLA2013,阿里就有人在上面說,他們現在用的其實就是很簡單的演算法,也遇到了很多問題,不知道如何解決,因為數據實在是太大了【curse of dimensionality】。我不知道股票購買行為一天會生成多少數據量,但是和淘寶應該還是有得一比的。如果你想自己組團做DL來分析和預測股票行為,恐怕有點困難。【要知道百度都去矽谷開了LDL】
最後一個問題,基於你能夠預測別人的行為(=你的學習演算法works)的前提假設,分兩類討論。
1)同時別人也可以預測你的行為(=別人的演算法也works)。那麼你能預測到他,你會採取一定措施。而他能夠預測到你,他也會採取措施。這樣下去就類似於你在兩面鏡子之間,有無數多個你在鏡子里。總之,你僅能通過上一時刻的信息預測對方的行為,而對方行為在這一刻的不可知性是難以預知的。雖然RL有這方面的功能,比如Kalman filter,但是那個模型未免也太簡單了。那個就是一個線性函數加一個(正態的)雜訊項。所以我覺得,當雙方能力平等時,預知股市行為是困難的。
2)同時別人沒有預測你的行為的能力(=別人的演算法不work)。那麼你就【可能】可以預測股市了。那又怎麼樣呢?你不如去預測點對於社會有好處的東西,比如語言翻譯,比如文本信息處理,比如智能車,比如智能電網,比如機器人等等。
我只針對題主的標題:用人工智慧計算股票漲跌是否可行來回答。
直接說結論: 理論上可行的。人工智慧遠比你想像的更強大。已經有很多論文關注這個方面的內容了。
定義前提: 預測股市,他的正確率不可能太高,如果你想說問說計算機給出這個股票要漲,他就一定會漲,這個太難了。如果你是想盈利的話,理論上高於50的準確率就可以了(不考慮交易費)。當下的論文,準確率到了六成已經非常厲害了。
為什麼理論上可行:首先很顯然有一點大家必須承認,股市很大程度上是人為因素在控制,所以可以說是有一定規律的(股評家也得有扯淡的基礎吧)。舉個例子,如果大家都很看好一支股票,那麼它就很可能會漲;反之會跌。或者說有一些特定事件會很明顯地影響到股票價格,例如今年美國40年來首次開放原油出口後,國內能源版塊不出意料下跌了。可以看出,在預測股票這件事上,最重要的是信息,或者說是數據。這也是為什麼這麼多股民會刷新聞,看動態來保持敏銳的嗅覺。
我們知道數據挖掘的三個V,(Volume數據大),(Velocity更新快),(Variety多樣)。在處理這樣的海量數據時,計算機當然是具有優勢的。
如果到這裡還不能說服讀者的話,我用幾個圖補充一下。
- 美聯社官推被黑(謠言奧巴馬被襲擊受傷),很快股市出現了大幅度下滑-上升(看13點左右)
雖然這個事件較為特殊,但是設想如果能夠在第一時間得到類似消息,實際上就掌握了預測股市的主動權(或者說,社交網路能夠影響股市)。
2. 這個圖來自一篇很經典的論文Twitter mood predicts the stock market[Bollen 2010],兩個曲線分別是道瓊斯指數和Twitter的Calm(冷靜)情感得分(考慮了一定的時間滯後)
不過這篇論文還是挺被詬病的,確實有一些地方是在靠蒙。
一些預測的辦法:
(1)情感分析+機器學習
抓來海量的數據,去做情感分析,大概算出最近大家是不是對某些股票非常樂觀或者悲觀。
算出來了以後,再用SVM什麼的算出漲還是跌。
很多論文都是在情感分析上找尋很多辦法去提高準確率。
其他一些更簡單的做法:
(2)Google Trend
這個很簡單的辦法:谷歌提供的搜索量數據,利用搜索量的變化來預測。
這個圖是利用「debt(債務)"這個關鍵字做的一個投資假設,發現7年多利潤是正的(藍色)。
(3)利用 Twitter Volume(相關Twitter的發帖數量)
具體做法就不說了,反正作者號稱是準確率不低。
最後: 其實類似的辦法不光可以運用在預測股票上,預測票房和政治投票結果也取得了不少值得肯定的結果的。同時也有很多經濟學模型或者統計學辦法去預測股市。
其實我也只回答了作者 利用人工智慧能否預測股票 這個理論問題。如果要說值不值得去實現它運用到實際炒股中去。我只能說題主可以去試試,反正我是不會這麼干。
看到這個問題頓時震驚了!強化學習專業的怒答!
不知答主的研究方向是什麼,從我的理解來說,完全不可行。強化學習的本質是學習動作狀態與值的映射,通過與環境的交互獲取反饋,並最大化累積回報來求取最優策略。
這其中有一個重要前提就是環境MDP模型且保持不變。在目前已有的強化學習研究中,在某一MDP環境下獲得的策略,在其他環境下適用性的問題,還是一個很大的難題。因此如果假設股價變動為一MDP模型,且模型保持不變,那麼通過強化學確實可以獲得最優策略。但實際上,股價的影響因素過於複雜,根本不可能為一確定的MDP模型,所以通過強化學習是沒有辦法求解的。
強化學習無須先驗知識,需要不斷試錯,因此在機器學習中應該是效率較低的一種學習方法。在已知模型的情況下,通過動態規劃方法能獲得更好的結果。
至於機器學習方法對股價進行預測,由於專業不在這個方向就不細說了,其他大神會解釋的更清楚。個人覺得採用SVM和DL效果會更好。
強化學習圈子太小,可恥地匿了。題主有問題可以留言
股票是一個混沌系統,要綜合考慮的因素很多。傳統的弱人工智慧高度依賴人類對實際問題的建模,而RL這樣的方法同樣具有模型的片面性,外加計算力問題導致的不能計算所有連續的信息的不完全性。通常RL只是領域問題解決模型中一部分,做這方面研究的人不少,一般都是組合模型,還要結合數據挖掘,專家系統,監督學習,遺傳演算法,不同的模塊可能採用完全不同的模型。其他領域也有不少類似應用,比如宇宙探索,軍用智能,語音學習etc。
而現在比較靠譜的方法是採用人機合作的方法,比如IBM在華尓街使用的沃森。機器擅長進行計算,而不擅長的部分靠人類補完。
至於強人工智慧模型方法現在的發展很快,也有比較大空間,通常是把ai放到工作環境中去像人類一樣進行訓練和學習,但是這個方向的目的是創造一個高效,具有專家決策特徵又具備超高計算力的領域專家智能。
對沖交易,穩定賺錢可能。預測漲跌不可能。但是,即使賺得,也很少。還不如採用樸素方法賺得多。但是,也許穩定性會好。
關鍵字:高頻交易。
毫秒甚至微秒級別的交易,當然是AI自動做的。在期貨市場這種方法已經淪為各路大鱷的拿手好戲,加上槓桿之後能把微小价格波動里的肉渣都刷出來。。
至於A股,會這一手的大鱷恐怕不屑做。T+1的交易節奏太慢,又不能玩槓桿,純浪費時間浪費印花稅。
有錢的控制股票一級市場或者基金後台,有種的賭期貨市場,這才叫玩金融的。沒錢又沒種的才炒股票二級市場,技術再好也是散戶。覺得找到規律的,其實大部分找到的是必要條件,也就是如果上漲或者下跌,那麼必然會有這樣或者那樣的圖形。因果關係是上漲/下跌=》圖形顯示某種特徵。而不是圖形顯示某種特徵=》上漲/下跌。你能找到的技術類分析都是這樣的必要條件,而不是充分條件。
基本面是上漲的內在邏輯,但是邏輯能否被市場接受又是另外一個問題。作為價值投資需要堅守,未必是樓主想要的。
高頻交易利用的是尋找價差套利的機會,現在這種機會越來越少了,況且中國股市T+1的規則基本沒有操作性。
量化分析么,可以呀
當年兩個諾貝爾獎得主就是這麼乾的,後來成了很有錢的人,再後來就破產了
不了解機器學習,無法從技術層面予以解答。但目前金融市場確實已經有這樣的動作了,不妨作為案例學習研究看看。
比如美國的Sentient Technologies公司成立了完全依靠AI運行的對沖基金,以排除人類交易員的情感因素對交易決策的影響。Sentient的AI系統已經訓練了近十年,在世界各地有上千台機器同時運行,並利用計算機演算法打造出數以萬億計的虛擬交易員(被稱為「基因」), 以便消化巨量的市場數據。Sentient利用歷史數據,讓這些「基因」各自進行虛擬交易。剔除表現糟糕的「基因」留存能夠賺錢「基因」,實現自然選擇過程。Sentient每天在美股市場的交易頻次達上百次,對於交易業績並未披露過多信息,僅表示其AI平台的成績跑贏了其內部建立的基準指數。
再比如高盛現在面對投資資金不超過100萬美元的「富裕大眾」也推出了機器人投顧服務, 摩根士丹利也將於年內上線自己的機器人投顧。雖然技術細節還沒有更多披露,但都可以作為可以借鑒的方向吧。
偷偷告訴LZ,我的本科論文,題目就是《使用宏觀經濟變數預測股市漲跌》(喵的,看起來根本不像計算機專業)。
當時大概搞了幾十個宏觀經濟變數,然後簡單把股市大盤分為漲跌兩類。變成一個分類問題。然後用svm進行預測。效果還不錯,歷史回測準確率大概57%左右,實盤準確率53%左右。
當時答辯,陳恩紅老師(中科大計算機學院副院長,機器學習專家)也在場,當時他還很興奮地問我這個能不能用來炒股(不知道他是不是也炒股→_→)。我說不行,因為只能判斷大盤漲跌,但不能判斷漲跌幅,而且準確率不是太高,所以實戰中作用不大,只是比較好玩。
後來就沒管了,開始折騰其它的東西。
這個例子是想告訴LZ,這事理論上是可行的。
但是要找准方向,單純套模型,也許不太容易出成果。
舉個例子:把股票的歷史價格扔進去,來預測漲跌,往往效果不太好。
好玩的是,很多人也正是拿這個作為「實證」,來證明「人工智慧沒辦法預測股市」。
這種「自己不行,所以這個方法不行」的邏輯,明顯有問題,但居然還非常流行。
說某方法可以,只需要一個例子就夠了呀。我現在管理的資金中,有部分策略就用到了數據挖掘的演算法,雖然不一定很複雜,但是還是有點用的。
既然樓主對這個方向有興趣,不妨做做看。不容易出成果,但是有機會。作為一個在證券市場里多年摸爬滾打,趟過牛市的河,也在熊市的陰溝摔倒過的人看來。人工智慧計算股票的漲和跌,我認為是不可行的。為什麼這樣說呢?
拋開基本面、技術面與消息面,漲和跌其實是由買與賣的力量決定的,買的力量大,股價就漲,而賣的力量大,則股價就跌。那買與賣的力量來自於哪裡呢?表面上來看,買與賣的力量來自於市場的資金,資金量大,買的力量就大,資金量小,賣的力量就大。但資金量大,買的力量就大么?股價就上漲么?其實未必。在熊市時,資金量未必小,但老百姓可能用來存銀行,買理財產品了,而步入牛市時,資金才流入到股市中。所以說資金量大也未必引來股市上漲。
其次,決定股市資金量大小的關鍵的因素,是資金背後的情緒。當大家情緒高漲,一致認為會上漲,買股票可以賺錢時,股市上的資金量才會放大,股票才漲;而大家對股市的情緒低落,並非一致性地看好後市時,大部分時候股市是盤整或熊市狀態。所以,推動資金背後的情緒是關鍵。
用人工智慧能計算出股民的情緒嗎?當然不可行,所以,再智能的人工智慧,都有局限性。但是,股民的開戶數或多或少代表了市場的情緒,所以用開戶數可以指導入市,倒有幾分道理。
如果可行,那麼共產主義和計劃經濟也是可行的。
可以。
模擬炒股。 開發個模擬炒股軟體收集真實人群對股市的看法,根據收集到的信息 濾除使用模擬炒股的人群(股市初學者)和真實股民的差異。然後就可以拿著信息區現實股市上興風作浪啦。
這是人工智慧否?
可行,你說的其實早有人嘗試,就是高頻交易,就是程序自動交易,都是自行開發的演算法,保證一定概率的成功性。
據我知道的有個公司名字叫文藝復興,創辦者是個數學家,就是用演算法炒股,自行百度吧。
但是以題主的能力我覺得差得遠。
樓主可以百度幾個詞,西蒙斯、大獎章基金、高頻交易。
技術分析多半能獲得短期收益,其盈利能力是建立在即時、公開的市場供求力量的博弈基礎上。但對股票投資而言,更多的是把握公司的長期投資價值。這點要求深入了解一家公司的經營歷史,解析企業真實財務狀況,以綜合確定投資價值,並在合適的價位買入股票。
當然,現在量化投資工具的強大盈利能力也很可觀。
純以個人投資的角度,並不看好這類機械化的投資方法。
批判還是在於,量化模型中,引入的變數,容易受到市場虛假信息的影響,而導致巨大波動。
比如,一個參數是與「P2P」有關。結果一家公司就改名和P2P接上聯繫,公司經營無實質變化。但是量化系統自動設置了認為是重大利好,大量買入。過了一會,操作人員或者監管層反應過來,買錯了,得大量拋售!
於是。。。市場波動就這麼來了
推薦閱讀:
※深度學習做股票預測靠譜嗎?
※上市公司的股票進行拆分的依據是什麼?
※怎麼看待最近搜房股票的大漲?市值為什麼會是搜狐的兩倍多?
※國內比較好的財經網站是?您在炒股時常用的網站是?
※優質資產注入上市公司的具體形式是怎樣的?